@wordpress/edit-site 5.20.1 → 5.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/actions/trash-post.js +48 -0
- package/build/components/actions/trash-post.js.map +1 -0
- package/build/components/add-new-template/add-custom-template-modal-content.js +17 -13
- package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
- package/build/components/block-editor/resize-handle.js +2 -1
- package/build/components/block-editor/resize-handle.js.map +1 -1
- package/build/components/create-template-part-modal/index.js +10 -6
- package/build/components/create-template-part-modal/index.js.map +1 -1
- package/build/components/dataviews/dataviews.js +41 -32
- package/build/components/dataviews/dataviews.js.map +1 -1
- package/build/components/dataviews/field-actions.js +30 -0
- package/build/components/dataviews/field-actions.js.map +1 -0
- package/build/components/dataviews/filters.js +61 -0
- package/build/components/dataviews/filters.js.map +1 -0
- package/build/components/dataviews/in-filter.js +51 -0
- package/build/components/dataviews/in-filter.js.map +1 -0
- package/build/components/dataviews/index.js +0 -7
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews/pagination.js +75 -27
- package/build/components/dataviews/pagination.js.map +1 -1
- package/build/components/dataviews/text-filter.js +18 -12
- package/build/components/dataviews/text-filter.js.map +1 -1
- package/build/components/dataviews/view-actions.js +94 -56
- package/build/components/dataviews/view-actions.js.map +1 -1
- package/build/components/dataviews/view-grid.js +59 -0
- package/build/components/dataviews/view-grid.js.map +1 -0
- package/build/components/dataviews/view-list.js +283 -0
- package/build/components/dataviews/view-list.js.map +1 -0
- package/build/components/editor/index.js +2 -1
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/context.js +16 -10
- package/build/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-collection.js +20 -6
- package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build/components/global-styles/screen-block.js +1 -2
- package/build/components/global-styles/screen-block.js.map +1 -1
- package/build/components/global-styles/screen-root.js +1 -2
- package/build/components/global-styles/screen-root.js.map +1 -1
- package/build/components/global-styles/ui.js +3 -4
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/layout/index.js +10 -2
- package/build/components/layout/index.js.map +1 -1
- package/build/components/media/index.js +34 -0
- package/build/components/media/index.js.map +1 -0
- package/build/components/page-actions/index.js +0 -2
- package/build/components/page-actions/index.js.map +1 -1
- package/build/components/page-pages/index.js +153 -107
- package/build/components/page-pages/index.js.map +1 -1
- package/build/components/page-patterns/delete-category-menu-item.js +89 -0
- package/build/components/page-patterns/delete-category-menu-item.js.map +1 -0
- package/build/components/page-patterns/duplicate-menu-item.js +52 -131
- package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
- package/build/components/page-patterns/grid-item.js +1 -0
- package/build/components/page-patterns/grid-item.js.map +1 -1
- package/build/components/page-patterns/header.js +25 -3
- package/build/components/page-patterns/header.js.map +1 -1
- package/build/components/page-patterns/rename-category-menu-item.js +49 -0
- package/build/components/page-patterns/rename-category-menu-item.js.map +1 -0
- package/build/components/page-patterns/rename-menu-item.js +1 -1
- package/build/components/page-patterns/rename-menu-item.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +1 -0
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/pattern-modal/duplicate.js +65 -0
- package/build/components/pattern-modal/duplicate.js.map +1 -0
- package/build/components/pattern-modal/index.js +24 -0
- package/build/components/pattern-modal/index.js.map +1 -0
- package/build/components/pattern-modal/rename.js +42 -0
- package/build/components/pattern-modal/rename.js.map +1 -0
- package/build/components/sidebar-edit-mode/template-panel/last-revision.js +3 -0
- package/build/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +2 -2
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -3
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +29 -0
- package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +1 -0
- package/build/components/sidebar-navigation-screen-template/home-template-details.js +12 -1
- package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
- package/build/hooks/commands/use-common-commands.js +1 -2
- package/build/hooks/commands/use-common-commands.js.map +1 -1
- package/build/hooks/commands/use-edit-mode-commands.js +49 -0
- package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build/lock-unlock.js +1 -1
- package/build/lock-unlock.js.map +1 -1
- package/build/store/selectors.js +4 -5
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/actions/trash-post.js +41 -0
- package/build-module/components/actions/trash-post.js.map +1 -0
- package/build-module/components/add-new-template/add-custom-template-modal-content.js +16 -12
- package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
- package/build-module/components/block-editor/resize-handle.js +2 -1
- package/build-module/components/block-editor/resize-handle.js.map +1 -1
- package/build-module/components/create-template-part-modal/index.js +10 -6
- package/build-module/components/create-template-part-modal/index.js.map +1 -1
- package/build-module/components/dataviews/dataviews.js +40 -31
- package/build-module/components/dataviews/dataviews.js.map +1 -1
- package/build-module/components/dataviews/field-actions.js +22 -0
- package/build-module/components/dataviews/field-actions.js.map +1 -0
- package/build-module/components/dataviews/filters.js +53 -0
- package/build-module/components/dataviews/filters.js.map +1 -0
- package/build-module/components/dataviews/in-filter.js +43 -0
- package/build-module/components/dataviews/in-filter.js.map +1 -0
- package/build-module/components/dataviews/index.js +0 -1
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews/pagination.js +74 -28
- package/build-module/components/dataviews/pagination.js.map +1 -1
- package/build-module/components/dataviews/text-filter.js +19 -13
- package/build-module/components/dataviews/text-filter.js.map +1 -1
- package/build-module/components/dataviews/view-actions.js +95 -54
- package/build-module/components/dataviews/view-actions.js.map +1 -1
- package/build-module/components/dataviews/view-grid.js +51 -0
- package/build-module/components/dataviews/view-grid.js.map +1 -0
- package/build-module/components/dataviews/view-list.js +274 -0
- package/build-module/components/dataviews/view-list.js.map +1 -0
- package/build-module/components/editor/index.js +2 -1
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/context.js +16 -10
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-collection.js +20 -6
- package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build-module/components/global-styles/screen-block.js +1 -2
- package/build-module/components/global-styles/screen-block.js.map +1 -1
- package/build-module/components/global-styles/screen-root.js +1 -2
- package/build-module/components/global-styles/screen-root.js.map +1 -1
- package/build-module/components/global-styles/ui.js +3 -4
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/layout/index.js +11 -3
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/media/index.js +26 -0
- package/build-module/components/media/index.js.map +1 -0
- package/build-module/components/page-actions/index.js +0 -2
- package/build-module/components/page-actions/index.js.map +1 -1
- package/build-module/components/page-pages/index.js +156 -110
- package/build-module/components/page-pages/index.js.map +1 -1
- package/build-module/components/page-patterns/delete-category-menu-item.js +82 -0
- package/build-module/components/page-patterns/delete-category-menu-item.js.map +1 -0
- package/build-module/components/page-patterns/duplicate-menu-item.js +54 -133
- package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
- package/build-module/components/page-patterns/grid-item.js +1 -0
- package/build-module/components/page-patterns/grid-item.js.map +1 -1
- package/build-module/components/page-patterns/header.js +26 -4
- package/build-module/components/page-patterns/header.js.map +1 -1
- package/build-module/components/page-patterns/rename-category-menu-item.js +42 -0
- package/build-module/components/page-patterns/rename-category-menu-item.js.map +1 -0
- package/build-module/components/page-patterns/rename-menu-item.js +1 -1
- package/build-module/components/page-patterns/rename-menu-item.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +1 -0
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/pattern-modal/duplicate.js +57 -0
- package/build-module/components/pattern-modal/duplicate.js.map +1 -0
- package/build-module/components/pattern-modal/index.js +14 -0
- package/build-module/components/pattern-modal/index.js.map +1 -0
- package/build-module/components/pattern-modal/rename.js +34 -0
- package/build-module/components/pattern-modal/rename.js.map +1 -0
- package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js +3 -0
- package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +2 -2
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -3
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +22 -0
- package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +1 -0
- package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +12 -1
- package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
- package/build-module/hooks/commands/use-common-commands.js +1 -2
- package/build-module/hooks/commands/use-common-commands.js.map +1 -1
- package/build-module/hooks/commands/use-edit-mode-commands.js +50 -1
- package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build-module/lock-unlock.js +1 -1
- package/build-module/lock-unlock.js.map +1 -1
- package/build-module/store/selectors.js +4 -5
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +42 -9
- package/build-style/style.css +42 -9
- package/package.json +40 -40
- package/src/components/actions/trash-post.js +55 -0
- package/src/components/add-new-template/add-custom-template-modal-content.js +22 -17
- package/src/components/block-editor/resize-handle.js +1 -0
- package/src/components/create-template-part-modal/index.js +9 -5
- package/src/components/dataviews/README.md +107 -0
- package/src/components/dataviews/dataviews.js +44 -33
- package/src/components/dataviews/field-actions.js +28 -0
- package/src/components/dataviews/filters.js +57 -0
- package/src/components/dataviews/in-filter.js +47 -0
- package/src/components/dataviews/index.js +0 -1
- package/src/components/dataviews/pagination.js +71 -29
- package/src/components/dataviews/style.scss +11 -1
- package/src/components/dataviews/text-filter.js +19 -15
- package/src/components/dataviews/view-actions.js +108 -63
- package/src/components/dataviews/view-grid.js +60 -0
- package/src/components/dataviews/view-list.js +348 -0
- package/src/components/editor/index.js +2 -0
- package/src/components/global-styles/font-library-modal/context.js +17 -11
- package/src/components/global-styles/font-library-modal/font-collection.js +18 -10
- package/src/components/global-styles/screen-block.js +1 -2
- package/src/components/global-styles/screen-root.js +1 -2
- package/src/components/global-styles/style.scss +16 -4
- package/src/components/global-styles/ui.js +1 -2
- package/src/components/layout/index.js +12 -4
- package/src/components/media/index.js +25 -0
- package/src/components/page-actions/index.js +1 -7
- package/src/components/page-pages/index.js +156 -108
- package/src/components/page-pages/style.scss +3 -0
- package/src/components/page-patterns/delete-category-menu-item.js +104 -0
- package/src/components/page-patterns/duplicate-menu-item.js +68 -181
- package/src/components/page-patterns/grid-item.js +1 -0
- package/src/components/page-patterns/header.js +42 -6
- package/src/components/page-patterns/rename-category-menu-item.js +45 -0
- package/src/components/page-patterns/rename-menu-item.js +2 -2
- package/src/components/page-patterns/style.scss +8 -0
- package/src/components/page-patterns/use-patterns.js +5 -0
- package/src/components/pattern-modal/duplicate.js +53 -0
- package/src/components/pattern-modal/index.js +19 -0
- package/src/components/pattern-modal/rename.js +29 -0
- package/src/components/sidebar-edit-mode/template-panel/last-revision.js +4 -0
- package/src/components/sidebar-navigation-screen/style.scss +17 -5
- package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +2 -7
- package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -8
- package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +32 -0
- package/src/components/sidebar-navigation-screen-template/home-template-details.js +21 -7
- package/src/hooks/commands/use-common-commands.js +1 -2
- package/src/hooks/commands/use-edit-mode-commands.js +41 -0
- package/src/lock-unlock.js +1 -1
- package/src/store/selectors.js +9 -10
- package/src/style.scss +1 -0
- package/build/components/dataviews/list-view.js +0 -89
- package/build/components/dataviews/list-view.js.map +0 -1
- package/build-module/components/dataviews/list-view.js +0 -80
- package/build-module/components/dataviews/list-view.js.map +0 -1
- package/src/components/dataviews/list-view.js +0 -106
|
@@ -7,15 +7,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = DuplicateMenuItem;
|
|
8
8
|
var _react = require("react");
|
|
9
9
|
var _components = require("@wordpress/components");
|
|
10
|
-
var _coreData = require("@wordpress/core-data");
|
|
11
10
|
var _data = require("@wordpress/data");
|
|
11
|
+
var _element = require("@wordpress/element");
|
|
12
12
|
var _i18n = require("@wordpress/i18n");
|
|
13
13
|
var _notices = require("@wordpress/notices");
|
|
14
|
+
var _patterns = require("@wordpress/patterns");
|
|
14
15
|
var _router = require("@wordpress/router");
|
|
15
16
|
var _constants = require("../../utils/constants");
|
|
16
|
-
var _templatePartCreate = require("../../utils/template-part-create");
|
|
17
17
|
var _lockUnlock = require("../../lock-unlock");
|
|
18
|
-
var
|
|
18
|
+
var _createTemplatePartModal = _interopRequireDefault(require("../create-template-part-modal"));
|
|
19
19
|
/**
|
|
20
20
|
* WordPress dependencies
|
|
21
21
|
*/
|
|
@@ -24,22 +24,12 @@ var _usePatternCategories = _interopRequireDefault(require("../sidebar-navigatio
|
|
|
24
24
|
* Internal dependencies
|
|
25
25
|
*/
|
|
26
26
|
|
|
27
|
+
const {
|
|
28
|
+
DuplicatePatternModal
|
|
29
|
+
} = (0, _lockUnlock.unlock)(_patterns.privateApis);
|
|
27
30
|
const {
|
|
28
31
|
useHistory
|
|
29
32
|
} = (0, _lockUnlock.unlock)(_router.privateApis);
|
|
30
|
-
function getPatternMeta(item) {
|
|
31
|
-
if (item.type === _constants.PATTERN_TYPES.theme) {
|
|
32
|
-
return {
|
|
33
|
-
wp_pattern_sync_status: _constants.PATTERN_SYNC_TYPES.unsynced
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
const syncStatus = item.patternBlock.wp_pattern_sync_status;
|
|
37
|
-
const isUnsynced = syncStatus === _constants.PATTERN_SYNC_TYPES.unsynced;
|
|
38
|
-
return {
|
|
39
|
-
...item.patternBlock.meta,
|
|
40
|
-
wp_pattern_sync_status: isUnsynced ? syncStatus : undefined
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
33
|
function DuplicateMenuItem({
|
|
44
34
|
categoryId,
|
|
45
35
|
item,
|
|
@@ -47,126 +37,57 @@ function DuplicateMenuItem({
|
|
|
47
37
|
onClose
|
|
48
38
|
}) {
|
|
49
39
|
const {
|
|
50
|
-
saveEntityRecord,
|
|
51
|
-
invalidateResolution
|
|
52
|
-
} = (0, _data.useDispatch)(_coreData.store);
|
|
53
|
-
const {
|
|
54
|
-
createErrorNotice,
|
|
55
40
|
createSuccessNotice
|
|
56
41
|
} = (0, _data.useDispatch)(_notices.store);
|
|
42
|
+
const [isModalOpen, setIsModalOpen] = (0, _element.useState)(false);
|
|
57
43
|
const history = useHistory();
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const slug = (0, _templatePartCreate.getCleanTemplatePartSlug)(title);
|
|
68
|
-
const {
|
|
69
|
-
area,
|
|
70
|
-
content
|
|
71
|
-
} = item.templatePart;
|
|
72
|
-
const result = await saveEntityRecord('postType', _constants.TEMPLATE_PART_POST_TYPE, {
|
|
73
|
-
slug,
|
|
74
|
-
title,
|
|
75
|
-
content,
|
|
76
|
-
area
|
|
77
|
-
}, {
|
|
78
|
-
throwOnError: true
|
|
79
|
-
});
|
|
80
|
-
createSuccessNotice((0, _i18n.sprintf)(
|
|
81
|
-
// translators: %s: The new template part's title e.g. 'Call to action (copy)'.
|
|
82
|
-
(0, _i18n.__)('"%s" duplicated.'), item.title), {
|
|
83
|
-
type: 'snackbar',
|
|
84
|
-
id: 'edit-site-patterns-success'
|
|
85
|
-
});
|
|
86
|
-
history.push({
|
|
87
|
-
postType: _constants.TEMPLATE_PART_POST_TYPE,
|
|
88
|
-
postId: result?.id,
|
|
89
|
-
categoryType: _constants.TEMPLATE_PART_POST_TYPE,
|
|
90
|
-
categoryId
|
|
91
|
-
});
|
|
92
|
-
onClose();
|
|
93
|
-
} catch (error) {
|
|
94
|
-
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0, _i18n.__)('An error occurred while creating the template part.');
|
|
95
|
-
createErrorNotice(errorMessage, {
|
|
96
|
-
type: 'snackbar',
|
|
97
|
-
id: 'edit-site-patterns-error'
|
|
98
|
-
});
|
|
99
|
-
onClose();
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
async function findOrCreateTerm(term) {
|
|
103
|
-
try {
|
|
104
|
-
const newTerm = await saveEntityRecord('taxonomy', 'wp_pattern_category', {
|
|
105
|
-
name: term.label,
|
|
106
|
-
slug: term.name,
|
|
107
|
-
description: term.description
|
|
108
|
-
}, {
|
|
109
|
-
throwOnError: true
|
|
110
|
-
});
|
|
111
|
-
invalidateResolution('getUserPatternCategories');
|
|
112
|
-
return newTerm.id;
|
|
113
|
-
} catch (error) {
|
|
114
|
-
if (error.code !== 'term_exists') {
|
|
115
|
-
throw error;
|
|
116
|
-
}
|
|
117
|
-
return error.data.term_id;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
async function getCategories(categories) {
|
|
121
|
-
const terms = categories.map(category => {
|
|
122
|
-
const fullCategory = patternCategories.find(cat => cat.name === category);
|
|
123
|
-
if (fullCategory.id) {
|
|
124
|
-
return fullCategory.id;
|
|
125
|
-
}
|
|
126
|
-
return findOrCreateTerm(fullCategory);
|
|
44
|
+
const closeModal = () => setIsModalOpen(false);
|
|
45
|
+
const isTemplatePart = item.type === _constants.TEMPLATE_PART_POST_TYPE;
|
|
46
|
+
const isThemePattern = item.type === _constants.PATTERN_TYPES.theme;
|
|
47
|
+
async function onTemplatePartSuccess(templatePart) {
|
|
48
|
+
createSuccessNotice((0, _i18n.sprintf)(
|
|
49
|
+
// translators: %s: The new template part's title e.g. 'Call to action (copy)'.
|
|
50
|
+
(0, _i18n.__)('"%s" duplicated.'), item.title), {
|
|
51
|
+
type: 'snackbar',
|
|
52
|
+
id: 'edit-site-patterns-success'
|
|
127
53
|
});
|
|
128
|
-
|
|
54
|
+
history.push({
|
|
55
|
+
postType: _constants.TEMPLATE_PART_POST_TYPE,
|
|
56
|
+
postId: templatePart?.id,
|
|
57
|
+
categoryType: _constants.TEMPLATE_PART_POST_TYPE,
|
|
58
|
+
categoryId
|
|
59
|
+
});
|
|
60
|
+
onClose();
|
|
129
61
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
title,
|
|
141
|
-
wp_pattern_category: categories
|
|
142
|
-
}, {
|
|
143
|
-
throwOnError: true
|
|
144
|
-
});
|
|
145
|
-
createSuccessNotice((0, _i18n.sprintf)(
|
|
146
|
-
// translators: %s: The new pattern's title e.g. 'Call to action (copy)'.
|
|
147
|
-
(0, _i18n.__)('"%s" duplicated.'), item.title || item.name), {
|
|
148
|
-
type: 'snackbar',
|
|
149
|
-
id: 'edit-site-patterns-success'
|
|
150
|
-
});
|
|
151
|
-
history.push({
|
|
152
|
-
categoryType: _constants.PATTERN_TYPES.theme,
|
|
153
|
-
categoryId,
|
|
154
|
-
postType: _constants.PATTERN_TYPES.user,
|
|
155
|
-
postId: result?.id
|
|
156
|
-
});
|
|
157
|
-
onClose();
|
|
158
|
-
} catch (error) {
|
|
159
|
-
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0, _i18n.__)('An error occurred while creating the pattern.');
|
|
160
|
-
createErrorNotice(errorMessage, {
|
|
161
|
-
type: 'snackbar',
|
|
162
|
-
id: 'edit-site-patterns-error'
|
|
163
|
-
});
|
|
164
|
-
onClose();
|
|
165
|
-
}
|
|
62
|
+
function onPatternSuccess({
|
|
63
|
+
pattern
|
|
64
|
+
}) {
|
|
65
|
+
history.push({
|
|
66
|
+
categoryType: _constants.PATTERN_TYPES.theme,
|
|
67
|
+
categoryId,
|
|
68
|
+
postType: _constants.PATTERN_TYPES.user,
|
|
69
|
+
postId: pattern.id
|
|
70
|
+
});
|
|
71
|
+
onClose();
|
|
166
72
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
73
|
+
return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.MenuItem, {
|
|
74
|
+
onClick: () => setIsModalOpen(true),
|
|
75
|
+
"aria-expanded": isModalOpen,
|
|
76
|
+
"aria-haspopup": "dialog"
|
|
77
|
+
}, label), isModalOpen && !isTemplatePart && (0, _react.createElement)(DuplicatePatternModal, {
|
|
78
|
+
onClose: closeModal,
|
|
79
|
+
onSuccess: onPatternSuccess,
|
|
80
|
+
pattern: isThemePattern ? item : item.patternBlock
|
|
81
|
+
}), isModalOpen && isTemplatePart && (0, _react.createElement)(_createTemplatePartModal.default, {
|
|
82
|
+
blocks: item.blocks,
|
|
83
|
+
closeModal: closeModal,
|
|
84
|
+
confirmLabel: (0, _i18n.__)('Duplicate'),
|
|
85
|
+
defaultArea: item.templatePart.area,
|
|
86
|
+
defaultTitle: (0, _i18n.sprintf)( /* translators: %s: Existing template part title */
|
|
87
|
+
(0, _i18n.__)('%s (Copy)'), item.title),
|
|
88
|
+
modalTitle: (0, _i18n.__)('Duplicate template part'),
|
|
89
|
+
onCreate: onTemplatePartSuccess,
|
|
90
|
+
onError: closeModal
|
|
91
|
+
}));
|
|
171
92
|
}
|
|
172
93
|
//# sourceMappingURL=duplicate-menu-item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_coreData","_data","_i18n","_notices","_router","_constants","_templatePartCreate","_lockUnlock","_usePatternCategories","_interopRequireDefault","useHistory","unlock","routerPrivateApis","getPatternMeta","item","type","PATTERN_TYPES","theme","wp_pattern_sync_status","PATTERN_SYNC_TYPES","unsynced","syncStatus","patternBlock","isUnsynced","meta","undefined","DuplicateMenuItem","categoryId","label","__","onClose","saveEntityRecord","invalidateResolution","useDispatch","coreStore","createErrorNotice","createSuccessNotice","noticesStore","history","existingTemplateParts","useExistingTemplateParts","patternCategories","usePatternCategories","createTemplatePart","copiedTitle","sprintf","title","getUniqueTemplatePartTitle","slug","getCleanTemplatePartSlug","area","content","templatePart","result","TEMPLATE_PART_POST_TYPE","throwOnError","id","push","postType","postId","categoryType","error","errorMessage","message","code","findOrCreateTerm","term","newTerm","name","description","data","term_id","getCategories","categories","terms","map","category","fullCategory","find","cat","Promise","all","createPattern","isThemePattern","user","status","wp_pattern_category","createItem","_react","createElement","MenuItem","onClick"],"sources":["@wordpress/edit-site/src/components/page-patterns/duplicate-menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_TYPES,\n\tPATTERN_SYNC_TYPES,\n} from '../../utils/constants';\nimport {\n\tuseExistingTemplateParts,\n\tgetUniqueTemplatePartTitle,\n\tgetCleanTemplatePartSlug,\n} from '../../utils/template-part-create';\nimport { unlock } from '../../lock-unlock';\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nfunction getPatternMeta( item ) {\n\tif ( item.type === PATTERN_TYPES.theme ) {\n\t\treturn { wp_pattern_sync_status: PATTERN_SYNC_TYPES.unsynced };\n\t}\n\n\tconst syncStatus = item.patternBlock.wp_pattern_sync_status;\n\tconst isUnsynced = syncStatus === PATTERN_SYNC_TYPES.unsynced;\n\n\treturn {\n\t\t...item.patternBlock.meta,\n\t\twp_pattern_sync_status: isUnsynced ? syncStatus : undefined,\n\t};\n}\n\nexport default function DuplicateMenuItem( {\n\tcategoryId,\n\titem,\n\tlabel = __( 'Duplicate' ),\n\tonClose,\n} ) {\n\tconst { saveEntityRecord, invalidateResolution } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst history = useHistory();\n\tconst existingTemplateParts = useExistingTemplateParts();\n\tconst { patternCategories } = usePatternCategories();\n\n\tasync function createTemplatePart() {\n\t\ttry {\n\t\t\tconst copiedTitle = sprintf(\n\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\titem.title\n\t\t\t);\n\t\t\tconst title = getUniqueTemplatePartTitle(\n\t\t\t\tcopiedTitle,\n\t\t\t\texistingTemplateParts\n\t\t\t);\n\t\t\tconst slug = getCleanTemplatePartSlug( title );\n\t\t\tconst { area, content } = item.templatePart;\n\n\t\t\tconst result = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t{ slug, title, content, area },\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'edit-site-patterns-success',\n\t\t\t\t}\n\t\t\t);\n\n\t\t\thistory.push( {\n\t\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\t\tpostId: result?.id,\n\t\t\t\tcategoryType: TEMPLATE_PART_POST_TYPE,\n\t\t\t\tcategoryId,\n\t\t\t} );\n\n\t\t\tonClose();\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'An error occurred while creating the template part.'\n\t\t\t\t\t );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t\tonClose();\n\t\t}\n\t}\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst newTerm = await saveEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\t'wp_pattern_category',\n\t\t\t\t{\n\t\t\t\t\tname: term.label,\n\t\t\t\t\tslug: term.name,\n\t\t\t\t\tdescription: term.description,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t}\n\t\t\t);\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\treturn newTerm.id;\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn error.data.term_id;\n\t\t}\n\t}\n\n\tasync function getCategories( categories ) {\n\t\tconst terms = categories.map( ( category ) => {\n\t\t\tconst fullCategory = patternCategories.find(\n\t\t\t\t( cat ) => cat.name === category\n\t\t\t);\n\t\t\tif ( fullCategory.id ) {\n\t\t\t\treturn fullCategory.id;\n\t\t\t}\n\t\t\treturn findOrCreateTerm( fullCategory );\n\t\t} );\n\n\t\treturn Promise.all( terms );\n\t}\n\n\tasync function createPattern() {\n\t\ttry {\n\t\t\tconst isThemePattern = item.type === PATTERN_TYPES.theme;\n\t\t\tconst title = sprintf(\n\t\t\t\t/* translators: %s: Existing pattern title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\titem.title || item.name\n\t\t\t);\n\t\t\tconst categories = await getCategories( item.categories || [] );\n\n\t\t\tconst result = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tPATTERN_TYPES.user,\n\t\t\t\t{\n\t\t\t\t\tcontent: isThemePattern\n\t\t\t\t\t\t? item.content\n\t\t\t\t\t\t: item.patternBlock.content,\n\t\t\t\t\tmeta: getPatternMeta( item ),\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\ttitle,\n\t\t\t\t\twp_pattern_category: categories,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new pattern's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title || item.name\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'edit-site-patterns-success',\n\t\t\t\t}\n\t\t\t);\n\n\t\t\thistory.push( {\n\t\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\t\tcategoryId,\n\t\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\t\tpostId: result?.id,\n\t\t\t} );\n\n\t\t\tonClose();\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the pattern.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t\tonClose();\n\t\t}\n\t}\n\n\tconst createItem =\n\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t? createTemplatePart\n\t\t\t: createPattern;\n\n\treturn <MenuItem onClick={ createItem }>{ label }</MenuItem>;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_components","require","_data","_element","_i18n","_notices","_patterns","_router","_constants","_lockUnlock","_createTemplatePartModal","_interopRequireDefault","DuplicatePatternModal","unlock","patternsPrivateApis","useHistory","routerPrivateApis","DuplicateMenuItem","categoryId","item","label","__","onClose","createSuccessNotice","useDispatch","noticesStore","isModalOpen","setIsModalOpen","useState","history","closeModal","isTemplatePart","type","TEMPLATE_PART_POST_TYPE","isThemePattern","PATTERN_TYPES","theme","onTemplatePartSuccess","templatePart","sprintf","title","id","push","postType","postId","categoryType","onPatternSuccess","pattern","user","_react","createElement","Fragment","MenuItem","onClick","onSuccess","patternBlock","default","blocks","confirmLabel","defaultArea","area","defaultTitle","modalTitle","onCreate","onError"],"sources":["@wordpress/edit-site/src/components/page-patterns/duplicate-menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_PART_POST_TYPE, PATTERN_TYPES } from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\nimport CreateTemplatePartModal from '../create-template-part-modal';\n\nconst { DuplicatePatternModal } = unlock( patternsPrivateApis );\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport default function DuplicateMenuItem( {\n\tcategoryId,\n\titem,\n\tlabel = __( 'Duplicate' ),\n\tonClose,\n} ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst history = useHistory();\n\n\tconst closeModal = () => setIsModalOpen( false );\n\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst isThemePattern = item.type === PATTERN_TYPES.theme;\n\n\tasync function onTemplatePartSuccess( templatePart ) {\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\titem.title\n\t\t\t),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-success',\n\t\t\t}\n\t\t);\n\n\t\thistory.push( {\n\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\tpostId: templatePart?.id,\n\t\t\tcategoryType: TEMPLATE_PART_POST_TYPE,\n\t\t\tcategoryId,\n\t\t} );\n\n\t\tonClose();\n\t}\n\n\tfunction onPatternSuccess( { pattern } ) {\n\t\thistory.push( {\n\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\tcategoryId,\n\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\tpostId: pattern.id,\n\t\t} );\n\n\t\tonClose();\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ label }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && ! isTemplatePart && (\n\t\t\t\t<DuplicatePatternModal\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\tonSuccess={ onPatternSuccess }\n\t\t\t\t\tpattern={ isThemePattern ? item : item.patternBlock }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isModalOpen && isTemplatePart && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tblocks={ item.blocks }\n\t\t\t\t\tcloseModal={ closeModal }\n\t\t\t\t\tconfirmLabel={ __( 'Duplicate' ) }\n\t\t\t\t\tdefaultArea={ item.templatePart.area }\n\t\t\t\t\tdefaultTitle={ sprintf(\n\t\t\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\t\t\titem.title\n\t\t\t\t\t) }\n\t\t\t\t\tmodalTitle={ __( 'Duplicate template part' ) }\n\t\t\t\t\tonCreate={ onTemplatePartSuccess }\n\t\t\t\t\tonError={ closeModal }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -141,6 +141,7 @@ function GridItem({
|
|
|
141
141
|
// @see https://reakit.io/docs/composite/#performance.
|
|
142
142
|
,
|
|
143
143
|
id: `edit-site-patterns-${item.name}`,
|
|
144
|
+
type: "button",
|
|
144
145
|
...props,
|
|
145
146
|
onClick: item.type !== _constants.PATTERN_TYPES.theme ? onClick : undefined,
|
|
146
147
|
"aria-disabled": item.type !== _constants.PATTERN_TYPES.theme ? 'false' : 'true',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_downloadjs","_changeCase","_blockEditor","_components","_data","_element","_i18n","_icons","_notices","_reusableBlocks","_renameMenuItem","_duplicateMenuItem","_constants","_store","_link","_lockUnlock","useGlobalStyle","unlock","blockEditorPrivateApis","templatePartIcons","header","footer","uncategorized","GridItem","categoryId","item","props","descriptionId","useId","isDeleteDialogOpen","setIsDeleteDialogOpen","useState","backgroundColor","removeTemplate","useDispatch","editSiteStore","__experimentalDeleteReusableBlock","reusableBlocksStore","createErrorNotice","createSuccessNotice","noticesStore","isUserPattern","type","PATTERN_TYPES","user","isNonUserPattern","theme","isTemplatePart","TEMPLATE_PART_POST_TYPE","onClick","useLink","postType","postId","id","name","categoryType","isEmpty","blocks","length","patternClassNames","classnames","previewClassNames","deletePattern","sprintf","__","title","error","errorMessage","message","code","deleteItem","exportAsJSON","json","__file","content","patternBlock","raw","syncStatus","wp_pattern_sync_status","downloadjs","JSON","stringify","kebabCase","isCustomPattern","isCustom","hasThemeFile","templatePart","has_theme_file","ariaDescriptions","push","description","itemIcon","PATTERN_SYNC_TYPES","full","symbol","undefined","confirmButtonText","confirmPrompt","additionalStyles","css","_react","createElement","className","map","_","index","join","BlockPreview","ariaDescription","key","hidden","__experimentalHStack","justify","alignment","spacing","Tooltip","placement","text","Icon","icon","Flex","as","gap","__experimentalHeading","level","Button","variant","tabIndex","lockSmall","size","DropdownMenu","moreVertical","label","popoverProps","toggleProps","describedBy","onClose","MenuGroup","default","MenuItem","isDestructive","__experimentalConfirmDialog","onConfirm","onCancel","_default","memo","exports"],"sources":["@wordpress/edit-site/src/components/page-patterns/grid-item.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport downloadjs from 'downloadjs';\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { useState, useId, memo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tmoreVertical,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\n\n/**\n * Internal dependencies\n */\nimport RenameMenuItem from './rename-menu-item';\nimport DuplicateMenuItem from './duplicate-menu-item';\nimport {\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n} from '../../utils/constants';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nconst templatePartIcons = { header, footer, uncategorized };\n\nfunction GridItem( { categoryId, item, ...props } ) {\n\tconst descriptionId = useId();\n\tconst [ isDeleteDialogOpen, setIsDeleteDialogOpen ] = useState( false );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\n\tconst { removeTemplate } = useDispatch( editSiteStore );\n\tconst { __experimentalDeleteReusableBlock } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t} );\n\n\tconst isEmpty = ! item.blocks?.length;\n\tconst patternClassNames = classnames( 'edit-site-patterns__pattern', {\n\t\t'is-placeholder': isEmpty,\n\t} );\n\tconst previewClassNames = classnames( 'edit-site-patterns__preview', {\n\t\t'is-inactive': isNonUserPattern,\n\t} );\n\n\tconst deletePattern = async () => {\n\t\ttry {\n\t\t\tawait __experimentalDeleteReusableBlock( item.id );\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The pattern's title e.g. 'Call to action'.\n\t\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while deleting the pattern.' );\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t}\n\t};\n\tconst deleteItem = () =>\n\t\tisTemplatePart ? removeTemplate( item ) : deletePattern();\n\tconst exportAsJSON = () => {\n\t\tconst json = {\n\t\t\t__file: item.type,\n\t\t\ttitle: item.title || item.name,\n\t\t\tcontent: item.patternBlock.content.raw,\n\t\t\tsyncStatus: item.patternBlock.wp_pattern_sync_status,\n\t\t};\n\n\t\treturn downloadjs(\n\t\t\tJSON.stringify( json, null, 2 ),\n\t\t\t`${ kebabCase( item.title || item.name ) }.json`,\n\t\t\t'application/json'\n\t\t);\n\t};\n\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\tconst ariaDescriptions = [];\n\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push(\n\t\t\t__( 'Theme & plugin patterns cannot be edited.' )\n\t\t);\n\t}\n\n\tlet itemIcon;\n\tif ( ! isUserPattern && templatePartIcons[ categoryId ] ) {\n\t\titemIcon = templatePartIcons[ categoryId ];\n\t} else {\n\t\titemIcon =\n\t\t\titem.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;\n\t}\n\n\tconst confirmButtonText = hasThemeFile ? __( 'Clear' ) : __( 'Delete' );\n\tconst confirmPrompt = hasThemeFile\n\t\t? __( 'Are you sure you want to clear these customizations?' )\n\t\t: sprintf(\n\t\t\t\t// translators: %s: The pattern or template part's title e.g. 'Call to action'.\n\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\titem.title || item.name\n\t\t );\n\n\tconst additionalStyles = ! backgroundColor\n\t\t? [ { css: 'body { background: #fff; }' } ]\n\t\t: undefined;\n\n\treturn (\n\t\t<li className={ patternClassNames }>\n\t\t\t<button\n\t\t\t\tclassName={ previewClassNames }\n\t\t\t\t// Even though still incomplete, passing ids helps performance.\n\t\t\t\t// @see https://reakit.io/docs/composite/#performance.\n\t\t\t\tid={ `edit-site-patterns-${ item.name }` }\n\t\t\t\t{ ...props }\n\t\t\t\tonClick={\n\t\t\t\t\titem.type !== PATTERN_TYPES.theme ? onClick : undefined\n\t\t\t\t}\n\t\t\t\taria-disabled={\n\t\t\t\t\titem.type !== PATTERN_TYPES.theme ? 'false' : 'true'\n\t\t\t\t}\n\t\t\t\taria-label={ item.title }\n\t\t\t\taria-describedby={\n\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t? ariaDescriptions\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( _, index ) =>\n\t\t\t\t\t\t\t\t\t\t`${ descriptionId }-${ index }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ' ' )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\tblocks={ item.blocks }\n\t\t\t\t\t\tadditionalStyles={ additionalStyles }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</button>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t\t<HStack\n\t\t\t\tclassName=\"edit-site-patterns__footer\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tjustify=\"left\"\n\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t\t>\n\t\t\t\t\t{ itemIcon && ! isNonUserPattern && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t\t<Flex as=\"span\" gap={ 0 } justify=\"left\">\n\t\t\t\t\t\t{ item.type === PATTERN_TYPES.theme ? (\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Heading level={ 5 }>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ item.title || item.name }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ item.type === PATTERN_TYPES.theme && (\n\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\ttext={ __( 'This pattern cannot be edited.' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-lock-icon\"\n\t\t\t\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t</HStack>\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\tclassName=\"edit-site-patterns__dropdown\"\n\t\t\t\t\tpopoverProps={ { placement: 'bottom-end' } }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tclassName: 'edit-site-patterns__button',\n\t\t\t\t\t\tdescribedBy: sprintf(\n\t\t\t\t\t\t\t/* translators: %s: pattern name */\n\t\t\t\t\t\t\t__( 'Action menu for %s pattern' ),\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ isCustomPattern && ! hasThemeFile && (\n\t\t\t\t\t\t\t\t<RenameMenuItem\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<DuplicateMenuItem\n\t\t\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tlabel={ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ item.type === PATTERN_TYPES.user && (\n\t\t\t\t\t\t\t\t<MenuItem onClick={ () => exportAsJSON() }>\n\t\t\t\t\t\t\t\t\t{ __( 'Export as JSON' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t{ isCustomPattern && (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tisDestructive={ ! hasThemeFile }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetIsDeleteDialogOpen( true )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ hasThemeFile\n\t\t\t\t\t\t\t\t\t\t? __( 'Clear customizations' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Delete' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t</HStack>\n\n\t\t\t{ isDeleteDialogOpen && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tconfirmButtonText={ confirmButtonText }\n\t\t\t\t\tonConfirm={ deleteItem }\n\t\t\t\t\tonCancel={ () => setIsDeleteDialogOpen( false ) }\n\t\t\t\t>\n\t\t\t\t\t{ confirmPrompt }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nexport default memo( GridItem );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_downloadjs","_changeCase","_blockEditor","_components","_data","_element","_i18n","_icons","_notices","_reusableBlocks","_renameMenuItem","_duplicateMenuItem","_constants","_store","_link","_lockUnlock","useGlobalStyle","unlock","blockEditorPrivateApis","templatePartIcons","header","footer","uncategorized","GridItem","categoryId","item","props","descriptionId","useId","isDeleteDialogOpen","setIsDeleteDialogOpen","useState","backgroundColor","removeTemplate","useDispatch","editSiteStore","__experimentalDeleteReusableBlock","reusableBlocksStore","createErrorNotice","createSuccessNotice","noticesStore","isUserPattern","type","PATTERN_TYPES","user","isNonUserPattern","theme","isTemplatePart","TEMPLATE_PART_POST_TYPE","onClick","useLink","postType","postId","id","name","categoryType","isEmpty","blocks","length","patternClassNames","classnames","previewClassNames","deletePattern","sprintf","__","title","error","errorMessage","message","code","deleteItem","exportAsJSON","json","__file","content","patternBlock","raw","syncStatus","wp_pattern_sync_status","downloadjs","JSON","stringify","kebabCase","isCustomPattern","isCustom","hasThemeFile","templatePart","has_theme_file","ariaDescriptions","push","description","itemIcon","PATTERN_SYNC_TYPES","full","symbol","undefined","confirmButtonText","confirmPrompt","additionalStyles","css","_react","createElement","className","map","_","index","join","BlockPreview","ariaDescription","key","hidden","__experimentalHStack","justify","alignment","spacing","Tooltip","placement","text","Icon","icon","Flex","as","gap","__experimentalHeading","level","Button","variant","tabIndex","lockSmall","size","DropdownMenu","moreVertical","label","popoverProps","toggleProps","describedBy","onClose","MenuGroup","default","MenuItem","isDestructive","__experimentalConfirmDialog","onConfirm","onCancel","_default","memo","exports"],"sources":["@wordpress/edit-site/src/components/page-patterns/grid-item.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport downloadjs from 'downloadjs';\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { useState, useId, memo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tmoreVertical,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\n\n/**\n * Internal dependencies\n */\nimport RenameMenuItem from './rename-menu-item';\nimport DuplicateMenuItem from './duplicate-menu-item';\nimport {\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n} from '../../utils/constants';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nconst templatePartIcons = { header, footer, uncategorized };\n\nfunction GridItem( { categoryId, item, ...props } ) {\n\tconst descriptionId = useId();\n\tconst [ isDeleteDialogOpen, setIsDeleteDialogOpen ] = useState( false );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\n\tconst { removeTemplate } = useDispatch( editSiteStore );\n\tconst { __experimentalDeleteReusableBlock } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t} );\n\n\tconst isEmpty = ! item.blocks?.length;\n\tconst patternClassNames = classnames( 'edit-site-patterns__pattern', {\n\t\t'is-placeholder': isEmpty,\n\t} );\n\tconst previewClassNames = classnames( 'edit-site-patterns__preview', {\n\t\t'is-inactive': isNonUserPattern,\n\t} );\n\n\tconst deletePattern = async () => {\n\t\ttry {\n\t\t\tawait __experimentalDeleteReusableBlock( item.id );\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The pattern's title e.g. 'Call to action'.\n\t\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while deleting the pattern.' );\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t}\n\t};\n\tconst deleteItem = () =>\n\t\tisTemplatePart ? removeTemplate( item ) : deletePattern();\n\tconst exportAsJSON = () => {\n\t\tconst json = {\n\t\t\t__file: item.type,\n\t\t\ttitle: item.title || item.name,\n\t\t\tcontent: item.patternBlock.content.raw,\n\t\t\tsyncStatus: item.patternBlock.wp_pattern_sync_status,\n\t\t};\n\n\t\treturn downloadjs(\n\t\t\tJSON.stringify( json, null, 2 ),\n\t\t\t`${ kebabCase( item.title || item.name ) }.json`,\n\t\t\t'application/json'\n\t\t);\n\t};\n\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\tconst ariaDescriptions = [];\n\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push(\n\t\t\t__( 'Theme & plugin patterns cannot be edited.' )\n\t\t);\n\t}\n\n\tlet itemIcon;\n\tif ( ! isUserPattern && templatePartIcons[ categoryId ] ) {\n\t\titemIcon = templatePartIcons[ categoryId ];\n\t} else {\n\t\titemIcon =\n\t\t\titem.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;\n\t}\n\n\tconst confirmButtonText = hasThemeFile ? __( 'Clear' ) : __( 'Delete' );\n\tconst confirmPrompt = hasThemeFile\n\t\t? __( 'Are you sure you want to clear these customizations?' )\n\t\t: sprintf(\n\t\t\t\t// translators: %s: The pattern or template part's title e.g. 'Call to action'.\n\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\titem.title || item.name\n\t\t );\n\n\tconst additionalStyles = ! backgroundColor\n\t\t? [ { css: 'body { background: #fff; }' } ]\n\t\t: undefined;\n\n\treturn (\n\t\t<li className={ patternClassNames }>\n\t\t\t<button\n\t\t\t\tclassName={ previewClassNames }\n\t\t\t\t// Even though still incomplete, passing ids helps performance.\n\t\t\t\t// @see https://reakit.io/docs/composite/#performance.\n\t\t\t\tid={ `edit-site-patterns-${ item.name }` }\n\t\t\t\ttype=\"button\"\n\t\t\t\t{ ...props }\n\t\t\t\tonClick={\n\t\t\t\t\titem.type !== PATTERN_TYPES.theme ? onClick : undefined\n\t\t\t\t}\n\t\t\t\taria-disabled={\n\t\t\t\t\titem.type !== PATTERN_TYPES.theme ? 'false' : 'true'\n\t\t\t\t}\n\t\t\t\taria-label={ item.title }\n\t\t\t\taria-describedby={\n\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t? ariaDescriptions\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( _, index ) =>\n\t\t\t\t\t\t\t\t\t\t`${ descriptionId }-${ index }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ' ' )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\tblocks={ item.blocks }\n\t\t\t\t\t\tadditionalStyles={ additionalStyles }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</button>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t\t<HStack\n\t\t\t\tclassName=\"edit-site-patterns__footer\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tjustify=\"left\"\n\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t\t>\n\t\t\t\t\t{ itemIcon && ! isNonUserPattern && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t\t<Flex as=\"span\" gap={ 0 } justify=\"left\">\n\t\t\t\t\t\t{ item.type === PATTERN_TYPES.theme ? (\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Heading level={ 5 }>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ item.title || item.name }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ item.type === PATTERN_TYPES.theme && (\n\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\ttext={ __( 'This pattern cannot be edited.' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-lock-icon\"\n\t\t\t\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t</HStack>\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\tclassName=\"edit-site-patterns__dropdown\"\n\t\t\t\t\tpopoverProps={ { placement: 'bottom-end' } }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tclassName: 'edit-site-patterns__button',\n\t\t\t\t\t\tdescribedBy: sprintf(\n\t\t\t\t\t\t\t/* translators: %s: pattern name */\n\t\t\t\t\t\t\t__( 'Action menu for %s pattern' ),\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ isCustomPattern && ! hasThemeFile && (\n\t\t\t\t\t\t\t\t<RenameMenuItem\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<DuplicateMenuItem\n\t\t\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tlabel={ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ item.type === PATTERN_TYPES.user && (\n\t\t\t\t\t\t\t\t<MenuItem onClick={ () => exportAsJSON() }>\n\t\t\t\t\t\t\t\t\t{ __( 'Export as JSON' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t{ isCustomPattern && (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tisDestructive={ ! hasThemeFile }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetIsDeleteDialogOpen( true )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ hasThemeFile\n\t\t\t\t\t\t\t\t\t\t? __( 'Clear customizations' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Delete' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t</HStack>\n\n\t\t\t{ isDeleteDialogOpen && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tconfirmButtonText={ confirmButtonText }\n\t\t\t\t\tonConfirm={ deleteItem }\n\t\t\t\t\tonCancel={ () => setIsDeleteDialogOpen( false ) }\n\t\t\t\t>\n\t\t\t\t\t{ confirmPrompt }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nexport default memo( GridItem );\n"],"mappings":"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"}
|
|
@@ -9,6 +9,10 @@ var _react = require("react");
|
|
|
9
9
|
var _components = require("@wordpress/components");
|
|
10
10
|
var _editor = require("@wordpress/editor");
|
|
11
11
|
var _data = require("@wordpress/data");
|
|
12
|
+
var _i18n = require("@wordpress/i18n");
|
|
13
|
+
var _icons = require("@wordpress/icons");
|
|
14
|
+
var _renameCategoryMenuItem = _interopRequireDefault(require("./rename-category-menu-item"));
|
|
15
|
+
var _deleteCategoryMenuItem = _interopRequireDefault(require("./delete-category-menu-item"));
|
|
12
16
|
var _usePatternCategories = _interopRequireDefault(require("../sidebar-navigation-screen-patterns/use-pattern-categories"));
|
|
13
17
|
var _constants = require("../../utils/constants");
|
|
14
18
|
/**
|
|
@@ -29,24 +33,42 @@ function PatternsHeader({
|
|
|
29
33
|
patternCategories
|
|
30
34
|
} = (0, _usePatternCategories.default)();
|
|
31
35
|
const templatePartAreas = (0, _data.useSelect)(select => select(_editor.store).__experimentalGetDefaultTemplatePartAreas(), []);
|
|
32
|
-
let title, description;
|
|
36
|
+
let title, description, patternCategory;
|
|
33
37
|
if (type === _constants.TEMPLATE_PART_POST_TYPE) {
|
|
34
38
|
const templatePartArea = templatePartAreas.find(area => area.area === categoryId);
|
|
35
39
|
title = templatePartArea?.label;
|
|
36
40
|
description = templatePartArea?.description;
|
|
37
41
|
} else if (type === _constants.PATTERN_TYPES.theme) {
|
|
38
|
-
|
|
42
|
+
patternCategory = patternCategories.find(category => category.name === categoryId);
|
|
39
43
|
title = patternCategory?.label;
|
|
40
44
|
description = patternCategory?.description;
|
|
41
45
|
}
|
|
42
46
|
if (!title) return null;
|
|
43
47
|
return (0, _react.createElement)(_components.__experimentalVStack, {
|
|
44
48
|
className: "edit-site-patterns__section-header"
|
|
49
|
+
}, (0, _react.createElement)(_components.__experimentalHStack, {
|
|
50
|
+
justify: "space-between"
|
|
45
51
|
}, (0, _react.createElement)(_components.__experimentalHeading, {
|
|
46
52
|
as: "h2",
|
|
47
53
|
level: 4,
|
|
48
54
|
id: titleId
|
|
49
|
-
}, title),
|
|
55
|
+
}, title), !!patternCategory?.id && (0, _react.createElement)(_components.DropdownMenu, {
|
|
56
|
+
icon: _icons.moreVertical,
|
|
57
|
+
label: (0, _i18n.__)('Actions'),
|
|
58
|
+
toggleProps: {
|
|
59
|
+
className: 'edit-site-patterns__button',
|
|
60
|
+
describedBy: (0, _i18n.sprintf)( /* translators: %s: pattern category name */
|
|
61
|
+
(0, _i18n.__)('Action menu for %s pattern category'), title)
|
|
62
|
+
}
|
|
63
|
+
}, ({
|
|
64
|
+
onClose
|
|
65
|
+
}) => (0, _react.createElement)(_components.MenuGroup, null, (0, _react.createElement)(_renameCategoryMenuItem.default, {
|
|
66
|
+
category: patternCategory,
|
|
67
|
+
onClose: onClose
|
|
68
|
+
}), (0, _react.createElement)(_deleteCategoryMenuItem.default, {
|
|
69
|
+
category: patternCategory,
|
|
70
|
+
onClose: onClose
|
|
71
|
+
})))), description ? (0, _react.createElement)(_components.__experimentalText, {
|
|
50
72
|
variant: "muted",
|
|
51
73
|
as: "p",
|
|
52
74
|
id: descriptionId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_editor","_data","
|
|
1
|
+
{"version":3,"names":["_components","require","_editor","_data","_i18n","_icons","_renameCategoryMenuItem","_interopRequireDefault","_deleteCategoryMenuItem","_usePatternCategories","_constants","PatternsHeader","categoryId","type","titleId","descriptionId","patternCategories","usePatternCategories","templatePartAreas","useSelect","select","editorStore","__experimentalGetDefaultTemplatePartAreas","title","description","patternCategory","TEMPLATE_PART_POST_TYPE","templatePartArea","find","area","label","PATTERN_TYPES","theme","category","name","_react","createElement","__experimentalVStack","className","__experimentalHStack","justify","__experimentalHeading","as","level","id","DropdownMenu","icon","moreVertical","__","toggleProps","describedBy","sprintf","onClose","MenuGroup","default","__experimentalText","variant"],"sources":["@wordpress/edit-site/src/components/page-patterns/header.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tDropdownMenu,\n\tMenuGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { store as editorStore } from '@wordpress/editor';\nimport { useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport RenameCategoryMenuItem from './rename-category-menu-item';\nimport DeleteCategoryMenuItem from './delete-category-menu-item';\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\nimport { TEMPLATE_PART_POST_TYPE, PATTERN_TYPES } from '../../utils/constants';\n\nexport default function PatternsHeader( {\n\tcategoryId,\n\ttype,\n\ttitleId,\n\tdescriptionId,\n} ) {\n\tconst { patternCategories } = usePatternCategories();\n\tconst templatePartAreas = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).__experimentalGetDefaultTemplatePartAreas(),\n\t\t[]\n\t);\n\n\tlet title, description, patternCategory;\n\tif ( type === TEMPLATE_PART_POST_TYPE ) {\n\t\tconst templatePartArea = templatePartAreas.find(\n\t\t\t( area ) => area.area === categoryId\n\t\t);\n\t\ttitle = templatePartArea?.label;\n\t\tdescription = templatePartArea?.description;\n\t} else if ( type === PATTERN_TYPES.theme ) {\n\t\tpatternCategory = patternCategories.find(\n\t\t\t( category ) => category.name === categoryId\n\t\t);\n\t\ttitle = patternCategory?.label;\n\t\tdescription = patternCategory?.description;\n\t}\n\n\tif ( ! title ) return null;\n\n\treturn (\n\t\t<VStack className=\"edit-site-patterns__section-header\">\n\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t<Heading as=\"h2\" level={ 4 } id={ titleId }>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t{ !! patternCategory?.id && (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\tclassName: 'edit-site-patterns__button',\n\t\t\t\t\t\t\tdescribedBy: sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: pattern category name */\n\t\t\t\t\t\t\t\t__( 'Action menu for %s pattern category' ),\n\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<RenameCategoryMenuItem\n\t\t\t\t\t\t\t\t\tcategory={ patternCategory }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<DeleteCategoryMenuItem\n\t\t\t\t\t\t\t\t\tcategory={ patternCategory }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t{ description ? (\n\t\t\t\t<Text variant=\"muted\" as=\"p\" id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</Text>\n\t\t\t) : null }\n\t\t</VStack>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = RenameCategoryMenuItem;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _components = require("@wordpress/components");
|
|
9
|
+
var _element = require("@wordpress/element");
|
|
10
|
+
var _i18n = require("@wordpress/i18n");
|
|
11
|
+
var _patterns = require("@wordpress/patterns");
|
|
12
|
+
var _lockUnlock = require("../../lock-unlock");
|
|
13
|
+
/**
|
|
14
|
+
* WordPress dependencies
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Internal dependencies
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
const {
|
|
22
|
+
RenamePatternCategoryModal
|
|
23
|
+
} = (0, _lockUnlock.unlock)(_patterns.privateApis);
|
|
24
|
+
function RenameCategoryMenuItem({
|
|
25
|
+
category,
|
|
26
|
+
onClose
|
|
27
|
+
}) {
|
|
28
|
+
const [isModalOpen, setIsModalOpen] = (0, _element.useState)(false);
|
|
29
|
+
|
|
30
|
+
// User created pattern categories have their properties updated when
|
|
31
|
+
// retrieved via `getUserPatternCategories`. The rename modal expects an
|
|
32
|
+
// object that will match the pattern category entity.
|
|
33
|
+
const normalizedCategory = {
|
|
34
|
+
id: category.id,
|
|
35
|
+
slug: category.slug,
|
|
36
|
+
name: category.label
|
|
37
|
+
};
|
|
38
|
+
return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.MenuItem, {
|
|
39
|
+
onClick: () => setIsModalOpen(true)
|
|
40
|
+
}, (0, _i18n.__)('Rename')), isModalOpen && (0, _react.createElement)(RenamePatternCategoryModal, {
|
|
41
|
+
category: normalizedCategory,
|
|
42
|
+
onClose: () => {
|
|
43
|
+
setIsModalOpen(false);
|
|
44
|
+
onClose();
|
|
45
|
+
},
|
|
46
|
+
overlayClassName: "edit-site-list__rename-modal"
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=rename-category-menu-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_components","require","_element","_i18n","_patterns","_lockUnlock","RenamePatternCategoryModal","unlock","patternsPrivateApis","RenameCategoryMenuItem","category","onClose","isModalOpen","setIsModalOpen","useState","normalizedCategory","id","slug","name","label","_react","createElement","Fragment","MenuItem","onClick","__","overlayClassName"],"sources":["@wordpress/edit-site/src/components/page-patterns/rename-category-menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { RenamePatternCategoryModal } = unlock( patternsPrivateApis );\n\nexport default function RenameCategoryMenuItem( { category, onClose } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\t// User created pattern categories have their properties updated when\n\t// retrieved via `getUserPatternCategories`. The rename modal expects an\n\t// object that will match the pattern category entity.\n\tconst normalizedCategory = {\n\t\tid: category.id,\n\t\tslug: category.slug,\n\t\tname: category.label,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ __( 'Rename' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<RenamePatternCategoryModal\n\t\t\t\t\tcategory={ normalizedCategory }\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName=\"edit-site-list__rename-modal\"\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAKA,IAAAI,WAAA,GAAAJ,OAAA;AAXA;AACA;AACA;;AAMA;AACA;AACA;;AAGA,MAAM;EAAEK;AAA2B,CAAC,GAAG,IAAAC,kBAAM,EAAEC,qBAAoB,CAAC;AAErD,SAASC,sBAAsBA,CAAE;EAAEC,QAAQ;EAAEC;AAAQ,CAAC,EAAG;EACvE,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;;EAEzD;EACA;EACA;EACA,MAAMC,kBAAkB,GAAG;IAC1BC,EAAE,EAAEN,QAAQ,CAACM,EAAE;IACfC,IAAI,EAAEP,QAAQ,CAACO,IAAI;IACnBC,IAAI,EAAER,QAAQ,CAACS;EAChB,CAAC;EAED,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACrB,WAAA,CAAAuB,QAAQ;IAACC,OAAO,EAAGA,CAAA,KAAMX,cAAc,CAAE,IAAK;EAAG,GAC/C,IAAAY,QAAE,EAAE,QAAS,CACN,CAAC,EACTb,WAAW,IACZ,IAAAQ,MAAA,CAAAC,aAAA,EAACf,0BAA0B;IAC1BI,QAAQ,EAAGK,kBAAoB;IAC/BJ,OAAO,EAAGA,CAAA,KAAM;MACfE,cAAc,CAAE,KAAM,CAAC;MACvBF,OAAO,CAAC,CAAC;IACV,CAAG;IACHe,gBAAgB,EAAC;EAA8B,CAC/C,CAED,CAAC;AAEL"}
|
|
@@ -57,7 +57,7 @@ function RenameMenuItem({
|
|
|
57
57
|
type: 'snackbar'
|
|
58
58
|
});
|
|
59
59
|
} catch (error) {
|
|
60
|
-
const fallbackErrorMessage = item.type === _constants.TEMPLATE_PART_POST_TYPE ? (0, _i18n.__)('An error occurred while
|
|
60
|
+
const fallbackErrorMessage = item.type === _constants.TEMPLATE_PART_POST_TYPE ? (0, _i18n.__)('An error occurred while renaming the template part.') : (0, _i18n.__)('An error occurred while renaming the pattern.');
|
|
61
61
|
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : fallbackErrorMessage;
|
|
62
62
|
createErrorNotice(errorMessage, {
|
|
63
63
|
type: 'snackbar'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_coreData","_data","_element","_i18n","_notices","_constants","RenameMenuItem","item","onClose","title","setTitle","useState","isModalOpen","setIsModalOpen","editEntityRecord","saveEditedEntityRecord","useDispatch","coreStore","createSuccessNotice","createErrorNotice","noticesStore","type","TEMPLATE_PART_POST_TYPE","isCustom","onRename","event","preventDefault","id","throwOnError","__","error","fallbackErrorMessage","errorMessage","message","code","_react","createElement","Fragment","MenuItem","onClick","Modal","onRequestClose","overlayClassName","onSubmit","__experimentalVStack","spacing","TextControl","__nextHasNoMarginBottom","label","value","onChange","required","__experimentalHStack","justify","Button","variant"],"sources":["@wordpress/edit-site/src/components/page-patterns/rename-menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tMenuItem,\n\tModal,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';\n\nexport default function RenameMenuItem( { item, onClose } ) {\n\tconst [ title, setTitle ] = useState( () => item.title );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tif ( item.type === TEMPLATE_PART_POST_TYPE && ! item.isCustom ) {\n\t\treturn null;\n\t}\n\n\tasync function onRename( event ) {\n\t\tevent.preventDefault();\n\n\t\ttry {\n\t\t\tawait editEntityRecord( 'postType', item.type, item.id, { title } );\n\n\t\t\t// Update state before saving rerenders the list.\n\t\t\tsetTitle( '' );\n\t\t\tsetIsModalOpen( false );\n\t\t\tonClose();\n\n\t\t\t// Persist edited entity.\n\t\t\tawait saveEditedEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\tthrowOnError: true,\n\t\t\t} );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t? __( 'Template part renamed.' )\n\t\t\t\t\t: __( 'Pattern renamed.' ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst fallbackErrorMessage =\n\t\t\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t? __(\n\t\t\t\t\t\t\t'An error occurred while
|
|
1
|
+
{"version":3,"names":["_components","require","_coreData","_data","_element","_i18n","_notices","_constants","RenameMenuItem","item","onClose","title","setTitle","useState","isModalOpen","setIsModalOpen","editEntityRecord","saveEditedEntityRecord","useDispatch","coreStore","createSuccessNotice","createErrorNotice","noticesStore","type","TEMPLATE_PART_POST_TYPE","isCustom","onRename","event","preventDefault","id","throwOnError","__","error","fallbackErrorMessage","errorMessage","message","code","_react","createElement","Fragment","MenuItem","onClick","Modal","onRequestClose","overlayClassName","onSubmit","__experimentalVStack","spacing","TextControl","__nextHasNoMarginBottom","label","value","onChange","required","__experimentalHStack","justify","Button","variant"],"sources":["@wordpress/edit-site/src/components/page-patterns/rename-menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tMenuItem,\n\tModal,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';\n\nexport default function RenameMenuItem( { item, onClose } ) {\n\tconst [ title, setTitle ] = useState( () => item.title );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tif ( item.type === TEMPLATE_PART_POST_TYPE && ! item.isCustom ) {\n\t\treturn null;\n\t}\n\n\tasync function onRename( event ) {\n\t\tevent.preventDefault();\n\n\t\ttry {\n\t\t\tawait editEntityRecord( 'postType', item.type, item.id, { title } );\n\n\t\t\t// Update state before saving rerenders the list.\n\t\t\tsetTitle( '' );\n\t\t\tsetIsModalOpen( false );\n\t\t\tonClose();\n\n\t\t\t// Persist edited entity.\n\t\t\tawait saveEditedEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\tthrowOnError: true,\n\t\t\t} );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t? __( 'Template part renamed.' )\n\t\t\t\t\t: __( 'Pattern renamed.' ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst fallbackErrorMessage =\n\t\t\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t? __(\n\t\t\t\t\t\t\t'An error occurred while renaming the template part.'\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'An error occurred while renaming the pattern.' );\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetIsModalOpen( true );\n\t\t\t\t\tsetTitle( item.title );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Rename' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Rename' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName=\"edit-site-list__rename-modal\"\n\t\t\t\t>\n\t\t\t\t\t<form onSubmit={ onRename }>\n\t\t\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</form>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAQA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAKA,IAAAM,UAAA,GAAAN,OAAA;AApBA;AACA;AACA;;AAeA;AACA;AACA;;AAGe,SAASO,cAAcA,CAAE;EAAEC,IAAI;EAAEC;AAAQ,CAAC,EAAG;EAC3D,MAAM,CAAEC,KAAK,EAAEC,QAAQ,CAAE,GAAG,IAAAC,iBAAQ,EAAE,MAAMJ,IAAI,CAACE,KAAM,CAAC;EACxD,MAAM,CAAEG,WAAW,EAAEC,cAAc,CAAE,GAAG,IAAAF,iBAAQ,EAAE,KAAM,CAAC;EAEzD,MAAM;IAAEG,gBAAgB;IAAEC;EAAuB,CAAC,GACjD,IAAAC,iBAAW,EAAEC,eAAU,CAAC;EACzB,MAAM;IAAEC,mBAAmB;IAAEC;EAAkB,CAAC,GAC/C,IAAAH,iBAAW,EAAEI,cAAa,CAAC;EAE5B,IAAKb,IAAI,CAACc,IAAI,KAAKC,kCAAuB,IAAI,CAAEf,IAAI,CAACgB,QAAQ,EAAG;IAC/D,OAAO,IAAI;EACZ;EAEA,eAAeC,QAAQA,CAAEC,KAAK,EAAG;IAChCA,KAAK,CAACC,cAAc,CAAC,CAAC;IAEtB,IAAI;MACH,MAAMZ,gBAAgB,CAAE,UAAU,EAAEP,IAAI,CAACc,IAAI,EAAEd,IAAI,CAACoB,EAAE,EAAE;QAAElB;MAAM,CAAE,CAAC;;MAEnE;MACAC,QAAQ,CAAE,EAAG,CAAC;MACdG,cAAc,CAAE,KAAM,CAAC;MACvBL,OAAO,CAAC,CAAC;;MAET;MACA,MAAMO,sBAAsB,CAAE,UAAU,EAAER,IAAI,CAACc,IAAI,EAAEd,IAAI,CAACoB,EAAE,EAAE;QAC7DC,YAAY,EAAE;MACf,CAAE,CAAC;MAEHV,mBAAmB,CAClBX,IAAI,CAACc,IAAI,KAAKC,kCAAuB,GAClC,IAAAO,QAAE,EAAE,wBAAyB,CAAC,GAC9B,IAAAA,QAAE,EAAE,kBAAmB,CAAC,EAC3B;QACCR,IAAI,EAAE;MACP,CACD,CAAC;IACF,CAAC,CAAC,OAAQS,KAAK,EAAG;MACjB,MAAMC,oBAAoB,GACzBxB,IAAI,CAACc,IAAI,KAAKC,kCAAuB,GAClC,IAAAO,QAAE,EACF,qDACA,CAAC,GACD,IAAAA,QAAE,EAAE,+CAAgD,CAAC;MACzD,MAAMG,YAAY,GACjBF,KAAK,CAACG,OAAO,IAAIH,KAAK,CAACI,IAAI,KAAK,eAAe,GAC5CJ,KAAK,CAACG,OAAO,GACbF,oBAAoB;MAExBZ,iBAAiB,CAAEa,YAAY,EAAE;QAAEX,IAAI,EAAE;MAAW,CAAE,CAAC;IACxD;EACD;EAEA,OACC,IAAAc,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACtC,WAAA,CAAAwC,QAAQ;IACRC,OAAO,EAAGA,CAAA,KAAM;MACf1B,cAAc,CAAE,IAAK,CAAC;MACtBH,QAAQ,CAAEH,IAAI,CAACE,KAAM,CAAC;IACvB;EAAG,GAED,IAAAoB,QAAE,EAAE,QAAS,CACN,CAAC,EACTjB,WAAW,IACZ,IAAAuB,MAAA,CAAAC,aAAA,EAACtC,WAAA,CAAA0C,KAAK;IACL/B,KAAK,EAAG,IAAAoB,QAAE,EAAE,QAAS,CAAG;IACxBY,cAAc,EAAGA,CAAA,KAAM;MACtB5B,cAAc,CAAE,KAAM,CAAC;MACvBL,OAAO,CAAC,CAAC;IACV,CAAG;IACHkC,gBAAgB,EAAC;EAA8B,GAE/C,IAAAP,MAAA,CAAAC,aAAA;IAAMO,QAAQ,EAAGnB;EAAU,GAC1B,IAAAW,MAAA,CAAAC,aAAA,EAACtC,WAAA,CAAA8C,oBAAM;IAACC,OAAO,EAAC;EAAG,GAClB,IAAAV,MAAA,CAAAC,aAAA,EAACtC,WAAA,CAAAgD,WAAW;IACXC,uBAAuB;IACvBC,KAAK,EAAG,IAAAnB,QAAE,EAAE,MAAO,CAAG;IACtBoB,KAAK,EAAGxC,KAAO;IACfyC,QAAQ,EAAGxC,QAAU;IACrByC,QAAQ;EAAA,CACR,CAAC,EAEF,IAAAhB,MAAA,CAAAC,aAAA,EAACtC,WAAA,CAAAsD,oBAAM;IAACC,OAAO,EAAC;EAAO,GACtB,IAAAlB,MAAA,CAAAC,aAAA,EAACtC,WAAA,CAAAwD,MAAM;IACNC,OAAO,EAAC,UAAU;IAClBhB,OAAO,EAAGA,CAAA,KAAM;MACf1B,cAAc,CAAE,KAAM,CAAC;MACvBL,OAAO,CAAC,CAAC;IACV;EAAG,GAED,IAAAqB,QAAE,EAAE,QAAS,CACR,CAAC,EAET,IAAAM,MAAA,CAAAC,aAAA,EAACtC,WAAA,CAAAwD,MAAM;IAACC,OAAO,EAAC,SAAS;IAAClC,IAAI,EAAC;EAAQ,GACpC,IAAAQ,QAAE,EAAE,MAAO,CACN,CACD,CACD,CACH,CACA,CAEP,CAAC;AAEL"}
|
|
@@ -142,6 +142,7 @@ const patternBlockToPattern = (patternBlock, categories) => ({
|
|
|
142
142
|
...(patternBlock.wp_pattern_category.length > 0 && {
|
|
143
143
|
categories: patternBlock.wp_pattern_category.map(patternCategoryId => categories && categories.get(patternCategoryId) ? categories.get(patternCategoryId).slug : patternCategoryId)
|
|
144
144
|
}),
|
|
145
|
+
termLabels: patternBlock.wp_pattern_category.map(patternCategoryId => categories?.get(patternCategoryId) ? categories.get(patternCategoryId).label : patternCategoryId),
|
|
145
146
|
id: patternBlock.id,
|
|
146
147
|
name: patternBlock.slug,
|
|
147
148
|
syncStatus: patternBlock.wp_pattern_sync_status || _constants.PATTERN_SYNC_TYPES.full,
|