@wordpress/editor 14.0.3 → 14.2.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 +16 -12
- package/README.md +189 -24
- package/build/components/create-template-part-modal/index.js +2 -0
- package/build/components/create-template-part-modal/index.js.map +1 -1
- package/build/components/document-bar/index.js +11 -4
- package/build/components/document-bar/index.js.map +1 -1
- package/build/components/editor/index.js +18 -24
- package/build/components/editor/index.js.map +1 -1
- package/build/components/editor-interface/index.js +3 -1
- package/build/components/editor-interface/index.js.map +1 -1
- package/build/components/entities-saved-states/hooks/use-is-dirty.js +9 -0
- package/build/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
- package/build/components/entities-saved-states/index.js +28 -0
- package/build/components/entities-saved-states/index.js.map +1 -1
- package/build/components/global-keyboard-shortcuts/index.js +1 -1
- package/build/components/global-keyboard-shortcuts/index.js.map +1 -1
- package/build/components/header/index.js +6 -2
- package/build/components/header/index.js.map +1 -1
- package/build/components/index.js +15 -0
- package/build/components/index.js.map +1 -1
- package/build/components/post-actions/actions.js +286 -263
- package/build/components/post-actions/actions.js.map +1 -1
- package/build/components/post-actions/index.js +2 -0
- package/build/components/post-actions/index.js.map +1 -1
- package/build/components/post-publish-button/index.js +4 -0
- package/build/components/post-publish-button/index.js.map +1 -1
- package/build/components/post-publish-button/label.js +5 -0
- package/build/components/post-publish-button/label.js.map +1 -1
- package/build/components/post-publish-panel/index.js +4 -0
- package/build/components/post-publish-panel/index.js.map +1 -1
- package/build/components/post-slug/check.js +8 -1
- package/build/components/post-slug/check.js.map +1 -1
- package/build/components/post-slug/index.js +6 -0
- package/build/components/post-slug/index.js.map +1 -1
- package/build/components/post-status/index.js +2 -1
- package/build/components/post-status/index.js.map +1 -1
- package/build/components/post-sticky/check.js +8 -0
- package/build/components/post-sticky/check.js.map +1 -1
- package/build/components/post-sticky/index.js +13 -13
- package/build/components/post-sticky/index.js.map +1 -1
- package/build/components/post-switch-to-draft-button/index.js +11 -2
- package/build/components/post-switch-to-draft-button/index.js.map +1 -1
- package/build/components/post-sync-status/index.js +5 -1
- package/build/components/post-sync-status/index.js.map +1 -1
- package/build/components/post-taxonomies/check.js +8 -0
- package/build/components/post-taxonomies/check.js.map +1 -1
- package/build/components/post-taxonomies/flat-term-selector.js +14 -2
- package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build/components/post-taxonomies/index.js +9 -0
- package/build/components/post-taxonomies/index.js.map +1 -1
- package/build/components/post-taxonomies/panel.js +10 -0
- package/build/components/post-taxonomies/panel.js.map +1 -1
- package/build/components/post-template/create-new-template-modal.js +2 -0
- package/build/components/post-template/create-new-template-modal.js.map +1 -1
- package/build/components/post-title/index.js +4 -8
- package/build/components/post-title/index.js.map +1 -1
- package/build/components/post-title/post-title-raw.js +3 -7
- package/build/components/post-title/post-title-raw.js.map +1 -1
- package/build/components/post-trash/check.js +8 -0
- package/build/components/post-trash/check.js.map +1 -1
- package/build/components/post-trash/index.js +5 -1
- package/build/components/post-trash/index.js.map +1 -1
- package/build/components/provider/index.js +18 -15
- package/build/components/provider/index.js.map +1 -1
- package/build/components/sidebar/index.js +2 -1
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar/post-summary.js +2 -3
- package/build/components/sidebar/post-summary.js.map +1 -1
- package/build/components/table-of-contents/index.js +11 -0
- package/build/components/table-of-contents/index.js.map +1 -1
- package/build/components/template-part-content-panel/index.js +70 -0
- package/build/components/template-part-content-panel/index.js.map +1 -0
- package/build/components/template-part-menu-items/convert-to-regular.js +38 -0
- package/build/components/template-part-menu-items/convert-to-regular.js.map +1 -0
- package/build/components/template-part-menu-items/convert-to-template-part.js +77 -0
- package/build/components/template-part-menu-items/convert-to-template-part.js.map +1 -0
- package/build/components/template-part-menu-items/index.js +67 -0
- package/build/components/template-part-menu-items/index.js.map +1 -0
- package/build/components/template-part-menu-items/index.native.js +10 -0
- package/build/components/template-part-menu-items/index.native.js.map +1 -0
- package/build/components/theme-support-check/index.js +9 -0
- package/build/components/theme-support-check/index.js.map +1 -1
- package/build/components/time-to-read/index.js +6 -0
- package/build/components/time-to-read/index.js.map +1 -1
- package/build/components/word-count/index.js +5 -1
- package/build/components/word-count/index.js.map +1 -1
- package/build/dataviews/api.js +61 -0
- package/build/dataviews/api.js.map +1 -0
- package/build/dataviews/store/private-actions.js +28 -0
- package/build/dataviews/store/private-actions.js.map +1 -0
- package/build/dataviews/store/private-selectors.js +20 -0
- package/build/dataviews/store/private-selectors.js.map +1 -0
- package/build/dataviews/store/reducer.js +36 -0
- package/build/dataviews/store/reducer.js.map +1 -0
- package/build/index.js +12 -0
- package/build/index.js.map +1 -1
- package/build/private-apis.js +0 -6
- package/build/private-apis.js.map +1 -1
- package/build/private-apis.native.js +0 -2
- package/build/private-apis.native.js.map +1 -1
- package/build/store/private-actions.js +21 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +5 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +4 -1
- package/build/store/reducer.js.map +1 -1
- package/build-module/components/create-template-part-modal/index.js +2 -0
- package/build-module/components/create-template-part-modal/index.js.map +1 -1
- package/build-module/components/document-bar/index.js +11 -4
- package/build-module/components/document-bar/index.js.map +1 -1
- package/build-module/components/editor/index.js +19 -24
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/editor-interface/index.js +3 -1
- package/build-module/components/editor-interface/index.js.map +1 -1
- package/build-module/components/entities-saved-states/hooks/use-is-dirty.js +10 -0
- package/build-module/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
- package/build-module/components/entities-saved-states/index.js +28 -0
- package/build-module/components/entities-saved-states/index.js.map +1 -1
- package/build-module/components/global-keyboard-shortcuts/index.js +1 -1
- package/build-module/components/global-keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/header/index.js +6 -2
- package/build-module/components/header/index.js.map +1 -1
- package/build-module/components/index.js +16 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/post-actions/actions.js +286 -263
- package/build-module/components/post-actions/actions.js.map +1 -1
- package/build-module/components/post-actions/index.js +2 -0
- package/build-module/components/post-actions/index.js.map +1 -1
- package/build-module/components/post-publish-button/index.js +4 -0
- package/build-module/components/post-publish-button/index.js.map +1 -1
- package/build-module/components/post-publish-button/label.js +6 -0
- package/build-module/components/post-publish-button/label.js.map +1 -1
- package/build-module/components/post-publish-panel/index.js +4 -0
- package/build-module/components/post-publish-panel/index.js.map +1 -1
- package/build-module/components/post-slug/check.js +9 -0
- package/build-module/components/post-slug/check.js.map +1 -1
- package/build-module/components/post-slug/index.js +6 -0
- package/build-module/components/post-slug/index.js.map +1 -1
- package/build-module/components/post-status/index.js +2 -1
- package/build-module/components/post-status/index.js.map +1 -1
- package/build-module/components/post-sticky/check.js +9 -0
- package/build-module/components/post-sticky/check.js.map +1 -1
- package/build-module/components/post-sticky/index.js +15 -13
- package/build-module/components/post-sticky/index.js.map +1 -1
- package/build-module/components/post-switch-to-draft-button/index.js +10 -1
- package/build-module/components/post-switch-to-draft-button/index.js.map +1 -1
- package/build-module/components/post-sync-status/index.js +6 -0
- package/build-module/components/post-sync-status/index.js.map +1 -1
- package/build-module/components/post-taxonomies/check.js +9 -0
- package/build-module/components/post-taxonomies/check.js.map +1 -1
- package/build-module/components/post-taxonomies/flat-term-selector.js +14 -2
- package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build-module/components/post-taxonomies/index.js +9 -0
- package/build-module/components/post-taxonomies/index.js.map +1 -1
- package/build-module/components/post-taxonomies/panel.js +10 -0
- package/build-module/components/post-taxonomies/panel.js.map +1 -1
- package/build-module/components/post-template/create-new-template-modal.js +2 -0
- package/build-module/components/post-template/create-new-template-modal.js.map +1 -1
- package/build-module/components/post-title/index.js +4 -8
- package/build-module/components/post-title/index.js.map +1 -1
- package/build-module/components/post-title/post-title-raw.js +3 -7
- package/build-module/components/post-title/post-title-raw.js.map +1 -1
- package/build-module/components/post-trash/check.js +9 -0
- package/build-module/components/post-trash/check.js.map +1 -1
- package/build-module/components/post-trash/index.js +6 -0
- package/build-module/components/post-trash/index.js.map +1 -1
- package/build-module/components/provider/index.js +18 -15
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/sidebar/index.js +2 -1
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar/post-summary.js +2 -3
- package/build-module/components/sidebar/post-summary.js.map +1 -1
- package/build-module/components/table-of-contents/index.js +11 -0
- package/build-module/components/table-of-contents/index.js.map +1 -1
- package/build-module/components/template-part-content-panel/index.js +63 -0
- package/build-module/components/template-part-content-panel/index.js.map +1 -0
- package/build-module/components/template-part-menu-items/convert-to-regular.js +31 -0
- package/build-module/components/template-part-menu-items/convert-to-regular.js.map +1 -0
- package/build-module/components/template-part-menu-items/convert-to-template-part.js +71 -0
- package/build-module/components/template-part-menu-items/convert-to-template-part.js.map +1 -0
- package/build-module/components/template-part-menu-items/index.js +59 -0
- package/build-module/components/template-part-menu-items/index.js.map +1 -0
- package/build-module/components/template-part-menu-items/index.native.js +4 -0
- package/build-module/components/template-part-menu-items/index.native.js.map +1 -0
- package/build-module/components/theme-support-check/index.js +10 -0
- package/build-module/components/theme-support-check/index.js.map +1 -1
- package/build-module/components/time-to-read/index.js +6 -0
- package/build-module/components/time-to-read/index.js.map +1 -1
- package/build-module/components/word-count/index.js +6 -0
- package/build-module/components/word-count/index.js.map +1 -1
- package/build-module/dataviews/api.js +54 -0
- package/build-module/dataviews/api.js.map +1 -0
- package/build-module/dataviews/store/private-actions.js +21 -0
- package/build-module/dataviews/store/private-actions.js.map +1 -0
- package/build-module/dataviews/store/private-selectors.js +14 -0
- package/build-module/dataviews/store/private-selectors.js.map +1 -0
- package/build-module/dataviews/store/reducer.js +29 -0
- package/build-module/dataviews/store/reducer.js.map +1 -0
- package/build-module/index.js +1 -0
- package/build-module/index.js.map +1 -1
- package/build-module/private-apis.js +0 -6
- package/build-module/private-apis.js.map +1 -1
- package/build-module/private-apis.native.js +0 -2
- package/build-module/private-apis.native.js.map +1 -1
- package/build-module/store/private-actions.js +1 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +4 -0
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +3 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-style/style-rtl.css +10 -9
- package/build-style/style.css +10 -9
- package/build-types/dataviews/store/private-actions.d.ts +17 -0
- package/build-types/dataviews/store/private-actions.d.ts.map +1 -0
- package/build-types/dataviews/store/private-selectors.d.ts +10 -0
- package/build-types/dataviews/store/private-selectors.d.ts.map +1 -0
- package/build-types/dataviews/store/reducer.d.ts +11 -0
- package/build-types/dataviews/store/reducer.d.ts.map +1 -0
- package/package.json +35 -35
- package/src/components/create-template-part-modal/index.js +2 -0
- package/src/components/create-template-part-modal/style.scss +0 -6
- package/src/components/document-bar/index.js +11 -4
- package/src/components/editor/index.js +23 -28
- package/src/components/editor-interface/index.js +2 -0
- package/src/components/entities-saved-states/hooks/use-is-dirty.js +9 -0
- package/src/components/entities-saved-states/index.js +26 -0
- package/src/components/global-keyboard-shortcuts/index.js +1 -1
- package/src/components/header/index.js +2 -1
- package/src/components/index.js +16 -0
- package/src/components/keyboard-shortcut-help-modal/style.scss +0 -3
- package/src/components/post-actions/actions.js +376 -387
- package/src/components/post-actions/index.js +2 -0
- package/src/components/post-card-panel/style.scss +4 -0
- package/src/components/post-panel-row/style.scss +1 -1
- package/src/components/post-publish-button/index.js +3 -0
- package/src/components/post-publish-button/label.js +5 -0
- package/src/components/post-publish-panel/index.js +3 -0
- package/src/components/post-slug/check.js +8 -0
- package/src/components/post-slug/index.js +5 -0
- package/src/components/post-status/index.js +2 -0
- package/src/components/post-status/style.scss +5 -0
- package/src/components/post-sticky/check.js +8 -0
- package/src/components/post-sticky/index.js +14 -12
- package/src/components/post-sticky/style.scss +3 -2
- package/src/components/post-switch-to-draft-button/index.js +10 -1
- package/src/components/post-sync-status/index.js +5 -0
- package/src/components/post-taxonomies/check.js +8 -0
- package/src/components/post-taxonomies/flat-term-selector.js +13 -2
- package/src/components/post-taxonomies/index.js +8 -0
- package/src/components/post-taxonomies/panel.js +9 -0
- package/src/components/post-template/create-new-template-modal.js +2 -0
- package/src/components/post-title/index.js +2 -5
- package/src/components/post-title/post-title-raw.js +2 -5
- package/src/components/post-trash/check.js +8 -0
- package/src/components/post-trash/index.js +5 -0
- package/src/components/provider/index.js +17 -17
- package/src/components/sidebar/index.js +2 -0
- package/src/components/sidebar/post-summary.js +1 -3
- package/src/components/table-of-contents/index.js +10 -0
- package/src/components/template-part-content-panel/index.js +62 -0
- package/src/components/template-part-menu-items/convert-to-regular.js +32 -0
- package/src/components/template-part-menu-items/convert-to-template-part.js +75 -0
- package/src/components/template-part-menu-items/index.js +59 -0
- package/src/components/template-part-menu-items/index.native.js +3 -0
- package/src/components/theme-support-check/index.js +9 -0
- package/src/components/time-to-read/index.js +5 -0
- package/src/components/word-count/index.js +5 -0
- package/src/dataviews/api.js +55 -0
- package/src/dataviews/store/private-actions.ts +30 -0
- package/src/dataviews/store/private-selectors.ts +15 -0
- package/src/dataviews/store/reducer.ts +44 -0
- package/src/index.js +1 -0
- package/src/private-apis.js +0 -6
- package/src/private-apis.native.js +0 -2
- package/src/store/private-actions.js +1 -0
- package/src/store/private-selectors.js +5 -0
- package/src/store/reducer.js +2 -0
- package/tsconfig.json +36 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -85,7 +85,6 @@ const deletePostAction = {
|
|
|
85
85
|
RenderModal: ({
|
|
86
86
|
items,
|
|
87
87
|
closeModal,
|
|
88
|
-
onActionStart,
|
|
89
88
|
onActionPerformed
|
|
90
89
|
}) => {
|
|
91
90
|
const [isBusy, setIsBusy] = (0, _element.useState)(false);
|
|
@@ -112,9 +111,6 @@ const deletePostAction = {
|
|
|
112
111
|
variant: "primary",
|
|
113
112
|
onClick: async () => {
|
|
114
113
|
setIsBusy(true);
|
|
115
|
-
if (onActionStart) {
|
|
116
|
-
onActionStart(items);
|
|
117
|
-
}
|
|
118
114
|
await removeTemplates(items, {
|
|
119
115
|
allowUndo: false
|
|
120
116
|
});
|
|
@@ -131,15 +127,6 @@ const deletePostAction = {
|
|
|
131
127
|
});
|
|
132
128
|
}
|
|
133
129
|
};
|
|
134
|
-
function useCanUserEligibilityCheckPostType(capability, resource, action) {
|
|
135
|
-
const registry = (0, _data.useRegistry)();
|
|
136
|
-
return (0, _element.useMemo)(() => ({
|
|
137
|
-
...action,
|
|
138
|
-
isEligible(item) {
|
|
139
|
-
return action.isEligible(item) && registry.select(_coreData.store).canUser(capability, resource, item.id);
|
|
140
|
-
}
|
|
141
|
-
}), [action, registry, capability, resource]);
|
|
142
|
-
}
|
|
143
130
|
const trashPostAction = {
|
|
144
131
|
id: 'move-to-trash',
|
|
145
132
|
label: (0, _i18n.__)('Move to Trash'),
|
|
@@ -153,7 +140,6 @@ const trashPostAction = {
|
|
|
153
140
|
RenderModal: ({
|
|
154
141
|
items,
|
|
155
142
|
closeModal,
|
|
156
|
-
onActionStart,
|
|
157
143
|
onActionPerformed
|
|
158
144
|
}) => {
|
|
159
145
|
const [isBusy, setIsBusy] = (0, _element.useState)(false);
|
|
@@ -184,9 +170,6 @@ const trashPostAction = {
|
|
|
184
170
|
variant: "primary",
|
|
185
171
|
onClick: async () => {
|
|
186
172
|
setIsBusy(true);
|
|
187
|
-
if (onActionStart) {
|
|
188
|
-
onActionStart(items);
|
|
189
|
-
}
|
|
190
173
|
const promiseResult = await Promise.allSettled(items.map(item => deleteEntityRecord('postType', item.type, item.id, {}, {
|
|
191
174
|
throwOnError: true
|
|
192
175
|
})));
|
|
@@ -259,180 +242,191 @@ const trashPostAction = {
|
|
|
259
242
|
});
|
|
260
243
|
}
|
|
261
244
|
};
|
|
245
|
+
function useCanUserEligibilityCheckPostType(capability, resource, action) {
|
|
246
|
+
const registry = (0, _data.useRegistry)();
|
|
247
|
+
return (0, _element.useMemo)(() => ({
|
|
248
|
+
...action,
|
|
249
|
+
isEligible(item) {
|
|
250
|
+
return action.isEligible(item) && registry.select(_coreData.store).canUser(capability, resource, item.id);
|
|
251
|
+
}
|
|
252
|
+
}), [action, registry, capability, resource]);
|
|
253
|
+
}
|
|
262
254
|
function useTrashPostAction(resource) {
|
|
263
255
|
return useCanUserEligibilityCheckPostType('delete', resource, trashPostAction);
|
|
264
256
|
}
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
257
|
+
const permanentlyDeletePostAction = {
|
|
258
|
+
id: 'permanently-delete',
|
|
259
|
+
label: (0, _i18n.__)('Permanently delete'),
|
|
260
|
+
supportsBulk: true,
|
|
261
|
+
isEligible({
|
|
262
|
+
status
|
|
263
|
+
}) {
|
|
264
|
+
return status === 'trash';
|
|
265
|
+
},
|
|
266
|
+
async callback(posts, {
|
|
267
|
+
registry
|
|
268
|
+
}) {
|
|
269
|
+
const {
|
|
270
|
+
createSuccessNotice,
|
|
271
|
+
createErrorNotice
|
|
272
|
+
} = registry.dispatch(_notices.store);
|
|
273
|
+
const {
|
|
274
|
+
deleteEntityRecord
|
|
275
|
+
} = registry.dispatch(_coreData.store);
|
|
276
|
+
const promiseResult = await Promise.allSettled(posts.map(post => {
|
|
277
|
+
return deleteEntityRecord('postType', post.type, post.id, {
|
|
278
|
+
force: true
|
|
279
|
+
}, {
|
|
280
|
+
throwOnError: true
|
|
281
|
+
});
|
|
282
|
+
}));
|
|
283
|
+
// If all the promises were fulfilled with success.
|
|
284
|
+
if (promiseResult.every(({
|
|
278
285
|
status
|
|
279
|
-
}) {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
286
|
+
}) => status === 'fulfilled')) {
|
|
287
|
+
let successMessage;
|
|
288
|
+
if (promiseResult.length === 1) {
|
|
289
|
+
successMessage = (0, _i18n.sprintf)( /* translators: The posts's title. */
|
|
290
|
+
(0, _i18n.__)('"%s" permanently deleted.'), getItemTitle(posts[0]));
|
|
291
|
+
} else {
|
|
292
|
+
successMessage = (0, _i18n.__)('The posts were permanently deleted.');
|
|
293
|
+
}
|
|
294
|
+
createSuccessNotice(successMessage, {
|
|
295
|
+
type: 'snackbar',
|
|
296
|
+
id: 'permanently-delete-post-action'
|
|
297
|
+
});
|
|
298
|
+
} else {
|
|
299
|
+
// If there was at lease one failure.
|
|
300
|
+
let errorMessage;
|
|
301
|
+
// If we were trying to permanently delete a single post.
|
|
302
|
+
if (promiseResult.length === 1) {
|
|
303
|
+
if (promiseResult[0].reason?.message) {
|
|
304
|
+
errorMessage = promiseResult[0].reason.message;
|
|
298
305
|
} else {
|
|
299
|
-
|
|
300
|
-
}
|
|
301
|
-
createSuccessNotice(successMessage, {
|
|
302
|
-
type: 'snackbar',
|
|
303
|
-
id: 'permanently-delete-post-action'
|
|
304
|
-
});
|
|
305
|
-
if (onActionPerformed) {
|
|
306
|
-
onActionPerformed(posts);
|
|
306
|
+
errorMessage = (0, _i18n.__)('An error occurred while permanently deleting the post.');
|
|
307
307
|
}
|
|
308
|
+
// If we were trying to permanently delete multiple posts
|
|
308
309
|
} else {
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
errorMessage = (0, _i18n.__)('An error occurred while permanently deleting the post.');
|
|
310
|
+
const errorMessages = new Set();
|
|
311
|
+
const failedPromises = promiseResult.filter(({
|
|
312
|
+
status
|
|
313
|
+
}) => status === 'rejected');
|
|
314
|
+
for (const failedPromise of failedPromises) {
|
|
315
|
+
if (failedPromise.reason?.message) {
|
|
316
|
+
errorMessages.add(failedPromise.reason.message);
|
|
317
317
|
}
|
|
318
|
-
|
|
318
|
+
}
|
|
319
|
+
if (errorMessages.size === 0) {
|
|
320
|
+
errorMessage = (0, _i18n.__)('An error occurred while permanently deleting the posts.');
|
|
321
|
+
} else if (errorMessages.size === 1) {
|
|
322
|
+
errorMessage = (0, _i18n.sprintf)( /* translators: %s: an error message */
|
|
323
|
+
(0, _i18n.__)('An error occurred while permanently deleting the posts: %s'), [...errorMessages][0]);
|
|
319
324
|
} else {
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
status
|
|
323
|
-
}) => status === 'rejected');
|
|
324
|
-
for (const failedPromise of failedPromises) {
|
|
325
|
-
if (failedPromise.reason?.message) {
|
|
326
|
-
errorMessages.add(failedPromise.reason.message);
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
if (errorMessages.size === 0) {
|
|
330
|
-
errorMessage = (0, _i18n.__)('An error occurred while permanently deleting the posts.');
|
|
331
|
-
} else if (errorMessages.size === 1) {
|
|
332
|
-
errorMessage = (0, _i18n.sprintf)( /* translators: %s: an error message */
|
|
333
|
-
(0, _i18n.__)('An error occurred while permanently deleting the posts: %s'), [...errorMessages][0]);
|
|
334
|
-
} else {
|
|
335
|
-
errorMessage = (0, _i18n.sprintf)( /* translators: %s: a list of comma separated error messages */
|
|
336
|
-
(0, _i18n.__)('Some errors occurred while permanently deleting the posts: %s'), [...errorMessages].join(','));
|
|
337
|
-
}
|
|
325
|
+
errorMessage = (0, _i18n.sprintf)( /* translators: %s: a list of comma separated error messages */
|
|
326
|
+
(0, _i18n.__)('Some errors occurred while permanently deleting the posts: %s'), [...errorMessages].join(','));
|
|
338
327
|
}
|
|
339
|
-
createErrorNotice(errorMessage, {
|
|
340
|
-
type: 'snackbar'
|
|
341
|
-
});
|
|
342
328
|
}
|
|
329
|
+
createErrorNotice(errorMessage, {
|
|
330
|
+
type: 'snackbar'
|
|
331
|
+
});
|
|
343
332
|
}
|
|
344
|
-
}
|
|
333
|
+
}
|
|
334
|
+
};
|
|
335
|
+
function usePermanentlyDeletePostAction(resource) {
|
|
345
336
|
return useCanUserEligibilityCheckPostType('delete', resource, permanentlyDeletePostAction);
|
|
346
337
|
}
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
338
|
+
const restorePostAction = {
|
|
339
|
+
id: 'restore',
|
|
340
|
+
label: (0, _i18n.__)('Restore'),
|
|
341
|
+
isPrimary: true,
|
|
342
|
+
icon: _icons.backup,
|
|
343
|
+
supportsBulk: true,
|
|
344
|
+
isEligible({
|
|
345
|
+
status
|
|
346
|
+
}) {
|
|
347
|
+
return status === 'trash';
|
|
348
|
+
},
|
|
349
|
+
async callback(posts, {
|
|
350
|
+
registry,
|
|
351
|
+
onActionPerformed
|
|
352
|
+
}) {
|
|
353
|
+
const {
|
|
354
|
+
createSuccessNotice,
|
|
355
|
+
createErrorNotice
|
|
356
|
+
} = registry.dispatch(_notices.store);
|
|
357
|
+
const {
|
|
358
|
+
editEntityRecord,
|
|
359
|
+
saveEditedEntityRecord
|
|
360
|
+
} = registry.dispatch(_coreData.store);
|
|
361
|
+
await Promise.allSettled(posts.map(post => {
|
|
362
|
+
return editEntityRecord('postType', post.type, post.id, {
|
|
363
|
+
status: 'draft'
|
|
364
|
+
});
|
|
365
|
+
}));
|
|
366
|
+
const promiseResult = await Promise.allSettled(posts.map(post => {
|
|
367
|
+
return saveEditedEntityRecord('postType', post.type, post.id, {
|
|
368
|
+
throwOnError: true
|
|
369
|
+
});
|
|
370
|
+
}));
|
|
371
|
+
if (promiseResult.every(({
|
|
363
372
|
status
|
|
364
|
-
}) {
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
373
|
+
}) => status === 'fulfilled')) {
|
|
374
|
+
let successMessage;
|
|
375
|
+
if (posts.length === 1) {
|
|
376
|
+
successMessage = (0, _i18n.sprintf)( /* translators: The number of posts. */
|
|
377
|
+
(0, _i18n.__)('"%s" has been restored.'), getItemTitle(posts[0]));
|
|
378
|
+
} else if (posts[0].type === 'page') {
|
|
379
|
+
successMessage = (0, _i18n.sprintf)( /* translators: The number of posts. */
|
|
380
|
+
(0, _i18n.__)('%d pages have been restored.'), posts.length);
|
|
381
|
+
} else {
|
|
382
|
+
successMessage = (0, _i18n.sprintf)( /* translators: The number of posts. */
|
|
383
|
+
(0, _i18n.__)('%d posts have been restored.'), posts.length);
|
|
384
|
+
}
|
|
385
|
+
createSuccessNotice(successMessage, {
|
|
386
|
+
type: 'snackbar',
|
|
387
|
+
id: 'restore-post-action'
|
|
388
|
+
});
|
|
389
|
+
if (onActionPerformed) {
|
|
390
|
+
onActionPerformed(posts);
|
|
391
|
+
}
|
|
392
|
+
} else {
|
|
393
|
+
// If there was at lease one failure.
|
|
394
|
+
let errorMessage;
|
|
395
|
+
// If we were trying to move a single post to the trash.
|
|
396
|
+
if (promiseResult.length === 1) {
|
|
397
|
+
if (promiseResult[0].reason?.message) {
|
|
398
|
+
errorMessage = promiseResult[0].reason.message;
|
|
388
399
|
} else {
|
|
389
|
-
|
|
390
|
-
(0, _i18n.__)('%d posts have been restored.'), posts.length);
|
|
391
|
-
}
|
|
392
|
-
createSuccessNotice(successMessage, {
|
|
393
|
-
type: 'snackbar',
|
|
394
|
-
id: 'restore-post-action'
|
|
395
|
-
});
|
|
396
|
-
if (onActionPerformed) {
|
|
397
|
-
onActionPerformed(posts);
|
|
400
|
+
errorMessage = (0, _i18n.__)('An error occurred while restoring the post.');
|
|
398
401
|
}
|
|
402
|
+
// If we were trying to move multiple posts to the trash
|
|
399
403
|
} else {
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
errorMessage = (0, _i18n.__)('An error occurred while restoring the post.');
|
|
404
|
+
const errorMessages = new Set();
|
|
405
|
+
const failedPromises = promiseResult.filter(({
|
|
406
|
+
status
|
|
407
|
+
}) => status === 'rejected');
|
|
408
|
+
for (const failedPromise of failedPromises) {
|
|
409
|
+
if (failedPromise.reason?.message) {
|
|
410
|
+
errorMessages.add(failedPromise.reason.message);
|
|
408
411
|
}
|
|
409
|
-
|
|
412
|
+
}
|
|
413
|
+
if (errorMessages.size === 0) {
|
|
414
|
+
errorMessage = (0, _i18n.__)('An error occurred while restoring the posts.');
|
|
415
|
+
} else if (errorMessages.size === 1) {
|
|
416
|
+
errorMessage = (0, _i18n.sprintf)( /* translators: %s: an error message */
|
|
417
|
+
(0, _i18n.__)('An error occurred while restoring the posts: %s'), [...errorMessages][0]);
|
|
410
418
|
} else {
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
status
|
|
414
|
-
}) => status === 'rejected');
|
|
415
|
-
for (const failedPromise of failedPromises) {
|
|
416
|
-
if (failedPromise.reason?.message) {
|
|
417
|
-
errorMessages.add(failedPromise.reason.message);
|
|
418
|
-
}
|
|
419
|
-
}
|
|
420
|
-
if (errorMessages.size === 0) {
|
|
421
|
-
errorMessage = (0, _i18n.__)('An error occurred while restoring the posts.');
|
|
422
|
-
} else if (errorMessages.size === 1) {
|
|
423
|
-
errorMessage = (0, _i18n.sprintf)( /* translators: %s: an error message */
|
|
424
|
-
(0, _i18n.__)('An error occurred while restoring the posts: %s'), [...errorMessages][0]);
|
|
425
|
-
} else {
|
|
426
|
-
errorMessage = (0, _i18n.sprintf)( /* translators: %s: a list of comma separated error messages */
|
|
427
|
-
(0, _i18n.__)('Some errors occurred while restoring the posts: %s'), [...errorMessages].join(','));
|
|
428
|
-
}
|
|
419
|
+
errorMessage = (0, _i18n.sprintf)( /* translators: %s: a list of comma separated error messages */
|
|
420
|
+
(0, _i18n.__)('Some errors occurred while restoring the posts: %s'), [...errorMessages].join(','));
|
|
429
421
|
}
|
|
430
|
-
createErrorNotice(errorMessage, {
|
|
431
|
-
type: 'snackbar'
|
|
432
|
-
});
|
|
433
422
|
}
|
|
423
|
+
createErrorNotice(errorMessage, {
|
|
424
|
+
type: 'snackbar'
|
|
425
|
+
});
|
|
434
426
|
}
|
|
435
|
-
}
|
|
427
|
+
}
|
|
428
|
+
};
|
|
429
|
+
function useRestorePostAction(resource) {
|
|
436
430
|
return useCanUserEligibilityCheckPostType('update', resource, restorePostAction);
|
|
437
431
|
}
|
|
438
432
|
const viewPostAction = {
|
|
@@ -443,7 +437,9 @@ const viewPostAction = {
|
|
|
443
437
|
isEligible(post) {
|
|
444
438
|
return post.status !== 'trash';
|
|
445
439
|
},
|
|
446
|
-
callback(posts,
|
|
440
|
+
callback(posts, {
|
|
441
|
+
onActionPerformed
|
|
442
|
+
}) {
|
|
447
443
|
const post = posts[0];
|
|
448
444
|
window.open(post.link, '_blank');
|
|
449
445
|
if (onActionPerformed) {
|
|
@@ -469,7 +465,9 @@ const postRevisionsAction = {
|
|
|
469
465
|
const revisionsCount = (_post$_links$version = post?._links?.['version-history']?.[0]?.count) !== null && _post$_links$version !== void 0 ? _post$_links$version : 0;
|
|
470
466
|
return lastRevisionId && revisionsCount > 1;
|
|
471
467
|
},
|
|
472
|
-
callback(posts,
|
|
468
|
+
callback(posts, {
|
|
469
|
+
onActionPerformed
|
|
470
|
+
}) {
|
|
473
471
|
const post = posts[0];
|
|
474
472
|
const href = (0, _url.addQueryArgs)('revision.php', {
|
|
475
473
|
revision: post?._links?.['predecessor-version']?.[0]?.id
|
|
@@ -579,42 +577,52 @@ const renamePostAction = {
|
|
|
579
577
|
function useRenamePostAction(resource) {
|
|
580
578
|
return useCanUserEligibilityCheckPostType('update', resource, renamePostAction);
|
|
581
579
|
}
|
|
582
|
-
const
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
status
|
|
587
|
-
}) {
|
|
588
|
-
return status !== 'trash';
|
|
589
|
-
},
|
|
590
|
-
RenderModal: ({
|
|
591
|
-
items,
|
|
592
|
-
closeModal,
|
|
593
|
-
onActionPerformed
|
|
594
|
-
}) => {
|
|
595
|
-
const [item] = items;
|
|
596
|
-
const [isCreatingPage, setIsCreatingPage] = (0, _element.useState)(false);
|
|
597
|
-
const [title, setTitle] = (0, _element.useState)((0, _i18n.sprintf)( /* translators: %s: Existing item title */
|
|
598
|
-
(0, _i18n.__)('%s (Copy)'), getItemTitle(item)));
|
|
599
|
-
const {
|
|
600
|
-
saveEntityRecord
|
|
601
|
-
} = (0, _data.useDispatch)(_coreData.store);
|
|
580
|
+
const useDuplicatePostAction = postType => {
|
|
581
|
+
const {
|
|
582
|
+
userCanCreatePost
|
|
583
|
+
} = (0, _data.useSelect)(select => {
|
|
602
584
|
const {
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
} = (
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
585
|
+
getPostType,
|
|
586
|
+
canUser
|
|
587
|
+
} = select(_coreData.store);
|
|
588
|
+
const resource = getPostType(postType)?.rest_base || '';
|
|
589
|
+
return {
|
|
590
|
+
userCanCreatePost: canUser('create', resource)
|
|
591
|
+
};
|
|
592
|
+
}, [postType]);
|
|
593
|
+
return (0, _element.useMemo)(() => userCanCreatePost && {
|
|
594
|
+
id: 'duplicate-post',
|
|
595
|
+
label: (0, _i18n._x)('Duplicate', 'action label'),
|
|
596
|
+
isEligible({
|
|
597
|
+
status
|
|
598
|
+
}) {
|
|
599
|
+
return status !== 'trash';
|
|
600
|
+
},
|
|
601
|
+
RenderModal: ({
|
|
602
|
+
items,
|
|
603
|
+
closeModal,
|
|
604
|
+
onActionPerformed
|
|
605
|
+
}) => {
|
|
606
|
+
const [item] = items;
|
|
607
|
+
const [isCreatingPage, setIsCreatingPage] = (0, _element.useState)(false);
|
|
608
|
+
const [title, setTitle] = (0, _element.useState)((0, _i18n.sprintf)( /* translators: %s: Existing item title */
|
|
609
|
+
(0, _i18n.__)('%s (Copy)'), getItemTitle(item)));
|
|
610
|
+
const {
|
|
611
|
+
saveEntityRecord
|
|
612
|
+
} = (0, _data.useDispatch)(_coreData.store);
|
|
613
|
+
const {
|
|
614
|
+
createSuccessNotice,
|
|
615
|
+
createErrorNotice
|
|
616
|
+
} = (0, _data.useDispatch)(_notices.store);
|
|
617
|
+
async function createPage(event) {
|
|
618
|
+
event.preventDefault();
|
|
619
|
+
if (isCreatingPage) {
|
|
620
|
+
return;
|
|
621
|
+
}
|
|
622
|
+
const newItemOject = {
|
|
614
623
|
status: 'draft',
|
|
615
624
|
title,
|
|
616
625
|
slug: title || (0, _i18n.__)('No title'),
|
|
617
|
-
author: item.author,
|
|
618
626
|
comment_status: item.comment_status,
|
|
619
627
|
content: typeof item.content === 'string' ? item.content : item.content.raw,
|
|
620
628
|
excerpt: item.excerpt.raw,
|
|
@@ -625,58 +633,69 @@ const duplicatePostAction = {
|
|
|
625
633
|
format: item.format,
|
|
626
634
|
featured_media: item.featured_media,
|
|
627
635
|
menu_order: item.menu_order,
|
|
628
|
-
ping_status: item.ping_status
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
});
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
type: 'snackbar'
|
|
636
|
+
ping_status: item.ping_status
|
|
637
|
+
};
|
|
638
|
+
const assignablePropertiesPrefix = 'wp:action-assign-';
|
|
639
|
+
// Get all the properties that the current user is able to assign normally author, categories, tags,
|
|
640
|
+
// and custom taxonomies.
|
|
641
|
+
const assignableProperties = Object.keys(item?._links || {}).filter(property => property.startsWith(assignablePropertiesPrefix)).map(property => property.slice(assignablePropertiesPrefix.length));
|
|
642
|
+
assignableProperties.forEach(property => {
|
|
643
|
+
if (item[property]) {
|
|
644
|
+
newItemOject[property] = item[property];
|
|
645
|
+
}
|
|
639
646
|
});
|
|
640
|
-
|
|
641
|
-
|
|
647
|
+
setIsCreatingPage(true);
|
|
648
|
+
try {
|
|
649
|
+
const newItem = await saveEntityRecord('postType', item.type, newItemOject, {
|
|
650
|
+
throwOnError: true
|
|
651
|
+
});
|
|
652
|
+
createSuccessNotice((0, _i18n.sprintf)(
|
|
653
|
+
// translators: %s: Title of the created template e.g: "Category".
|
|
654
|
+
(0, _i18n.__)('"%s" successfully created.'), (0, _htmlEntities.decodeEntities)(newItem.title?.rendered || title)), {
|
|
655
|
+
id: 'duplicate-post-action',
|
|
656
|
+
type: 'snackbar'
|
|
657
|
+
});
|
|
658
|
+
if (onActionPerformed) {
|
|
659
|
+
onActionPerformed([newItem]);
|
|
660
|
+
}
|
|
661
|
+
} catch (error) {
|
|
662
|
+
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0, _i18n.__)('An error occurred while duplicating the page.');
|
|
663
|
+
createErrorNotice(errorMessage, {
|
|
664
|
+
type: 'snackbar'
|
|
665
|
+
});
|
|
666
|
+
} finally {
|
|
667
|
+
setIsCreatingPage(false);
|
|
668
|
+
closeModal();
|
|
642
669
|
}
|
|
643
|
-
} catch (error) {
|
|
644
|
-
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0, _i18n.__)('An error occurred while duplicating the page.');
|
|
645
|
-
createErrorNotice(errorMessage, {
|
|
646
|
-
type: 'snackbar'
|
|
647
|
-
});
|
|
648
|
-
} finally {
|
|
649
|
-
setIsCreatingPage(false);
|
|
650
|
-
closeModal();
|
|
651
670
|
}
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
671
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("form", {
|
|
672
|
+
onSubmit: createPage,
|
|
673
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
|
|
674
|
+
spacing: 3,
|
|
675
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
|
|
676
|
+
label: (0, _i18n.__)('Title'),
|
|
677
|
+
onChange: setTitle,
|
|
678
|
+
placeholder: (0, _i18n.__)('No title'),
|
|
679
|
+
value: title
|
|
680
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
|
|
681
|
+
spacing: 2,
|
|
682
|
+
justify: "end",
|
|
683
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
684
|
+
variant: "tertiary",
|
|
685
|
+
onClick: closeModal,
|
|
686
|
+
children: (0, _i18n.__)('Cancel')
|
|
687
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
688
|
+
variant: "primary",
|
|
689
|
+
type: "submit",
|
|
690
|
+
isBusy: isCreatingPage,
|
|
691
|
+
"aria-disabled": isCreatingPage,
|
|
692
|
+
children: (0, _i18n._x)('Duplicate', 'action label')
|
|
693
|
+
})]
|
|
675
694
|
})]
|
|
676
|
-
})
|
|
677
|
-
})
|
|
678
|
-
}
|
|
679
|
-
}
|
|
695
|
+
})
|
|
696
|
+
});
|
|
697
|
+
}
|
|
698
|
+
}, [userCanCreatePost]);
|
|
680
699
|
};
|
|
681
700
|
const isTemplatePartRevertable = item => {
|
|
682
701
|
if (!item) {
|
|
@@ -697,7 +716,6 @@ const resetTemplateAction = {
|
|
|
697
716
|
RenderModal: ({
|
|
698
717
|
items,
|
|
699
718
|
closeModal,
|
|
700
|
-
onActionStart,
|
|
701
719
|
onActionPerformed
|
|
702
720
|
}) => {
|
|
703
721
|
const [isBusy, setIsBusy] = (0, _element.useState)(false);
|
|
@@ -761,9 +779,6 @@ const resetTemplateAction = {
|
|
|
761
779
|
variant: "primary",
|
|
762
780
|
onClick: async () => {
|
|
763
781
|
setIsBusy(true);
|
|
764
|
-
if (onActionStart) {
|
|
765
|
-
onActionStart(items);
|
|
766
|
-
}
|
|
767
782
|
await onConfirm(items);
|
|
768
783
|
onActionPerformed?.(items);
|
|
769
784
|
setIsBusy(false);
|
|
@@ -839,25 +854,31 @@ function usePostActions({
|
|
|
839
854
|
context
|
|
840
855
|
}) {
|
|
841
856
|
const {
|
|
857
|
+
defaultActions,
|
|
842
858
|
postTypeObject,
|
|
859
|
+
userCanCreatePostType,
|
|
843
860
|
resource,
|
|
844
|
-
cachedCanUserResolvers
|
|
845
|
-
userCanCreatePostType
|
|
861
|
+
cachedCanUserResolvers
|
|
846
862
|
} = (0, _data.useSelect)(select => {
|
|
847
863
|
const {
|
|
848
864
|
getPostType,
|
|
849
|
-
|
|
850
|
-
|
|
865
|
+
canUser,
|
|
866
|
+
getCachedResolvers
|
|
851
867
|
} = select(_coreData.store);
|
|
868
|
+
const {
|
|
869
|
+
getEntityActions
|
|
870
|
+
} = (0, _lockUnlock.unlock)(select(_store.store));
|
|
852
871
|
const _postTypeObject = getPostType(postType);
|
|
853
872
|
const _resource = _postTypeObject?.rest_base || '';
|
|
854
873
|
return {
|
|
855
874
|
postTypeObject: _postTypeObject,
|
|
875
|
+
defaultActions: getEntityActions('postType', postType),
|
|
876
|
+
userCanCreatePostType: canUser('create', _resource),
|
|
856
877
|
resource: _resource,
|
|
857
|
-
cachedCanUserResolvers: getCachedResolvers()?.canUser
|
|
858
|
-
userCanCreatePostType: canUser('create', _resource)
|
|
878
|
+
cachedCanUserResolvers: getCachedResolvers()?.canUser
|
|
859
879
|
};
|
|
860
880
|
}, [postType]);
|
|
881
|
+
const duplicatePostAction = useDuplicatePostAction(postType);
|
|
861
882
|
const trashPostActionForPostType = useTrashPostAction(resource);
|
|
862
883
|
const permanentlyDeletePostActionForPostType = usePermanentlyDeletePostAction(resource);
|
|
863
884
|
const renamePostActionForPostType = useRenamePostAction(resource);
|
|
@@ -871,7 +892,7 @@ function usePostActions({
|
|
|
871
892
|
if (!isLoaded) {
|
|
872
893
|
return [];
|
|
873
894
|
}
|
|
874
|
-
let actions = [postTypeObject?.viewable && viewPostAction, supportsRevisions && postRevisionsAction, globalThis.IS_GUTENBERG_PLUGIN ? !isTemplateOrTemplatePart && !isPattern && duplicatePostAction : false, isTemplateOrTemplatePart && userCanCreatePostType && duplicateTemplatePartAction, isPattern && userCanCreatePostType && duplicatePatternAction, supportsTitle && renamePostActionForPostType, isPattern && _exportPatternAction.exportPatternAsJSONAction, isTemplateOrTemplatePart ? resetTemplateAction : restorePostActionForPostType, isTemplateOrTemplatePart || isPattern ? deletePostAction : trashPostActionForPostType, !isTemplateOrTemplatePart && permanentlyDeletePostActionForPostType].filter(Boolean);
|
|
895
|
+
let actions = [postTypeObject?.viewable && viewPostAction, supportsRevisions && postRevisionsAction, globalThis.IS_GUTENBERG_PLUGIN ? !isTemplateOrTemplatePart && !isPattern && duplicatePostAction : false, isTemplateOrTemplatePart && userCanCreatePostType && duplicateTemplatePartAction, isPattern && userCanCreatePostType && duplicatePatternAction, supportsTitle && renamePostActionForPostType, isPattern && _exportPatternAction.exportPatternAsJSONAction, isTemplateOrTemplatePart ? resetTemplateAction : restorePostActionForPostType, isTemplateOrTemplatePart || isPattern ? deletePostAction : trashPostActionForPostType, !isTemplateOrTemplatePart && permanentlyDeletePostActionForPostType, ...defaultActions].filter(Boolean);
|
|
875
896
|
// Filter actions based on provided context. If not provided
|
|
876
897
|
// all actions are returned. We'll have a single entry for getting the actions
|
|
877
898
|
// and the consumer should provide the context to filter the actions, if needed.
|
|
@@ -890,7 +911,9 @@ function usePostActions({
|
|
|
890
911
|
const existingCallback = actions[i].callback;
|
|
891
912
|
actions[i] = {
|
|
892
913
|
...actions[i],
|
|
893
|
-
callback: (items,
|
|
914
|
+
callback: (items, {
|
|
915
|
+
_onActionPerformed
|
|
916
|
+
}) => {
|
|
894
917
|
existingCallback(items, _items => {
|
|
895
918
|
if (_onActionPerformed) {
|
|
896
919
|
_onActionPerformed(_items);
|
|
@@ -923,6 +946,6 @@ function usePostActions({
|
|
|
923
946
|
// We are making this use memo depend on cachedCanUserResolvers as a way to make the component using this hook re-render
|
|
924
947
|
// when user capabilities are resolved. This makes sure the isEligible functions of actions dependent on capabilities are re-evaluated.
|
|
925
948
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
926
|
-
}, [isTemplateOrTemplatePart, isPattern, postTypeObject?.viewable,
|
|
949
|
+
}, [defaultActions, userCanCreatePostType, isTemplateOrTemplatePart, isPattern, postTypeObject?.viewable, duplicatePostAction, trashPostActionForPostType, restorePostActionForPostType, renamePostActionForPostType, permanentlyDeletePostActionForPostType, onActionPerformed, isLoaded, supportsRevisions, supportsTitle, context, cachedCanUserResolvers]);
|
|
927
950
|
}
|
|
928
951
|
//# sourceMappingURL=actions.js.map
|