@wordpress/edit-site 5.12.7 → 5.12.9
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/build/components/block-editor/editor-canvas.js +1 -1
- package/build/components/block-editor/editor-canvas.js.map +1 -1
- package/build/components/block-editor/index.js +0 -4
- package/build/components/block-editor/index.js.map +1 -1
- package/build/components/block-editor/use-site-editor-settings.js +12 -6
- package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build/components/create-pattern-modal/index.js +7 -3
- package/build/components/create-pattern-modal/index.js.map +1 -1
- package/build/components/page-patterns/duplicate-menu-item.js +163 -0
- package/build/components/page-patterns/duplicate-menu-item.js.map +1 -0
- package/build/components/page-patterns/grid-item.js +83 -59
- package/build/components/page-patterns/grid-item.js.map +1 -1
- package/build/components/page-patterns/grid.js +81 -13
- package/build/components/page-patterns/grid.js.map +1 -1
- package/build/components/page-patterns/header.js +69 -0
- package/build/components/page-patterns/header.js.map +1 -0
- package/build/components/page-patterns/index.js +3 -1
- package/build/components/page-patterns/index.js.map +1 -1
- package/build/components/page-patterns/patterns-list.js +66 -27
- package/build/components/page-patterns/patterns-list.js.map +1 -1
- package/build/components/page-patterns/rename-menu-item.js +109 -0
- package/build/components/page-patterns/rename-menu-item.js.map +1 -0
- package/build/components/page-patterns/use-patterns.js +99 -118
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/page-template-parts/add-new-template-part.js +74 -0
- package/build/components/page-template-parts/add-new-template-part.js.map +1 -0
- package/build/components/page-template-parts/index.js +2 -23
- package/build/components/page-template-parts/index.js.map +1 -1
- package/build/components/resizable-frame/index.js +75 -32
- package/build/components/resizable-frame/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen/index.js +14 -8
- package/build/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-main/template-part-hint.js +1 -1
- package/build/components/sidebar-navigation-screen-main/template-part-hint.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js +1 -0
- package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +3 -3
- package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
- package/build/components/sidebar-navigation-screen-page/status-label.js +1 -34
- package/build/components/sidebar-navigation-screen-page/status-label.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pages/index.js +33 -25
- package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +3 -2
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +3 -2
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/index.js +5 -6
- package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js +9 -5
- package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +1 -1
- package/build/components/site-hub/index.js +4 -2
- package/build/components/site-hub/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-sync-path-with-url.js +15 -12
- package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
- package/build/components/template-actions/index.js +3 -1
- package/build/components/template-actions/index.js.map +1 -1
- package/build/components/template-actions/rename-menu-item.js +9 -6
- package/build/components/template-actions/rename-menu-item.js.map +1 -1
- package/build/hooks/push-changes-to-global-styles/index.js +3 -1
- package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build/utils/use-activate-theme.js +1 -1
- package/build/utils/use-activate-theme.js.map +1 -1
- package/build-module/components/block-editor/editor-canvas.js +1 -1
- package/build-module/components/block-editor/editor-canvas.js.map +1 -1
- package/build-module/components/block-editor/index.js +0 -4
- package/build-module/components/block-editor/index.js.map +1 -1
- package/build-module/components/block-editor/use-site-editor-settings.js +13 -7
- package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build-module/components/create-pattern-modal/index.js +6 -3
- package/build-module/components/create-pattern-modal/index.js.map +1 -1
- package/build-module/components/page-patterns/duplicate-menu-item.js +147 -0
- package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -0
- package/build-module/components/page-patterns/grid-item.js +84 -65
- package/build-module/components/page-patterns/grid-item.js.map +1 -1
- package/build-module/components/page-patterns/grid.js +82 -15
- package/build-module/components/page-patterns/grid.js.map +1 -1
- package/build-module/components/page-patterns/header.js +54 -0
- package/build-module/components/page-patterns/header.js.map +1 -0
- package/build-module/components/page-patterns/index.js +3 -1
- package/build-module/components/page-patterns/index.js.map +1 -1
- package/build-module/components/page-patterns/patterns-list.js +68 -30
- package/build-module/components/page-patterns/patterns-list.js.map +1 -1
- package/build-module/components/page-patterns/rename-menu-item.js +97 -0
- package/build-module/components/page-patterns/rename-menu-item.js.map +1 -0
- package/build-module/components/page-patterns/use-patterns.js +100 -119
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/page-template-parts/add-new-template-part.js +58 -0
- package/build-module/components/page-template-parts/add-new-template-part.js.map +1 -0
- package/build-module/components/page-template-parts/index.js +3 -22
- package/build-module/components/page-template-parts/index.js.map +1 -1
- package/build-module/components/resizable-frame/index.js +76 -35
- package/build-module/components/resizable-frame/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen/index.js +15 -9
- package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-main/template-part-hint.js +1 -1
- package/build-module/components/sidebar-navigation-screen-main/template-part-hint.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js +1 -0
- package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +3 -3
- package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-page/status-label.js +1 -32
- package/build-module/components/sidebar-navigation-screen-page/status-label.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pages/index.js +33 -25
- package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +3 -2
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +3 -2
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/index.js +5 -6
- package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js +9 -5
- package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +1 -1
- package/build-module/components/site-hub/index.js +4 -2
- package/build-module/components/site-hub/index.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +16 -12
- package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
- package/build-module/components/template-actions/index.js +2 -1
- package/build-module/components/template-actions/index.js.map +1 -1
- package/build-module/components/template-actions/rename-menu-item.js +8 -6
- package/build-module/components/template-actions/rename-menu-item.js.map +1 -1
- package/build-module/hooks/push-changes-to-global-styles/index.js +4 -2
- package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build-module/utils/use-activate-theme.js +1 -1
- package/build-module/utils/use-activate-theme.js.map +1 -1
- package/build-style/style-rtl.css +150 -54
- package/build-style/style.css +150 -54
- package/package.json +14 -14
- package/src/components/block-editor/editor-canvas.js +1 -1
- package/src/components/block-editor/index.js +0 -4
- package/src/components/block-editor/use-site-editor-settings.js +16 -11
- package/src/components/create-pattern-modal/index.js +5 -2
- package/src/components/header-edit-mode/document-actions/style.scss +4 -0
- package/src/components/layout/style.scss +1 -0
- package/src/components/page-patterns/duplicate-menu-item.js +196 -0
- package/src/components/page-patterns/grid-item.js +187 -137
- package/src/components/page-patterns/grid.js +118 -20
- package/src/components/page-patterns/header.js +69 -0
- package/src/components/page-patterns/index.js +6 -1
- package/src/components/page-patterns/patterns-list.js +87 -46
- package/src/components/page-patterns/rename-menu-item.js +115 -0
- package/src/components/page-patterns/style.scss +106 -26
- package/src/components/page-patterns/use-patterns.js +96 -167
- package/src/components/page-template-parts/add-new-template-part.js +57 -0
- package/src/components/page-template-parts/index.js +3 -22
- package/src/components/resizable-frame/index.js +100 -31
- package/src/components/resizable-frame/style.scss +26 -9
- package/src/components/sidebar-navigation-item/style.scss +10 -1
- package/src/components/sidebar-navigation-screen/index.js +14 -7
- package/src/components/sidebar-navigation-screen-main/template-part-hint.js +1 -3
- package/src/components/sidebar-navigation-screen-navigation-menu/more-menu.js +1 -0
- package/src/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +1 -1
- package/src/components/sidebar-navigation-screen-page/status-label.js +1 -35
- package/src/components/sidebar-navigation-screen-pages/index.js +39 -29
- package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -1
- package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +2 -1
- package/src/components/sidebar-navigation-screen-patterns/index.js +20 -24
- package/src/components/sidebar-navigation-screen-patterns/style.scss +0 -3
- package/src/components/sidebar-navigation-screen-patterns/use-my-patterns.js +7 -6
- package/src/components/site-hub/index.js +6 -2
- package/src/components/site-hub/style.scss +5 -0
- package/src/components/sync-state-with-url/use-sync-path-with-url.js +73 -66
- package/src/components/template-actions/index.js +2 -1
- package/src/components/template-actions/rename-menu-item.js +8 -6
- package/src/hooks/push-changes-to-global-styles/index.js +8 -1
- package/src/style.scss +10 -12
- package/src/utils/use-activate-theme.js +1 -1
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.default =
|
|
8
|
+
exports.default = void 0;
|
|
9
9
|
|
|
10
10
|
var _element = require("@wordpress/element");
|
|
11
11
|
|
|
@@ -25,10 +25,14 @@ var _notices = require("@wordpress/notices");
|
|
|
25
25
|
|
|
26
26
|
var _reusableBlocks = require("@wordpress/reusable-blocks");
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var _renameMenuItem = _interopRequireDefault(require("./rename-menu-item"));
|
|
29
|
+
|
|
30
|
+
var _duplicateMenuItem = _interopRequireDefault(require("./duplicate-menu-item"));
|
|
29
31
|
|
|
30
32
|
var _utils = require("./utils");
|
|
31
33
|
|
|
34
|
+
var _store = require("../../store");
|
|
35
|
+
|
|
32
36
|
var _link = require("../routes/link");
|
|
33
37
|
|
|
34
38
|
/**
|
|
@@ -42,16 +46,22 @@ var _link = require("../routes/link");
|
|
|
42
46
|
/**
|
|
43
47
|
* Internal dependencies
|
|
44
48
|
*/
|
|
45
|
-
const
|
|
49
|
+
const templatePartIcons = {
|
|
50
|
+
header: _icons.header,
|
|
51
|
+
footer: _icons.footer,
|
|
52
|
+
uncategorized: _icons.symbolFilled
|
|
53
|
+
};
|
|
46
54
|
|
|
47
55
|
function GridItem({
|
|
48
56
|
categoryId,
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
item
|
|
57
|
+
item,
|
|
58
|
+
...props
|
|
52
59
|
}) {
|
|
53
60
|
const descriptionId = (0, _element.useId)();
|
|
54
61
|
const [isDeleteDialogOpen, setIsDeleteDialogOpen] = (0, _element.useState)(false);
|
|
62
|
+
const {
|
|
63
|
+
removeTemplate
|
|
64
|
+
} = (0, _data.useDispatch)(_store.store);
|
|
55
65
|
const {
|
|
56
66
|
__experimentalDeleteReusableBlock
|
|
57
67
|
} = (0, _data.useDispatch)(_reusableBlocks.store);
|
|
@@ -59,76 +69,74 @@ function GridItem({
|
|
|
59
69
|
createErrorNotice,
|
|
60
70
|
createSuccessNotice
|
|
61
71
|
} = (0, _data.useDispatch)(_notices.store);
|
|
72
|
+
const isUserPattern = item.type === _utils.USER_PATTERNS;
|
|
73
|
+
const isNonUserPattern = item.type === _utils.PATTERNS;
|
|
74
|
+
const isTemplatePart = item.type === _utils.TEMPLATE_PARTS;
|
|
62
75
|
const {
|
|
63
76
|
onClick
|
|
64
77
|
} = (0, _link.useLink)({
|
|
65
78
|
postType: item.type,
|
|
66
|
-
postId:
|
|
79
|
+
postId: isUserPattern ? item.id : item.name,
|
|
67
80
|
categoryId,
|
|
68
81
|
categoryType: item.type
|
|
69
82
|
});
|
|
70
|
-
|
|
71
|
-
const onKeyDown = event => {
|
|
72
|
-
if (_keycodes.DELETE === event.keyCode || _keycodes.BACKSPACE === event.keyCode) {
|
|
73
|
-
setIsDeleteDialogOpen(true);
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
|
|
77
83
|
const isEmpty = !item.blocks?.length;
|
|
78
84
|
const patternClassNames = (0, _classnames.default)('edit-site-patterns__pattern', {
|
|
79
85
|
'is-placeholder': isEmpty
|
|
80
86
|
});
|
|
81
87
|
const previewClassNames = (0, _classnames.default)('edit-site-patterns__preview', {
|
|
82
|
-
'is-inactive':
|
|
88
|
+
'is-inactive': isNonUserPattern
|
|
83
89
|
});
|
|
84
90
|
|
|
85
91
|
const deletePattern = async () => {
|
|
86
92
|
try {
|
|
87
93
|
await __experimentalDeleteReusableBlock(item.id);
|
|
88
|
-
createSuccessNotice((0, _i18n.
|
|
89
|
-
|
|
94
|
+
createSuccessNotice((0, _i18n.sprintf)( // translators: %s: The pattern's title e.g. 'Call to action'.
|
|
95
|
+
(0, _i18n.__)('"%s" deleted.'), item.title), {
|
|
96
|
+
type: 'snackbar',
|
|
97
|
+
id: 'edit-site-patterns-success'
|
|
90
98
|
});
|
|
91
99
|
} catch (error) {
|
|
92
100
|
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0, _i18n.__)('An error occurred while deleting the pattern.');
|
|
93
101
|
createErrorNotice(errorMessage, {
|
|
94
|
-
type: 'snackbar'
|
|
102
|
+
type: 'snackbar',
|
|
103
|
+
id: 'edit-site-patterns-error'
|
|
95
104
|
});
|
|
96
105
|
}
|
|
97
106
|
};
|
|
98
107
|
|
|
99
|
-
const
|
|
108
|
+
const deleteItem = () => isTemplatePart ? removeTemplate(item) : deletePattern(); // Only custom patterns or custom template parts can be renamed or deleted.
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
const isCustomPattern = isUserPattern || isTemplatePart && item.isCustom;
|
|
112
|
+
const hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;
|
|
100
113
|
const ariaDescriptions = [];
|
|
101
114
|
|
|
102
|
-
if (
|
|
115
|
+
if (isCustomPattern) {
|
|
103
116
|
// User patterns don't have descriptions, but can be edited and deleted, so include some help text.
|
|
104
117
|
ariaDescriptions.push((0, _i18n.__)('Press Enter to edit, or Delete to delete the pattern.'));
|
|
105
118
|
} else if (item.description) {
|
|
106
119
|
ariaDescriptions.push(item.description);
|
|
107
120
|
}
|
|
108
121
|
|
|
109
|
-
if (
|
|
110
|
-
ariaDescriptions.push(
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
let itemIcon = icon;
|
|
114
|
-
|
|
115
|
-
if (categoryId === 'header') {
|
|
116
|
-
itemIcon = _icons.header;
|
|
117
|
-
} else if (categoryId === 'footer') {
|
|
118
|
-
itemIcon = _icons.footer;
|
|
119
|
-
} else if (categoryId === 'uncategorized') {
|
|
120
|
-
itemIcon = _icons.symbolFilled;
|
|
122
|
+
if (isNonUserPattern) {
|
|
123
|
+
ariaDescriptions.push((0, _i18n.__)('Theme patterns cannot be edited.'));
|
|
121
124
|
}
|
|
122
125
|
|
|
123
|
-
|
|
126
|
+
const itemIcon = templatePartIcons[categoryId] || (item.syncStatus === _utils.SYNC_TYPES.full ? _icons.symbol : undefined);
|
|
127
|
+
const confirmButtonText = hasThemeFile ? (0, _i18n.__)('Clear') : (0, _i18n.__)('Delete');
|
|
128
|
+
const confirmPrompt = hasThemeFile ? (0, _i18n.__)('Are you sure you want to clear these customizations?') : (0, _i18n.sprintf)( // translators: %s: The pattern or template part's title e.g. 'Call to action'.
|
|
129
|
+
(0, _i18n.__)('Are you sure you want to delete "%s"?'), item.title);
|
|
130
|
+
return (0, _element.createElement)("li", {
|
|
124
131
|
className: patternClassNames
|
|
125
|
-
}, (0, _element.createElement)(
|
|
126
|
-
className: previewClassNames,
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
132
|
+
}, (0, _element.createElement)("button", {
|
|
133
|
+
className: previewClassNames // Even though still incomplete, passing ids helps performance.
|
|
134
|
+
// @see https://reakit.io/docs/composite/#performance.
|
|
135
|
+
,
|
|
136
|
+
id: `edit-site-patterns-${item.name}`,
|
|
137
|
+
...props,
|
|
130
138
|
onClick: item.type !== _utils.PATTERNS ? onClick : undefined,
|
|
131
|
-
|
|
139
|
+
"aria-disabled": item.type !== _utils.PATTERNS ? 'false' : 'true',
|
|
132
140
|
"aria-label": item.title,
|
|
133
141
|
"aria-describedby": ariaDescriptions.length ? ariaDescriptions.map((_, index) => `${descriptionId}-${index}`).join(' ') : undefined
|
|
134
142
|
}, isEmpty && (0, _i18n.__)('Empty pattern'), !isEmpty && (0, _element.createElement)(_blockEditor.BlockPreview, {
|
|
@@ -138,7 +146,6 @@ function GridItem({
|
|
|
138
146
|
hidden: true,
|
|
139
147
|
id: `${descriptionId}-${index}`
|
|
140
148
|
}, ariaDescription)), (0, _element.createElement)(_components.__experimentalHStack, {
|
|
141
|
-
"aria-hidden": "true",
|
|
142
149
|
className: "edit-site-patterns__footer",
|
|
143
150
|
justify: "space-between"
|
|
144
151
|
}, (0, _element.createElement)(_components.__experimentalHStack, {
|
|
@@ -146,26 +153,33 @@ function GridItem({
|
|
|
146
153
|
justify: "left",
|
|
147
154
|
spacing: 3,
|
|
148
155
|
className: "edit-site-patterns__pattern-title"
|
|
149
|
-
},
|
|
156
|
+
}, itemIcon && (0, _element.createElement)(_components.Tooltip, {
|
|
157
|
+
position: "top center",
|
|
158
|
+
text: (0, _i18n.__)('Editing this pattern will also update anywhere it is used')
|
|
159
|
+
}, (0, _element.createElement)("span", null, (0, _element.createElement)(_icons.Icon, {
|
|
150
160
|
className: "edit-site-patterns__pattern-icon",
|
|
151
161
|
icon: itemIcon
|
|
152
|
-
}), (0, _element.createElement)(_components.Flex, {
|
|
153
|
-
as:
|
|
154
|
-
level: 5,
|
|
162
|
+
}))), (0, _element.createElement)(_components.Flex, {
|
|
163
|
+
as: "span",
|
|
155
164
|
gap: 0,
|
|
156
165
|
justify: "left"
|
|
157
|
-
}, item.
|
|
166
|
+
}, item.type === _utils.PATTERNS ? item.title : (0, _element.createElement)(_components.__experimentalHeading, {
|
|
167
|
+
level: 5
|
|
168
|
+
}, (0, _element.createElement)(_components.Button, {
|
|
169
|
+
variant: "link",
|
|
170
|
+
onClick: onClick // Required for the grid's roving tab index system.
|
|
171
|
+
// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.
|
|
172
|
+
,
|
|
173
|
+
tabIndex: "-1"
|
|
174
|
+
}, item.title)), item.type === _utils.PATTERNS && (0, _element.createElement)(_components.Tooltip, {
|
|
158
175
|
position: "top center",
|
|
159
176
|
text: (0, _i18n.__)('Theme patterns cannot be edited.')
|
|
160
177
|
}, (0, _element.createElement)("span", {
|
|
161
178
|
className: "edit-site-patterns__pattern-lock-icon"
|
|
162
179
|
}, (0, _element.createElement)(_icons.Icon, {
|
|
163
|
-
style: {
|
|
164
|
-
fill: 'currentcolor'
|
|
165
|
-
},
|
|
166
180
|
icon: _icons.lockSmall,
|
|
167
181
|
size: 24
|
|
168
|
-
}))))),
|
|
182
|
+
}))))), (0, _element.createElement)(_components.DropdownMenu, {
|
|
169
183
|
icon: _icons.moreHorizontal,
|
|
170
184
|
label: (0, _i18n.__)('Actions'),
|
|
171
185
|
className: "edit-site-patterns__dropdown",
|
|
@@ -177,18 +191,28 @@ function GridItem({
|
|
|
177
191
|
isSmall: true,
|
|
178
192
|
describedBy: (0, _i18n.sprintf)(
|
|
179
193
|
/* translators: %s: pattern name */
|
|
180
|
-
(0, _i18n.__)('Action menu for %s pattern'), item.title)
|
|
181
|
-
// The dropdown menu is not focusable using the
|
|
182
|
-
// keyboard as this would interfere with the grid's
|
|
183
|
-
// roving tab index system. Instead, keyboard users
|
|
184
|
-
// use keyboard shortcuts to trigger actions.
|
|
185
|
-
tabIndex: -1
|
|
194
|
+
(0, _i18n.__)('Action menu for %s pattern'), item.title)
|
|
186
195
|
}
|
|
187
|
-
}, (
|
|
196
|
+
}, ({
|
|
197
|
+
onClose
|
|
198
|
+
}) => (0, _element.createElement)(_components.MenuGroup, null, isCustomPattern && !hasThemeFile && (0, _element.createElement)(_renameMenuItem.default, {
|
|
199
|
+
item: item,
|
|
200
|
+
onClose: onClose
|
|
201
|
+
}), (0, _element.createElement)(_duplicateMenuItem.default, {
|
|
202
|
+
categoryId: categoryId,
|
|
203
|
+
item: item,
|
|
204
|
+
onClose: onClose,
|
|
205
|
+
label: isNonUserPattern ? (0, _i18n.__)('Copy to My patterns') : (0, _i18n.__)('Duplicate')
|
|
206
|
+
}), isCustomPattern && (0, _element.createElement)(_components.MenuItem, {
|
|
188
207
|
onClick: () => setIsDeleteDialogOpen(true)
|
|
189
|
-
}, (0, _i18n.__)('Delete')))))
|
|
190
|
-
|
|
208
|
+
}, hasThemeFile ? (0, _i18n.__)('Clear customizations') : (0, _i18n.__)('Delete'))))), isDeleteDialogOpen && (0, _element.createElement)(_components.__experimentalConfirmDialog, {
|
|
209
|
+
confirmButtonText: confirmButtonText,
|
|
210
|
+
onConfirm: deleteItem,
|
|
191
211
|
onCancel: () => setIsDeleteDialogOpen(false)
|
|
192
|
-
},
|
|
212
|
+
}, confirmPrompt));
|
|
193
213
|
}
|
|
214
|
+
|
|
215
|
+
var _default = (0, _element.memo)(GridItem);
|
|
216
|
+
|
|
217
|
+
exports.default = _default;
|
|
194
218
|
//# sourceMappingURL=grid-item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/grid-item.js"],"names":["THEME_PATTERN_TOOLTIP","GridItem","categoryId","composite","icon","item","descriptionId","isDeleteDialogOpen","setIsDeleteDialogOpen","__experimentalDeleteReusableBlock","reusableBlocksStore","createErrorNotice","createSuccessNotice","noticesStore","onClick","postType","type","postId","USER_PATTERNS","id","name","categoryType","onKeyDown","event","DELETE","keyCode","BACKSPACE","isEmpty","blocks","length","patternClassNames","previewClassNames","PATTERNS","deletePattern","error","errorMessage","message","code","isUserPattern","ariaDescriptions","push","description","itemIcon","header","footer","symbolFilled","undefined","title","map","_","index","join","ariaDescription","Heading","fill","lockSmall","moreHorizontal","placement","className","isSmall","describedBy","tabIndex"],"mappings":";;;;;;;;;AAqBA;;AAlBA;;AAKA;;AACA;;AAWA;;AAEA;;AACA;;AAQA;;AACA;;AACA;;AAKA;;AACA;;AAvCA;AACA;AACA;;AAGA;AACA;AACA;;AA4BA;AACA;AACA;AAIA,MAAMA,qBAAqB,GAAG,cAAI,kCAAJ,CAA9B;;AAEe,SAASC,QAAT,CAAmB;AAAEC,EAAAA,UAAF;AAAcC,EAAAA,SAAd;AAAyBC,EAAAA,IAAzB;AAA+BC,EAAAA;AAA/B,CAAnB,EAA2D;AACzE,QAAMC,aAAa,GAAG,qBAAtB;AACA,QAAM,CAAEC,kBAAF,EAAsBC,qBAAtB,IAAgD,uBAAU,KAAV,CAAtD;AAEA,QAAM;AAAEC,IAAAA;AAAF,MACL,uBAAaC,qBAAb,CADD;AAEA,QAAM;AAAEC,IAAAA,iBAAF;AAAqBC,IAAAA;AAArB,MACL,uBAAaC,cAAb,CADD;AAGA,QAAM;AAAEC,IAAAA;AAAF,MAAc,mBAAS;AAC5BC,IAAAA,QAAQ,EAAEV,IAAI,CAACW,IADa;AAE5BC,IAAAA,MAAM,EAAEZ,IAAI,CAACW,IAAL,KAAcE,oBAAd,GAA8Bb,IAAI,CAACc,EAAnC,GAAwCd,IAAI,CAACe,IAFzB;AAG5BlB,IAAAA,UAH4B;AAI5BmB,IAAAA,YAAY,EAAEhB,IAAI,CAACW;AAJS,GAAT,CAApB;;AAOA,QAAMM,SAAS,GAAKC,KAAF,IAAa;AAC9B,QAAKC,qBAAWD,KAAK,CAACE,OAAjB,IAA4BC,wBAAcH,KAAK,CAACE,OAArD,EAA+D;AAC9DjB,MAAAA,qBAAqB,CAAE,IAAF,CAArB;AACA;AACD,GAJD;;AAMA,QAAMmB,OAAO,GAAG,CAAEtB,IAAI,CAACuB,MAAL,EAAaC,MAA/B;AACA,QAAMC,iBAAiB,GAAG,yBAAY,6BAAZ,EAA2C;AACpE,sBAAkBH;AADkD,GAA3C,CAA1B;AAGA,QAAMI,iBAAiB,GAAG,yBAAY,6BAAZ,EAA2C;AACpE,mBAAe1B,IAAI,CAACW,IAAL,KAAcgB;AADuC,GAA3C,CAA1B;;AAIA,QAAMC,aAAa,GAAG,YAAY;AACjC,QAAI;AACH,YAAMxB,iCAAiC,CAAEJ,IAAI,CAACc,EAAP,CAAvC;AACAP,MAAAA,mBAAmB,CAAE,cAAI,+BAAJ,CAAF,EAAyC;AAC3DI,QAAAA,IAAI,EAAE;AADqD,OAAzC,CAAnB;AAGA,KALD,CAKE,OAAQkB,KAAR,EAAgB;AACjB,YAAMC,YAAY,GACjBD,KAAK,CAACE,OAAN,IAAiBF,KAAK,CAACG,IAAN,KAAe,eAAhC,GACGH,KAAK,CAACE,OADT,GAEG,cAAI,+CAAJ,CAHJ;AAIAzB,MAAAA,iBAAiB,CAAEwB,YAAF,EAAgB;AAAEnB,QAAAA,IAAI,EAAE;AAAR,OAAhB,CAAjB;AACA;AACD,GAbD;;AAeA,QAAMsB,aAAa,GAAGjC,IAAI,CAACW,IAAL,KAAcE,oBAApC;AACA,QAAMqB,gBAAgB,GAAG,EAAzB;;AACA,MAAKD,aAAL,EAAqB;AACpB;AACAC,IAAAA,gBAAgB,CAACC,IAAjB,CACC,cAAI,uDAAJ,CADD;AAGA,GALD,MAKO,IAAKnC,IAAI,CAACoC,WAAV,EAAwB;AAC9BF,IAAAA,gBAAgB,CAACC,IAAjB,CAAuBnC,IAAI,CAACoC,WAA5B;AACA;;AACD,MAAKpC,IAAI,CAACW,IAAL,KAAcgB,eAAnB,EAA8B;AAC7BO,IAAAA,gBAAgB,CAACC,IAAjB,CAAuBxC,qBAAvB;AACA;;AAED,MAAI0C,QAAQ,GAAGtC,IAAf;;AACA,MAAKF,UAAU,KAAK,QAApB,EAA+B;AAC9BwC,IAAAA,QAAQ,GAAGC,aAAX;AACA,GAFD,MAEO,IAAKzC,UAAU,KAAK,QAApB,EAA+B;AACrCwC,IAAAA,QAAQ,GAAGE,aAAX;AACA,GAFM,MAEA,IAAK1C,UAAU,KAAK,eAApB,EAAsC;AAC5CwC,IAAAA,QAAQ,GAAGG,mBAAX;AACA;;AAED,SACC,qDACC;AAAK,IAAA,SAAS,EAAGf;AAAjB,KACC,4BAAC,mCAAD;AACC,IAAA,SAAS,EAAGC,iBADb;AAEC,IAAA,IAAI,EAAC,QAFN;AAGC,IAAA,EAAE,EAAC,KAHJ;AAAA,OAIM5B,SAJN;AAKC,IAAA,OAAO,EAAGE,IAAI,CAACW,IAAL,KAAcgB,eAAd,GAAyBlB,OAAzB,GAAmCgC,SAL9C;AAMC,IAAA,SAAS,EAAGR,aAAa,GAAGhB,SAAH,GAAewB,SANzC;AAOC,kBAAazC,IAAI,CAAC0C,KAPnB;AAQC,wBACCR,gBAAgB,CAACV,MAAjB,GACGU,gBAAgB,CACfS,GADD,CAEC,CAAEC,CAAF,EAAKC,KAAL,KACE,GAAG5C,aAAe,IAAI4C,KAAO,EAHhC,EAKCC,IALD,CAKO,GALP,CADH,GAOGL;AAhBL,KAmBGnB,OAAO,IAAI,cAAI,eAAJ,CAnBd,EAoBG,CAAEA,OAAF,IAAa,4BAAC,yBAAD;AAAc,IAAA,MAAM,EAAGtB,IAAI,CAACuB;AAA5B,IApBhB,CADD,EAuBGW,gBAAgB,CAACS,GAAjB,CAAsB,CAAEI,eAAF,EAAmBF,KAAnB,KACvB;AACC,IAAA,GAAG,EAAGA,KADP;AAEC,IAAA,MAAM,MAFP;AAGC,IAAA,EAAE,EAAI,GAAG5C,aAAe,IAAI4C,KAAO;AAHpC,KAKGE,eALH,CADC,CAvBH,EAgCC,4BAAC,gCAAD;AACC,mBAAY,MADb;AAEC,IAAA,SAAS,EAAC,4BAFX;AAGC,IAAA,OAAO,EAAC;AAHT,KAKC,4BAAC,gCAAD;AACC,IAAA,SAAS,EAAC,QADX;AAEC,IAAA,OAAO,EAAC,MAFT;AAGC,IAAA,OAAO,EAAG,CAHX;AAIC,IAAA,SAAS,EAAC;AAJX,KAMGhD,IAAI,IACL,4BAAC,WAAD;AACC,IAAA,SAAS,EAAC,kCADX;AAEC,IAAA,IAAI,EAAGsC;AAFR,IAPF,EAYC,4BAAC,gBAAD;AACC,IAAA,EAAE,EAAGW,iCADN;AAEC,IAAA,KAAK,EAAG,CAFT;AAGC,IAAA,GAAG,EAAG,CAHP;AAIC,IAAA,OAAO,EAAC;AAJT,KAMGhD,IAAI,CAAC0C,KANR,EAOG1C,IAAI,CAACW,IAAL,KAAcgB,eAAd,IACD,4BAAC,mBAAD;AACC,IAAA,QAAQ,EAAC,YADV;AAEC,IAAA,IAAI,EAAG,cACN,kCADM;AAFR,KAMC;AAAM,IAAA,SAAS,EAAC;AAAhB,KACC,4BAAC,WAAD;AACC,IAAA,KAAK,EAAG;AAAEsB,MAAAA,IAAI,EAAE;AAAR,KADT;AAEC,IAAA,IAAI,EAAGC,gBAFR;AAGC,IAAA,IAAI,EAAG;AAHR,IADD,CAND,CARF,CAZD,CALD,EA0CGlD,IAAI,CAACW,IAAL,KAAcE,oBAAd,IACD,4BAAC,wBAAD;AACC,IAAA,IAAI,EAAGsC,qBADR;AAEC,IAAA,KAAK,EAAG,cAAI,SAAJ,CAFT;AAGC,IAAA,SAAS,EAAC,8BAHX;AAIC,IAAA,YAAY,EAAG;AAAEC,MAAAA,SAAS,EAAE;AAAb,KAJhB;AAKC,IAAA,WAAW,EAAG;AACbC,MAAAA,SAAS,EAAE,4BADE;AAEbC,MAAAA,OAAO,EAAE,IAFI;AAGbC,MAAAA,WAAW,EAAE;AACZ;AACA,oBAAI,4BAAJ,CAFY,EAGZvD,IAAI,CAAC0C,KAHO,CAHA;AAQb;AACA;AACA;AACA;AACAc,MAAAA,QAAQ,EAAE,CAAC;AAZE;AALf,KAoBG,MACD,4BAAC,qBAAD,QACC,4BAAC,oBAAD;AACC,IAAA,OAAO,EAAG,MACTrD,qBAAqB,CAAE,IAAF;AAFvB,KAKG,cAAI,QAAJ,CALH,CADD,CArBF,CA3CF,CAhCD,CADD,EA+GGD,kBAAkB,IACnB,4BAAC,uCAAD;AACC,IAAA,SAAS,EAAG0B,aADb;AAEC,IAAA,QAAQ,EAAG,MAAMzB,qBAAqB,CAAE,KAAF;AAFvC,KAIG,cAAI,+CAAJ,CAJH,CAhHF,CADD;AA0HA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { BlockPreview } from '@wordpress/block-editor';\nimport {\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\t__unstableCompositeItem as CompositeItem,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { useState, useId } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled,\n\tmoreHorizontal,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { DELETE, BACKSPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { PATTERNS, USER_PATTERNS } from './utils';\nimport { useLink } from '../routes/link';\n\nconst THEME_PATTERN_TOOLTIP = __( 'Theme patterns cannot be edited.' );\n\nexport default function GridItem( { categoryId, composite, icon, item } ) {\n\tconst descriptionId = useId();\n\tconst [ isDeleteDialogOpen, setIsDeleteDialogOpen ] = useState( false );\n\n\tconst { __experimentalDeleteReusableBlock } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: item.type === USER_PATTERNS ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: item.type,\n\t} );\n\n\tconst onKeyDown = ( event ) => {\n\t\tif ( DELETE === event.keyCode || BACKSPACE === event.keyCode ) {\n\t\t\tsetIsDeleteDialogOpen( true );\n\t\t}\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': item.type === PATTERNS,\n\t} );\n\n\tconst deletePattern = async () => {\n\t\ttry {\n\t\t\tawait __experimentalDeleteReusableBlock( item.id );\n\t\t\tcreateSuccessNotice( __( 'Pattern successfully deleted.' ), {\n\t\t\t\ttype: 'snackbar',\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, { type: 'snackbar' } );\n\t\t}\n\t};\n\n\tconst isUserPattern = item.type === USER_PATTERNS;\n\tconst ariaDescriptions = [];\n\tif ( isUserPattern ) {\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\tif ( item.type === PATTERNS ) {\n\t\tariaDescriptions.push( THEME_PATTERN_TOOLTIP );\n\t}\n\n\tlet itemIcon = icon;\n\tif ( categoryId === 'header' ) {\n\t\titemIcon = header;\n\t} else if ( categoryId === 'footer' ) {\n\t\titemIcon = footer;\n\t} else if ( categoryId === 'uncategorized' ) {\n\t\titemIcon = symbolFilled;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<div className={ patternClassNames }>\n\t\t\t\t<CompositeItem\n\t\t\t\t\tclassName={ previewClassNames }\n\t\t\t\t\trole=\"option\"\n\t\t\t\t\tas=\"div\"\n\t\t\t\t\t{ ...composite }\n\t\t\t\t\tonClick={ item.type !== PATTERNS ? onClick : undefined }\n\t\t\t\t\tonKeyDown={ isUserPattern ? onKeyDown : undefined }\n\t\t\t\t\taria-label={ item.title }\n\t\t\t\t\taria-describedby={\n\t\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t\t? ariaDescriptions\n\t\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t\t( _, index ) =>\n\t\t\t\t\t\t\t\t\t\t\t`${ descriptionId }-${ index }`\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.join( ' ' )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isEmpty && __( 'Empty pattern' ) }\n\t\t\t\t\t{ ! isEmpty && <BlockPreview blocks={ item.blocks } /> }\n\t\t\t\t</CompositeItem>\n\t\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\thidden\n\t\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ariaDescription }\n\t\t\t\t\t</div>\n\t\t\t\t) ) }\n\t\t\t\t<HStack\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName=\"edit-site-patterns__footer\"\n\t\t\t\t\tjustify=\"space-between\"\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\talignment=\"center\"\n\t\t\t\t\t\tjustify=\"left\"\n\t\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ icon && (\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) }\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tas={ Heading }\n\t\t\t\t\t\t\tlevel={ 5 }\n\t\t\t\t\t\t\tgap={ 0 }\n\t\t\t\t\t\t\tjustify=\"left\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t\t{ item.type === PATTERNS && (\n\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\tposition=\"top center\"\n\t\t\t\t\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t\t\t\t\t'Theme patterns cannot be edited.'\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<span className=\"edit-site-patterns__pattern-lock-icon\">\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tstyle={ { fill: 'currentcolor' } }\n\t\t\t\t\t\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t{ item.type === USER_PATTERNS && (\n\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\ticon={ moreHorizontal }\n\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t\tclassName=\"edit-site-patterns__dropdown\"\n\t\t\t\t\t\t\tpopoverProps={ { placement: 'bottom-end' } }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tclassName: 'edit-site-patterns__button',\n\t\t\t\t\t\t\t\tisSmall: true,\n\t\t\t\t\t\t\t\tdescribedBy: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: pattern name */\n\t\t\t\t\t\t\t\t\t__( 'Action menu for %s pattern' ),\n\t\t\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t// The dropdown menu is not focusable using the\n\t\t\t\t\t\t\t\t// keyboard as this would interfere with the grid's\n\t\t\t\t\t\t\t\t// roving tab index system. Instead, keyboard users\n\t\t\t\t\t\t\t\t// use keyboard shortcuts to trigger actions.\n\t\t\t\t\t\t\t\ttabIndex: -1,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tsetIsDeleteDialogOpen( true )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</div>\n\t\t\t{ isDeleteDialogOpen && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tonConfirm={ deletePattern }\n\t\t\t\t\tonCancel={ () => setIsDeleteDialogOpen( false ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Are you sure you want to delete this pattern?' ) }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/grid-item.js"],"names":["templatePartIcons","header","footer","uncategorized","GridItem","categoryId","item","props","descriptionId","isDeleteDialogOpen","setIsDeleteDialogOpen","removeTemplate","editSiteStore","__experimentalDeleteReusableBlock","reusableBlocksStore","createErrorNotice","createSuccessNotice","noticesStore","isUserPattern","type","USER_PATTERNS","isNonUserPattern","PATTERNS","isTemplatePart","TEMPLATE_PARTS","onClick","postType","postId","id","name","categoryType","isEmpty","blocks","length","patternClassNames","previewClassNames","deletePattern","title","error","errorMessage","message","code","deleteItem","isCustomPattern","isCustom","hasThemeFile","templatePart","has_theme_file","ariaDescriptions","push","description","itemIcon","syncStatus","SYNC_TYPES","full","symbol","undefined","confirmButtonText","confirmPrompt","map","_","index","join","ariaDescription","lockSmall","moreHorizontal","placement","className","isSmall","describedBy","onClose"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { BlockPreview } 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\tmoreHorizontal,\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 { PATTERNS, TEMPLATE_PARTS, USER_PATTERNS, SYNC_TYPES } from './utils';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\n\nconst templatePartIcons = { header, footer, uncategorized };\n\nfunction GridItem( { categoryId, item, ...props } ) {\n\tconst descriptionId = useId();\n\tconst [ isDeleteDialogOpen, setIsDeleteDialogOpen ] = useState( false );\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 === USER_PATTERNS;\n\tconst isNonUserPattern = item.type === PATTERNS;\n\tconst isTemplatePart = item.type === TEMPLATE_PARTS;\n\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: item.type,\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\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( __( 'Theme patterns cannot be edited.' ) );\n\t}\n\n\tconst itemIcon =\n\t\ttemplatePartIcons[ categoryId ] ||\n\t\t( item.syncStatus === SYNC_TYPES.full ? symbol : undefined );\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\n\t\t );\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={ item.type !== PATTERNS ? onClick : undefined }\n\t\t\t\taria-disabled={ item.type !== PATTERNS ? 'false' : 'true' }\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 && __( 'Empty pattern' ) }\n\t\t\t\t{ ! isEmpty && <BlockPreview blocks={ item.blocks } /> }\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 && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tposition=\"top center\"\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<span>\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</span>\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 === PATTERNS ? (\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 }\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 === PATTERNS && (\n\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\tposition=\"top center\"\n\t\t\t\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t\t\t\t'Theme patterns cannot be edited.'\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\t<span className=\"edit-site-patterns__pattern-lock-icon\">\n\t\t\t\t\t\t\t\t\t<Icon icon={ lockSmall } size={ 24 } />\n\t\t\t\t\t\t\t\t</span>\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={ moreHorizontal }\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\tisSmall: true,\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={\n\t\t\t\t\t\t\t\t\tisNonUserPattern\n\t\t\t\t\t\t\t\t\t\t? __( 'Copy to My patterns' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Duplicate' )\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{ isCustomPattern && (\n\t\t\t\t\t\t\t\t<MenuItem\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"]}
|
|
@@ -11,6 +11,10 @@ var _element = require("@wordpress/element");
|
|
|
11
11
|
|
|
12
12
|
var _components = require("@wordpress/components");
|
|
13
13
|
|
|
14
|
+
var _i18n = require("@wordpress/i18n");
|
|
15
|
+
|
|
16
|
+
var _compose = require("@wordpress/compose");
|
|
17
|
+
|
|
14
18
|
var _gridItem = _interopRequireDefault(require("./grid-item"));
|
|
15
19
|
|
|
16
20
|
/**
|
|
@@ -20,30 +24,94 @@ var _gridItem = _interopRequireDefault(require("./grid-item"));
|
|
|
20
24
|
/**
|
|
21
25
|
* Internal dependencies
|
|
22
26
|
*/
|
|
27
|
+
const PAGE_SIZE = 20;
|
|
28
|
+
|
|
29
|
+
function Pagination({
|
|
30
|
+
currentPage,
|
|
31
|
+
numPages,
|
|
32
|
+
changePage,
|
|
33
|
+
totalItems
|
|
34
|
+
}) {
|
|
35
|
+
return (0, _element.createElement)(_components.__experimentalHStack, {
|
|
36
|
+
expanded: false,
|
|
37
|
+
spacing: 3,
|
|
38
|
+
className: "edit-site-patterns__grid-pagination"
|
|
39
|
+
}, (0, _element.createElement)(_components.__experimentalText, {
|
|
40
|
+
variant: "muted"
|
|
41
|
+
}, // translators: %s: Total number of patterns.
|
|
42
|
+
(0, _i18n.sprintf)( // translators: %s: Total number of patterns.
|
|
43
|
+
(0, _i18n._n)('%s item', '%s items', totalItems), totalItems)), (0, _element.createElement)(_components.__experimentalHStack, {
|
|
44
|
+
expanded: false,
|
|
45
|
+
spacing: 1
|
|
46
|
+
}, (0, _element.createElement)(_components.Button, {
|
|
47
|
+
variant: "tertiary",
|
|
48
|
+
onClick: () => changePage(1),
|
|
49
|
+
disabled: currentPage === 1,
|
|
50
|
+
"aria-label": (0, _i18n.__)('First page')
|
|
51
|
+
}, "\xAB"), (0, _element.createElement)(_components.Button, {
|
|
52
|
+
variant: "tertiary",
|
|
53
|
+
onClick: () => changePage(currentPage - 1),
|
|
54
|
+
disabled: currentPage === 1,
|
|
55
|
+
"aria-label": (0, _i18n.__)('Previous page')
|
|
56
|
+
}, "\u2039")), (0, _element.createElement)(_components.__experimentalText, {
|
|
57
|
+
variant: "muted"
|
|
58
|
+
}, (0, _i18n.sprintf)( // translators: %1$s: Current page number, %2$s: Total number of pages.
|
|
59
|
+
(0, _i18n._x)('%1$s of %2$s', 'paging'), currentPage, numPages)), (0, _element.createElement)(_components.__experimentalHStack, {
|
|
60
|
+
expanded: false,
|
|
61
|
+
spacing: 1
|
|
62
|
+
}, (0, _element.createElement)(_components.Button, {
|
|
63
|
+
variant: "tertiary",
|
|
64
|
+
onClick: () => changePage(currentPage + 1),
|
|
65
|
+
disabled: currentPage === numPages,
|
|
66
|
+
"aria-label": (0, _i18n.__)('Next page')
|
|
67
|
+
}, "\u203A"), (0, _element.createElement)(_components.Button, {
|
|
68
|
+
variant: "tertiary",
|
|
69
|
+
onClick: () => changePage(numPages),
|
|
70
|
+
disabled: currentPage === numPages,
|
|
71
|
+
"aria-label": (0, _i18n.__)('Last page')
|
|
72
|
+
}, "\xBB")));
|
|
73
|
+
}
|
|
74
|
+
|
|
23
75
|
function Grid({
|
|
24
76
|
categoryId,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
items
|
|
77
|
+
items,
|
|
78
|
+
...props
|
|
28
79
|
}) {
|
|
29
|
-
const
|
|
30
|
-
|
|
80
|
+
const [currentPage, setCurrentPage] = (0, _element.useState)(1);
|
|
81
|
+
const gridRef = (0, _element.useRef)();
|
|
82
|
+
const totalItems = items.length;
|
|
83
|
+
const pageIndex = currentPage - 1;
|
|
84
|
+
const list = (0, _element.useMemo)(() => items.slice(pageIndex * PAGE_SIZE, pageIndex * PAGE_SIZE + PAGE_SIZE), [pageIndex, items]);
|
|
85
|
+
const asyncList = (0, _compose.useAsyncList)(list, {
|
|
86
|
+
step: 10
|
|
31
87
|
});
|
|
32
88
|
|
|
33
|
-
if (!
|
|
89
|
+
if (!list?.length) {
|
|
34
90
|
return null;
|
|
35
91
|
}
|
|
36
92
|
|
|
37
|
-
|
|
93
|
+
const numPages = Math.ceil(items.length / PAGE_SIZE);
|
|
94
|
+
|
|
95
|
+
const changePage = page => {
|
|
96
|
+
const scrollContainer = document.querySelector('.edit-site-patterns');
|
|
97
|
+
scrollContainer?.scrollTo(0, 0);
|
|
98
|
+
setCurrentPage(page);
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)("ul", {
|
|
38
102
|
role: "listbox",
|
|
39
103
|
className: "edit-site-patterns__grid",
|
|
40
|
-
|
|
41
|
-
|
|
104
|
+
...props,
|
|
105
|
+
ref: gridRef
|
|
106
|
+
}, asyncList.map(item => (0, _element.createElement)(_gridItem.default, {
|
|
42
107
|
key: item.name,
|
|
43
|
-
icon: icon,
|
|
44
108
|
item: item,
|
|
45
|
-
categoryId: categoryId
|
|
46
|
-
|
|
47
|
-
|
|
109
|
+
categoryId: categoryId
|
|
110
|
+
}))), numPages > 1 && (0, _element.createElement)(Pagination, {
|
|
111
|
+
currentPage,
|
|
112
|
+
numPages,
|
|
113
|
+
changePage,
|
|
114
|
+
totalItems
|
|
115
|
+
}));
|
|
48
116
|
}
|
|
49
117
|
//# sourceMappingURL=grid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/grid.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/grid.js"],"names":["PAGE_SIZE","Pagination","currentPage","numPages","changePage","totalItems","Grid","categoryId","items","props","setCurrentPage","gridRef","length","pageIndex","list","slice","asyncList","step","Math","ceil","page","scrollContainer","document","querySelector","scrollTo","map","item","name"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n\tButton,\n} from '@wordpress/components';\nimport { useRef, useState, useMemo } from '@wordpress/element';\nimport { __, _x, _n, sprintf } from '@wordpress/i18n';\nimport { useAsyncList } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport GridItem from './grid-item';\n\nconst PAGE_SIZE = 20;\n\nfunction Pagination( { currentPage, numPages, changePage, totalItems } ) {\n\treturn (\n\t\t<HStack\n\t\t\texpanded={ false }\n\t\t\tspacing={ 3 }\n\t\t\tclassName=\"edit-site-patterns__grid-pagination\"\n\t\t>\n\t\t\t<Text variant=\"muted\">\n\t\t\t\t{\n\t\t\t\t\t// translators: %s: Total number of patterns.\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Total number of patterns.\n\t\t\t\t\t\t_n( '%s item', '%s items', totalItems ),\n\t\t\t\t\t\ttotalItems\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</Text>\n\t\t\t<HStack expanded={ false } spacing={ 1 }>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ () => changePage( 1 ) }\n\t\t\t\t\tdisabled={ currentPage === 1 }\n\t\t\t\t\taria-label={ __( 'First page' ) }\n\t\t\t\t>\n\t\t\t\t\t«\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ () => changePage( currentPage - 1 ) }\n\t\t\t\t\tdisabled={ currentPage === 1 }\n\t\t\t\t\taria-label={ __( 'Previous page' ) }\n\t\t\t\t>\n\t\t\t\t\t‹\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t\t<Text variant=\"muted\">\n\t\t\t\t{ sprintf(\n\t\t\t\t\t// translators: %1$s: Current page number, %2$s: Total number of pages.\n\t\t\t\t\t_x( '%1$s of %2$s', 'paging' ),\n\t\t\t\t\tcurrentPage,\n\t\t\t\t\tnumPages\n\t\t\t\t) }\n\t\t\t</Text>\n\t\t\t<HStack expanded={ false } spacing={ 1 }>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ () => changePage( currentPage + 1 ) }\n\t\t\t\t\tdisabled={ currentPage === numPages }\n\t\t\t\t\taria-label={ __( 'Next page' ) }\n\t\t\t\t>\n\t\t\t\t\t›\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ () => changePage( numPages ) }\n\t\t\t\t\tdisabled={ currentPage === numPages }\n\t\t\t\t\taria-label={ __( 'Last page' ) }\n\t\t\t\t>\n\t\t\t\t\t»\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t</HStack>\n\t);\n}\n\nexport default function Grid( { categoryId, items, ...props } ) {\n\tconst [ currentPage, setCurrentPage ] = useState( 1 );\n\tconst gridRef = useRef();\n\tconst totalItems = items.length;\n\tconst pageIndex = currentPage - 1;\n\n\tconst list = useMemo(\n\t\t() =>\n\t\t\titems.slice(\n\t\t\t\tpageIndex * PAGE_SIZE,\n\t\t\t\tpageIndex * PAGE_SIZE + PAGE_SIZE\n\t\t\t),\n\t\t[ pageIndex, items ]\n\t);\n\n\tconst asyncList = useAsyncList( list, { step: 10 } );\n\n\tif ( ! list?.length ) {\n\t\treturn null;\n\t}\n\n\tconst numPages = Math.ceil( items.length / PAGE_SIZE );\n\tconst changePage = ( page ) => {\n\t\tconst scrollContainer = document.querySelector( '.edit-site-patterns' );\n\t\tscrollContainer?.scrollTo( 0, 0 );\n\n\t\tsetCurrentPage( page );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ul\n\t\t\t\trole=\"listbox\"\n\t\t\t\tclassName=\"edit-site-patterns__grid\"\n\t\t\t\t{ ...props }\n\t\t\t\tref={ gridRef }\n\t\t\t>\n\t\t\t\t{ asyncList.map( ( item ) => (\n\t\t\t\t\t<GridItem\n\t\t\t\t\t\tkey={ item.name }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t\t{ numPages > 1 && (\n\t\t\t\t<Pagination\n\t\t\t\t\t{ ...{ currentPage, numPages, changePage, totalItems } }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = PatternsHeader;
|
|
9
|
+
|
|
10
|
+
var _element = require("@wordpress/element");
|
|
11
|
+
|
|
12
|
+
var _components = require("@wordpress/components");
|
|
13
|
+
|
|
14
|
+
var _i18n = require("@wordpress/i18n");
|
|
15
|
+
|
|
16
|
+
var _editor = require("@wordpress/editor");
|
|
17
|
+
|
|
18
|
+
var _data = require("@wordpress/data");
|
|
19
|
+
|
|
20
|
+
var _usePatternCategories = _interopRequireDefault(require("../sidebar-navigation-screen-patterns/use-pattern-categories"));
|
|
21
|
+
|
|
22
|
+
var _utils = require("./utils");
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* WordPress dependencies
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Internal dependencies
|
|
30
|
+
*/
|
|
31
|
+
function PatternsHeader({
|
|
32
|
+
categoryId,
|
|
33
|
+
type,
|
|
34
|
+
titleId,
|
|
35
|
+
descriptionId
|
|
36
|
+
}) {
|
|
37
|
+
const {
|
|
38
|
+
patternCategories
|
|
39
|
+
} = (0, _usePatternCategories.default)();
|
|
40
|
+
const templatePartAreas = (0, _data.useSelect)(select => select(_editor.store).__experimentalGetDefaultTemplatePartAreas(), []);
|
|
41
|
+
let title, description;
|
|
42
|
+
|
|
43
|
+
if (categoryId === _utils.USER_PATTERN_CATEGORY && type === _utils.USER_PATTERNS) {
|
|
44
|
+
title = (0, _i18n.__)('My Patterns');
|
|
45
|
+
description = '';
|
|
46
|
+
} else if (type === _utils.TEMPLATE_PARTS) {
|
|
47
|
+
const templatePartArea = templatePartAreas.find(area => area.area === categoryId);
|
|
48
|
+
title = templatePartArea?.label;
|
|
49
|
+
description = templatePartArea?.description;
|
|
50
|
+
} else if (type === _utils.PATTERNS) {
|
|
51
|
+
const patternCategory = patternCategories.find(category => category.name === categoryId);
|
|
52
|
+
title = patternCategory?.label;
|
|
53
|
+
description = patternCategory?.description;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (!title) return null;
|
|
57
|
+
return (0, _element.createElement)(_components.__experimentalVStack, {
|
|
58
|
+
className: "edit-site-patterns__section-header"
|
|
59
|
+
}, (0, _element.createElement)(_components.__experimentalHeading, {
|
|
60
|
+
as: "h2",
|
|
61
|
+
level: 4,
|
|
62
|
+
id: titleId
|
|
63
|
+
}, title), description ? (0, _element.createElement)(_components.__experimentalText, {
|
|
64
|
+
variant: "muted",
|
|
65
|
+
as: "p",
|
|
66
|
+
id: descriptionId
|
|
67
|
+
}, description) : null);
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/header.js"],"names":["PatternsHeader","categoryId","type","titleId","descriptionId","patternCategories","templatePartAreas","select","editorStore","__experimentalGetDefaultTemplatePartAreas","title","description","USER_PATTERN_CATEGORY","USER_PATTERNS","TEMPLATE_PARTS","templatePartArea","find","area","label","PATTERNS","patternCategory","category","name"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAKA;;AACA;;AAhBA;AACA;AACA;;AAUA;AACA;AACA;AASe,SAASA,cAAT,CAAyB;AACvCC,EAAAA,UADuC;AAEvCC,EAAAA,IAFuC;AAGvCC,EAAAA,OAHuC;AAIvCC,EAAAA;AAJuC,CAAzB,EAKX;AACH,QAAM;AAAEC,IAAAA;AAAF,MAAwB,oCAA9B;AACA,QAAMC,iBAAiB,GAAG,qBACvBC,MAAF,IACCA,MAAM,CAAEC,aAAF,CAAN,CAAsBC,yCAAtB,EAFwB,EAGzB,EAHyB,CAA1B;AAMA,MAAIC,KAAJ,EAAWC,WAAX;;AACA,MAAKV,UAAU,KAAKW,4BAAf,IAAwCV,IAAI,KAAKW,oBAAtD,EAAsE;AACrEH,IAAAA,KAAK,GAAG,cAAI,aAAJ,CAAR;AACAC,IAAAA,WAAW,GAAG,EAAd;AACA,GAHD,MAGO,IAAKT,IAAI,KAAKY,qBAAd,EAA+B;AACrC,UAAMC,gBAAgB,GAAGT,iBAAiB,CAACU,IAAlB,CACtBC,IAAF,IAAYA,IAAI,CAACA,IAAL,KAAchB,UADF,CAAzB;AAGAS,IAAAA,KAAK,GAAGK,gBAAgB,EAAEG,KAA1B;AACAP,IAAAA,WAAW,GAAGI,gBAAgB,EAAEJ,WAAhC;AACA,GANM,MAMA,IAAKT,IAAI,KAAKiB,eAAd,EAAyB;AAC/B,UAAMC,eAAe,GAAGf,iBAAiB,CAACW,IAAlB,CACrBK,QAAF,IAAgBA,QAAQ,CAACC,IAAT,KAAkBrB,UADX,CAAxB;AAGAS,IAAAA,KAAK,GAAGU,eAAe,EAAEF,KAAzB;AACAP,IAAAA,WAAW,GAAGS,eAAe,EAAET,WAA/B;AACA;;AAED,MAAK,CAAED,KAAP,EAAe,OAAO,IAAP;AAEf,SACC,4BAAC,gCAAD;AAAQ,IAAA,SAAS,EAAC;AAAlB,KACC,4BAAC,iCAAD;AAAS,IAAA,EAAE,EAAC,IAAZ;AAAiB,IAAA,KAAK,EAAG,CAAzB;AAA6B,IAAA,EAAE,EAAGP;AAAlC,KACGO,KADH,CADD,EAIGC,WAAW,GACZ,4BAAC,8BAAD;AAAM,IAAA,OAAO,EAAC,OAAd;AAAsB,IAAA,EAAE,EAAC,GAAzB;AAA6B,IAAA,EAAE,EAAGP;AAAlC,KACGO,WADH,CADY,GAIT,IARL,CADD;AAYA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as editorStore } from '@wordpress/editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\nimport {\n\tUSER_PATTERN_CATEGORY,\n\tUSER_PATTERNS,\n\tTEMPLATE_PARTS,\n\tPATTERNS,\n} from './utils';\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;\n\tif ( categoryId === USER_PATTERN_CATEGORY && type === USER_PATTERNS ) {\n\t\ttitle = __( 'My Patterns' );\n\t\tdescription = '';\n\t} else if ( type === TEMPLATE_PARTS ) {\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 === PATTERNS ) {\n\t\tconst patternCategory = 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<Heading as=\"h2\" level={ 4 } id={ titleId }>\n\t\t\t\t{ title }\n\t\t\t</Heading>\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"]}
|
|
@@ -53,7 +53,9 @@ function PagePatterns() {
|
|
|
53
53
|
className: "edit-site-patterns",
|
|
54
54
|
title: (0, _i18n.__)('Patterns content'),
|
|
55
55
|
hideTitleFromUI: true
|
|
56
|
-
}, (0, _element.createElement)(_patternsList.default
|
|
56
|
+
}, (0, _element.createElement)(_patternsList.default // Reset the states when switching between categories and types.
|
|
57
|
+
, {
|
|
58
|
+
key: `${type}-${category}`,
|
|
57
59
|
type: type,
|
|
58
60
|
categoryId: category
|
|
59
61
|
})));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/index.js"],"names":["ExperimentalBlockEditorProvider","blockEditorPrivateApis","PagePatterns","categoryType","categoryId","window","location","href","type","DEFAULT_TYPE","category","DEFAULT_CATEGORY","settings"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAdA;AACA;AACA;;AAKA;AACA;AACA;AAOA,MAAM;AAAEA,EAAAA;AAAF,IAAsC,wBAAQC,wBAAR,CAA5C;;AAEe,SAASC,YAAT,GAAwB;AACtC,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAA+B,uBAAcC,MAAM,CAACC,QAAP,CAAgBC,IAA9B,CAArC;AACA,QAAMC,IAAI,GAAGL,YAAY,IAAIM,mBAA7B;AACA,QAAMC,QAAQ,GAAGN,UAAU,IAAIO,uBAA/B;AACA,QAAMC,QAAQ,GAAG,kCAAjB,CAJsC,CAMtC;AACA;AACA;;AACA,SACC,4BAAC,+BAAD;AAAiC,IAAA,QAAQ,EAAGA;AAA5C,KACC,4BAAC,aAAD;AACC,IAAA,SAAS,EAAC,oBADX;AAEC,IAAA,KAAK,EAAG,cAAI,kBAAJ,CAFT;AAGC,IAAA,eAAe;AAHhB,KAKC,4BAAC,qBAAD;
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-site/src/components/page-patterns/index.js"],"names":["ExperimentalBlockEditorProvider","blockEditorPrivateApis","PagePatterns","categoryType","categoryId","window","location","href","type","DEFAULT_TYPE","category","DEFAULT_CATEGORY","settings"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAdA;AACA;AACA;;AAKA;AACA;AACA;AAOA,MAAM;AAAEA,EAAAA;AAAF,IAAsC,wBAAQC,wBAAR,CAA5C;;AAEe,SAASC,YAAT,GAAwB;AACtC,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAA+B,uBAAcC,MAAM,CAACC,QAAP,CAAgBC,IAA9B,CAArC;AACA,QAAMC,IAAI,GAAGL,YAAY,IAAIM,mBAA7B;AACA,QAAMC,QAAQ,GAAGN,UAAU,IAAIO,uBAA/B;AACA,QAAMC,QAAQ,GAAG,kCAAjB,CAJsC,CAMtC;AACA;AACA;;AACA,SACC,4BAAC,+BAAD;AAAiC,IAAA,QAAQ,EAAGA;AAA5C,KACC,4BAAC,aAAD;AACC,IAAA,SAAS,EAAC,oBADX;AAEC,IAAA,KAAK,EAAG,cAAI,kBAAJ,CAFT;AAGC,IAAA,eAAe;AAHhB,KAKC,4BAAC,qBAAD,CACC;AADD;AAEC,IAAA,GAAG,EAAI,GAAGJ,IAAM,IAAIE,QAAU,EAF/B;AAGC,IAAA,IAAI,EAAGF,IAHR;AAIC,IAAA,UAAU,EAAGE;AAJd,IALD,CADD,CADD;AAgBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { getQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { DEFAULT_CATEGORY, DEFAULT_TYPE } from './utils';\nimport Page from '../page';\nimport PatternsList from './patterns-list';\nimport usePatternSettings from './use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\n\nexport default function PagePatterns() {\n\tconst { categoryType, categoryId } = getQueryArgs( window.location.href );\n\tconst type = categoryType || DEFAULT_TYPE;\n\tconst category = categoryId || DEFAULT_CATEGORY;\n\tconst settings = usePatternSettings();\n\n\t// Wrap everything in a block editor provider.\n\t// This ensures 'styles' that are needed for the previews are synced\n\t// from the site editor store to the block editor store.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<Page\n\t\t\t\tclassName=\"edit-site-patterns\"\n\t\t\t\ttitle={ __( 'Patterns content' ) }\n\t\t\t\thideTitleFromUI\n\t\t\t>\n\t\t\t\t<PatternsList\n\t\t\t\t\t// Reset the states when switching between categories and types.\n\t\t\t\t\tkey={ `${ type }-${ category }` }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\tcategoryId={ category }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"]}
|