@wordpress/editor 14.0.4 → 14.0.6

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.
Files changed (49) hide show
  1. package/build/bindings/post-meta.js +4 -0
  2. package/build/bindings/post-meta.js.map +1 -1
  3. package/build/components/page-attributes/parent.js +2 -1
  4. package/build/components/page-attributes/parent.js.map +1 -1
  5. package/build/components/post-actions/actions.js +13 -35
  6. package/build/components/post-actions/actions.js.map +1 -1
  7. package/build/components/post-actions/export-pattern-action.js +2 -2
  8. package/build/components/post-actions/export-pattern-action.js.map +1 -1
  9. package/build/components/post-publish-button/index.js +4 -11
  10. package/build/components/post-publish-button/index.js.map +1 -1
  11. package/build/components/post-saved-state/index.js +11 -1
  12. package/build/components/post-saved-state/index.js.map +1 -1
  13. package/build/components/post-status/index.js +2 -1
  14. package/build/components/post-status/index.js.map +1 -1
  15. package/build/components/save-publish-panels/index.js +1 -2
  16. package/build/components/save-publish-panels/index.js.map +1 -1
  17. package/build/store/utils/is-template-revertable.js +6 -8
  18. package/build/store/utils/is-template-revertable.js.map +1 -1
  19. package/build-module/bindings/post-meta.js +4 -0
  20. package/build-module/bindings/post-meta.js.map +1 -1
  21. package/build-module/components/page-attributes/parent.js +2 -1
  22. package/build-module/components/page-attributes/parent.js.map +1 -1
  23. package/build-module/components/post-actions/actions.js +13 -35
  24. package/build-module/components/post-actions/actions.js.map +1 -1
  25. package/build-module/components/post-actions/export-pattern-action.js +2 -2
  26. package/build-module/components/post-actions/export-pattern-action.js.map +1 -1
  27. package/build-module/components/post-publish-button/index.js +4 -11
  28. package/build-module/components/post-publish-button/index.js.map +1 -1
  29. package/build-module/components/post-saved-state/index.js +11 -1
  30. package/build-module/components/post-saved-state/index.js.map +1 -1
  31. package/build-module/components/post-status/index.js +1 -1
  32. package/build-module/components/post-status/index.js.map +1 -1
  33. package/build-module/components/save-publish-panels/index.js +1 -2
  34. package/build-module/components/save-publish-panels/index.js.map +1 -1
  35. package/build-module/store/utils/is-template-revertable.js +6 -8
  36. package/build-module/store/utils/is-template-revertable.js.map +1 -1
  37. package/build-style/style-rtl.css +1 -0
  38. package/build-style/style.css +1 -0
  39. package/package.json +6 -6
  40. package/src/bindings/post-meta.js +5 -0
  41. package/src/components/page-attributes/parent.js +6 -3
  42. package/src/components/post-actions/actions.js +28 -57
  43. package/src/components/post-actions/export-pattern-action.js +4 -2
  44. package/src/components/post-panel-row/style.scss +1 -0
  45. package/src/components/post-publish-button/index.js +4 -17
  46. package/src/components/post-saved-state/index.js +11 -1
  47. package/src/components/post-status/index.js +1 -1
  48. package/src/components/save-publish-panels/index.js +1 -4
  49. package/src/store/utils/is-template-revertable.js +8 -8
@@ -46,11 +46,6 @@ function isTemplateRemovable(template) {
46
46
  // two props whether is custom or has a theme file.
47
47
  return [template.source, template.templatePart?.source].includes(TEMPLATE_ORIGINS.custom) && !template.has_theme_file && !template.templatePart?.has_theme_file;
48
48
  }
49
- const canDeleteOrReset = item => {
50
- const isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;
51
- const isUserPattern = item.type === PATTERN_TYPES.user;
52
- return isUserPattern || isTemplatePart && item.isCustom;
53
- };
54
49
  function getItemTitle(item) {
55
50
  if (typeof item.title === 'string') {
56
51
  return decodeEntities(item.title);
@@ -191,12 +186,9 @@ const trashPostAction = {
191
186
  if (promiseResult.length === 1) {
192
187
  successMessage = sprintf( /* translators: The item's title. */
193
188
  __('"%s" moved to trash.'), getItemTitle(items[0]));
194
- } else if (items[0].type === 'page') {
189
+ } else {
195
190
  successMessage = sprintf( /* translators: The number of items. */
196
191
  _n('%s item moved to trash.', '%s items moved to trash.', items.length), items.length);
197
- } else {
198
- successMessage = sprintf( /* translators: The number of posts. */
199
- __('%s items move to trash.'), items.length);
200
192
  }
201
193
  createSuccessNotice(successMessage, {
202
194
  type: 'snackbar',
@@ -671,18 +663,11 @@ const duplicatePostAction = {
671
663
  });
672
664
  }
673
665
  };
674
- const isTemplatePartRevertable = item => {
675
- if (!item) {
676
- return false;
677
- }
678
- const hasThemeFile = item.templatePart?.has_theme_file;
679
- return canDeleteOrReset(item) && hasThemeFile;
680
- };
681
666
  const resetTemplateAction = {
682
667
  id: 'reset-template',
683
668
  label: __('Reset'),
684
669
  isEligible: item => {
685
- return item.type === TEMPLATE_PART_POST_TYPE ? isTemplatePartRevertable(item) : isTemplateRevertable(item);
670
+ return isTemplateRevertable(item);
686
671
  },
687
672
  icon: backup,
688
673
  supportsBulk: true,
@@ -695,8 +680,7 @@ const resetTemplateAction = {
695
680
  }) => {
696
681
  const [isBusy, setIsBusy] = useState(false);
697
682
  const {
698
- revertTemplate,
699
- removeTemplates
683
+ revertTemplate
700
684
  } = unlock(useDispatch(editorStore));
701
685
  const {
702
686
  saveEditedEntityRecord
@@ -707,24 +691,18 @@ const resetTemplateAction = {
707
691
  } = useDispatch(noticesStore);
708
692
  const onConfirm = async () => {
709
693
  try {
710
- if (items[0].type === TEMPLATE_PART_POST_TYPE) {
711
- await removeTemplates(items);
712
- } else {
713
- for (const template of items) {
714
- if (template.type === TEMPLATE_POST_TYPE) {
715
- await revertTemplate(template, {
716
- allowUndo: false
717
- });
718
- await saveEditedEntityRecord('postType', template.type, template.id);
719
- }
720
- }
721
- createSuccessNotice(items.length > 1 ? sprintf( /* translators: The number of items. */
722
- __('%s items reset.'), items.length) : sprintf( /* translators: The template/part's name. */
723
- __('"%s" reset.'), decodeEntities(getItemTitle(items[0]))), {
724
- type: 'snackbar',
725
- id: 'revert-template-action'
694
+ for (const template of items) {
695
+ await revertTemplate(template, {
696
+ allowUndo: false
726
697
  });
698
+ await saveEditedEntityRecord('postType', template.type, template.id);
727
699
  }
700
+ createSuccessNotice(items.length > 1 ? sprintf( /* translators: The number of items. */
701
+ __('%s items reset.'), items.length) : sprintf( /* translators: The template/part's name. */
702
+ __('"%s" reset.'), decodeEntities(getItemTitle(items[0]))), {
703
+ type: 'snackbar',
704
+ id: 'revert-template-action'
705
+ });
728
706
  } catch (error) {
729
707
  let fallbackErrorMessage;
730
708
  if (items[0].type === TEMPLATE_POST_TYPE) {
@@ -1 +1 @@
1
- {"version":3,"names":["external","trash","backup","addQueryArgs","useDispatch","useSelect","useRegistry","decodeEntities","store","coreStore","__","_n","sprintf","_x","noticesStore","useMemo","useState","privateApis","patternsPrivateApis","Button","TextControl","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","TEMPLATE_ORIGINS","TEMPLATE_PART_POST_TYPE","TEMPLATE_POST_TYPE","PATTERN_POST_TYPE","editorStore","unlock","isTemplateRevertable","exportPatternAsJSONAction","CreateTemplatePartModalContents","jsx","_jsx","jsxs","_jsxs","PATTERN_TYPES","CreatePatternModalContents","useDuplicatePatternProps","isTemplateRemovable","template","source","templatePart","includes","custom","has_theme_file","canDeleteOrReset","item","isTemplatePart","type","isUserPattern","user","isCustom","getItemTitle","title","rendered","deletePostAction","id","label","isPrimary","icon","isEligible","post","supportsBulk","hideModalHeader","RenderModal","items","closeModal","onActionStart","onActionPerformed","isBusy","setIsBusy","removeTemplates","spacing","children","length","justify","variant","onClick","disabled","__experimentalIsFocusable","allowUndo","useCanUserEligibilityCheckPostType","capability","resource","action","registry","select","canUser","trashPostAction","status","createSuccessNotice","createErrorNotice","deleteEntityRecord","promiseResult","Promise","allSettled","map","throwOnError","every","successMessage","errorMessage","reason","message","errorMessages","Set","failedPromises","filter","failedPromise","add","size","join","useTrashPostAction","usePermanentlyDeletePostAction","permanentlyDeletePostAction","callback","posts","force","useRestorePostAction","editEntityRecord","saveEditedEntityRecord","restorePostAction","viewPostAction","window","open","link","postRevisionsAction","context","_items$0$_links$versi","revisionsCount","_links","count","_post$_links$predeces","_post$_links$version","lastRevisionId","href","revision","document","location","renamePostAction","Object","values","is_custom","isCustomPattern","hasThemeFile","originalTitle","setTitle","onRename","event","preventDefault","error","code","onSubmit","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","required","useRenamePostAction","duplicatePostAction","isCreatingPage","setIsCreatingPage","saveEntityRecord","createPage","newItem","slug","author","comment_status","content","raw","excerpt","meta","parent","password","format","featured_media","menu_order","ping_status","categories","tags","placeholder","isTemplatePartRevertable","resetTemplateAction","revertTemplate","onConfirm","fallbackErrorMessage","duplicatePatternAction","modalHeader","isThemePattern","theme","duplicatedProps","pattern","patternPost","onSuccess","onClose","confirmLabel","duplicateTemplatePartAction","onTemplatePartSuccess","blocks","defaultArea","area","defaultTitle","onCreate","onError","usePostActions","postType","postTypeObject","cachedCanUserResolvers","userCanCreatePostType","getPostType","getCachedResolvers","_postTypeObject","_resource","rest_base","trashPostActionForPostType","permanentlyDeletePostActionForPostType","renamePostActionForPostType","restorePostActionForPostType","isTemplateOrTemplatePart","isPattern","isLoaded","supportsRevisions","supports","revisions","supportsTitle","actions","viewable","globalThis","IS_GUTENBERG_PLUGIN","Boolean","i","existingCallback","_onActionPerformed","_items","ExistingRenderModal","props"],"sources":["@wordpress/editor/src/components/post-actions/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { external, trash, backup } from '@wordpress/icons';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useMemo, useState } from '@wordpress/element';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_ORIGINS,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n\tPATTERN_POST_TYPE,\n} from '../../store/constants';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport isTemplateRevertable from '../../store/utils/is-template-revertable';\nimport { exportPatternAsJSONAction } from './export-pattern-action';\nimport { CreateTemplatePartModalContents } from '../create-template-part-modal';\n\n// Patterns.\nconst { PATTERN_TYPES, CreatePatternModalContents, useDuplicatePatternProps } =\n\tunlock( patternsPrivateApis );\n\n/**\n * Check if a template is removable.\n *\n * @param {Object} template The template entity to check.\n * @return {boolean} Whether the template is removable.\n */\nfunction isTemplateRemovable( template ) {\n\tif ( ! template ) {\n\t\treturn false;\n\t}\n\t// In patterns list page we map the templates parts to a different object\n\t// than the one returned from the endpoint. This is why we need to check for\n\t// two props whether is custom or has a theme file.\n\treturn (\n\t\t[ template.source, template.templatePart?.source ].includes(\n\t\t\tTEMPLATE_ORIGINS.custom\n\t\t) &&\n\t\t! template.has_theme_file &&\n\t\t! template.templatePart?.has_theme_file\n\t);\n}\nconst canDeleteOrReset = ( item ) => {\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\treturn isUserPattern || ( isTemplatePart && item.isCustom );\n};\n\nfunction getItemTitle( item ) {\n\tif ( typeof item.title === 'string' ) {\n\t\treturn decodeEntities( item.title );\n\t}\n\treturn decodeEntities( item.title?.rendered || '' );\n}\n\n// This action is used for templates, patterns and template parts.\n// Every other post type uses the similar `trashPostAction` which\n// moves the post to trash.\nconst deletePostAction = {\n\tid: 'delete-post',\n\tlabel: __( 'Delete' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( post ) {\n\t\tif (\n\t\t\t[ TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE ].includes(\n\t\t\t\tpost.type\n\t\t\t)\n\t\t) {\n\t\t\treturn isTemplateRemovable( post );\n\t\t}\n\t\t// We can only remove user patterns.\n\t\treturn post.type === PATTERN_TYPES.user;\n\t},\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { removeTemplates } = unlock( useDispatch( editorStore ) );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ items.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: number of items to delete.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Delete %d item?',\n\t\t\t\t\t\t\t\t\t'Delete %d items?',\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The template or template part's titles\n\t\t\t\t\t\t\t\t__( 'Delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait removeTemplates( items, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tonActionPerformed?.( items );\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nfunction useCanUserEligibilityCheckPostType( capability, resource, action ) {\n\tconst registry = useRegistry();\n\treturn useMemo(\n\t\t() => ( {\n\t\t\t...action,\n\t\t\tisEligible( item ) {\n\t\t\t\treturn (\n\t\t\t\t\taction.isEligible( item ) &&\n\t\t\t\t\tregistry\n\t\t\t\t\t\t.select( coreStore )\n\t\t\t\t\t\t.canUser( capability, resource, item.id )\n\t\t\t\t);\n\t\t\t},\n\t\t} ),\n\t\t[ action, registry, capability, resource ]\n\t);\n}\n\nconst trashPostAction = {\n\tid: 'move-to-trash',\n\tlabel: __( 'Move to Trash' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( item ) {\n\t\treturn ! [ 'auto-draft', 'trash' ].includes( item.status );\n\t},\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ items.length === 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The item's title.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash \"%s\"?'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: The number of items (2 or more).\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash %d item?',\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash %d items?',\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\t\t\t\titems.map( ( item ) =>\n\t\t\t\t\t\t\t\t\tdeleteEntityRecord(\n\t\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\t\titem.type,\n\t\t\t\t\t\t\t\t\t\titem.id,\n\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t{ throwOnError: 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);\n\t\t\t\t\t\t\t// If all the promises were fulfilled with success.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\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\tlet successMessage;\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The item's title. */\n\t\t\t\t\t\t\t\t\t\t__( '\"%s\" moved to trash.' ),\n\t\t\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else if ( items[ 0 ].type === 'page' ) {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t\t'%s item moved to trash.',\n\t\t\t\t\t\t\t\t\t\t\t'%s items moved to trash.',\n\t\t\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t\t\t\t__( '%s items move to trash.' ),\n\t\t\t\t\t\t\t\t\t\titems.length\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\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t\tid: 'move-to-trash-action',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// If there was at least one failure.\n\t\t\t\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t\t\t\t// If we were trying to delete a single item.\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage =\n\t\t\t\t\t\t\t\t\t\t\tpromiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving to trash the item.'\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// If we were trying to delete multiple items.\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t\t\t\t);\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\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving to trash the items.'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving to trash the item: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'Some errors occurred while moving to trash the items: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\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}\n\t\t\t\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\t\t\tonActionPerformed( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Trash' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nfunction useTrashPostAction( resource ) {\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'delete',\n\t\tresource,\n\t\ttrashPostAction\n\t);\n}\n\nfunction usePermanentlyDeletePostAction( resource ) {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\tconst permanentlyDeletePostAction = useMemo(\n\t\t() => ( {\n\t\t\tid: 'permanently-delete',\n\t\t\tlabel: __( 'Permanently delete' ),\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn deleteEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ force: true },\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\t// If all the promises were fulfilled with success.\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The posts's title. */\n\t\t\t\t\t\t\t__( '\"%s\" permanently deleted.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = __(\n\t\t\t\t\t\t\t'The posts were permanently deleted.'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'permanently-delete-post-action',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to permanently delete a single post.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to permanently delete multiple posts\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[ createSuccessNotice, createErrorNotice, deleteEntityRecord ]\n\t);\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'delete',\n\t\tresource,\n\t\tpermanentlyDeletePostAction\n\t);\n}\n\nfunction useRestorePostAction( resource ) {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\n\tconst restorePostAction = useMemo(\n\t\t() => ( {\n\t\t\tid: 'restore',\n\t\t\tlabel: __( 'Restore' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: backup,\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tawait Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn editEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn saveEditedEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( posts.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '\"%s\" has been restored.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( posts[ 0 ].type === 'page' ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '%d pages have been restored.' ),\n\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '%d posts have been restored.' ),\n\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'restore-post-action',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to move a single post to the trash.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while restoring the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to move multiple posts to the trash\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while restoring the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while restoring the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while restoring the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t\teditEntityRecord,\n\t\t\tsaveEditedEntityRecord,\n\t\t]\n\t);\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'update',\n\t\tresource,\n\t\trestorePostAction\n\t);\n}\n\nconst viewPostAction = {\n\tid: 'view-post',\n\tlabel: __( 'View' ),\n\tisPrimary: true,\n\ticon: external,\n\tisEligible( post ) {\n\t\treturn post.status !== 'trash';\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\twindow.open( post.link, '_blank' );\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nconst postRevisionsAction = {\n\tid: 'view-post-revisions',\n\tcontext: 'list',\n\tlabel( items ) {\n\t\tconst revisionsCount =\n\t\t\titems[ 0 ]._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn sprintf(\n\t\t\t/* translators: %s: number of revisions */\n\t\t\t__( 'View revisions (%s)' ),\n\t\t\trevisionsCount\n\t\t);\n\t},\n\tisEligible: ( post ) => {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst lastRevisionId =\n\t\t\tpost?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id ?? null;\n\t\tconst revisionsCount =\n\t\t\tpost?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn lastRevisionId && revisionsCount > 1;\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\tconst href = addQueryArgs( 'revision.php', {\n\t\t\trevision: post?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id,\n\t\t} );\n\t\tdocument.location.href = href;\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nconst renamePostAction = {\n\tid: 'rename-post',\n\tlabel: __( 'Rename' ),\n\tisEligible( post ) {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\t// Templates, template parts and patterns have special checks for renaming.\n\t\tif (\n\t\t\t! [\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t...Object.values( PATTERN_TYPES ),\n\t\t\t].includes( post.type )\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t\t// In the case of templates, we can only rename custom templates.\n\t\tif ( post.type === TEMPLATE_POST_TYPE ) {\n\t\t\treturn isTemplateRemovable( post ) && post.is_custom;\n\t\t}\n\t\t// Make necessary checks for template parts and patterns.\n\t\tconst isTemplatePart = post.type === TEMPLATE_PART_POST_TYPE;\n\t\tconst isUserPattern = post.type === PATTERN_TYPES.user;\n\t\t// In patterns list page we map the templates parts to a different object\n\t\t// than the one returned from the endpoint. This is why we need to check for\n\t\t// two props whether is custom or has a theme file.\n\t\tconst isCustomPattern =\n\t\t\tisUserPattern ||\n\t\t\t( isTemplatePart &&\n\t\t\t\t( post.isCustom || post.source === TEMPLATE_ORIGINS.custom ) );\n\t\tconst hasThemeFile =\n\t\t\tisTemplatePart &&\n\t\t\t( post.templatePart?.has_theme_file || post.has_theme_file );\n\t\treturn isCustomPattern && ! hasThemeFile;\n\t},\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item ] = items;\n\t\tconst originalTitle = decodeEntities(\n\t\t\ttypeof item.title === 'string' ? item.title : item.title.rendered\n\t\t);\n\t\tconst [ title, setTitle ] = useState( () => originalTitle );\n\t\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\t\tuseDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function onRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\ttitle,\n\t\t\t\t} );\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveEditedEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t\tcreateSuccessNotice( __( 'Name updated' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\tonActionPerformed?.( items );\n\t\t\t} catch ( error ) {\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: __( 'An error occurred while updating the name' );\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\n\t\treturn (\n\t\t\t<form onSubmit={ onRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nfunction useRenamePostAction( resource ) {\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'update',\n\t\tresource,\n\t\trenamePostAction\n\t);\n}\n\nconst duplicatePostAction = {\n\tid: 'duplicate-post',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item ] = items;\n\t\tconst [ isCreatingPage, setIsCreatingPage ] = useState( false );\n\t\tconst [ title, setTitle ] = useState(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: Existing item title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\tgetItemTitle( item )\n\t\t\t)\n\t\t);\n\n\t\tconst { saveEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function createPage( event ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( isCreatingPage ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsCreatingPage( true );\n\t\t\ttry {\n\t\t\t\tconst newItem = await saveEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\titem.type,\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tslug: title || __( 'No title' ),\n\t\t\t\t\t\tauthor: item.author,\n\t\t\t\t\t\tcomment_status: item.comment_status,\n\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\ttypeof item.content === 'string'\n\t\t\t\t\t\t\t\t? item.content\n\t\t\t\t\t\t\t\t: item.content.raw,\n\t\t\t\t\t\texcerpt: item.excerpt.raw,\n\t\t\t\t\t\tmeta: item.meta,\n\t\t\t\t\t\tparent: item.parent,\n\t\t\t\t\t\tpassword: item.password,\n\t\t\t\t\t\ttemplate: item.template,\n\t\t\t\t\t\tformat: item.format,\n\t\t\t\t\t\tfeatured_media: item.featured_media,\n\t\t\t\t\t\tmenu_order: item.menu_order,\n\t\t\t\t\t\tping_status: item.ping_status,\n\t\t\t\t\t\tcategories: item.categories,\n\t\t\t\t\t\ttags: item.tags,\n\t\t\t\t\t},\n\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t);\n\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Title of the created template e.g: \"Category\".\n\t\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\t\tdecodeEntities( newItem.title?.rendered || title )\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'duplicate-post-action',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\tonActionPerformed( [ newItem ] );\n\t\t\t\t}\n\t\t\t} catch ( error ) {\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: __( 'An error occurred while duplicating the page.' );\n\n\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} finally {\n\t\t\t\tsetIsCreatingPage( false );\n\t\t\t\tcloseModal();\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ createPage }>\n\t\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\tplaceholder={ __( 'No title' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack spacing={ 2 } justify=\"end\">\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisBusy={ isCreatingPage }\n\t\t\t\t\t\t\taria-disabled={ isCreatingPage }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nconst isTemplatePartRevertable = ( item ) => {\n\tif ( ! item ) {\n\t\treturn false;\n\t}\n\tconst hasThemeFile = item.templatePart?.has_theme_file;\n\treturn canDeleteOrReset( item ) && hasThemeFile;\n};\n\nconst resetTemplateAction = {\n\tid: 'reset-template',\n\tlabel: __( 'Reset' ),\n\tisEligible: ( item ) => {\n\t\treturn item.type === TEMPLATE_PART_POST_TYPE\n\t\t\t? isTemplatePartRevertable( item )\n\t\t\t: isTemplateRevertable( item );\n\t},\n\ticon: backup,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { revertTemplate, removeTemplates } = unlock(\n\t\t\tuseDispatch( editorStore )\n\t\t);\n\t\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst onConfirm = async () => {\n\t\t\ttry {\n\t\t\t\tif ( items[ 0 ].type === TEMPLATE_PART_POST_TYPE ) {\n\t\t\t\t\tawait removeTemplates( items );\n\t\t\t\t} else {\n\t\t\t\t\tfor ( const template of items ) {\n\t\t\t\t\t\tif ( template.type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\t\t\tawait revertTemplate( template, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\t\t\ttemplate.id\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\titems.length > 1\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t\t__( '%s items reset.' ),\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t\t\t\t\t__( '\"%s\" reset.' ),\n\t\t\t\t\t\t\t\t\tdecodeEntities( getItemTitle( items[ 0 ] ) )\n\t\t\t\t\t\t\t ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'revert-template-action',\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} catch ( error ) {\n\t\t\t\tlet fallbackErrorMessage;\n\t\t\t\tif ( items[ 0 ].type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the templates.'\n\t\t\t\t\t\t\t );\n\t\t\t\t} else {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template part.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template parts.'\n\t\t\t\t\t\t\t );\n\t\t\t\t}\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t};\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ __( 'Reset to default and clear all customizations?' ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait onConfirm( items );\n\t\t\t\t\t\t\tonActionPerformed?.( items );\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const duplicatePatternAction = {\n\tid: 'duplicate-pattern',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type !== TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate pattern', 'action label' ),\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst isThemePattern = item.type === PATTERN_TYPES.theme;\n\t\tconst duplicatedProps = useDuplicatePatternProps( {\n\t\t\tpattern:\n\t\t\t\tisThemePattern || ! item.patternPost ? item : item.patternPost,\n\t\t\tonSuccess: () => closeModal(),\n\t\t} );\n\t\treturn (\n\t\t\t<CreatePatternModalContents\n\t\t\t\tonClose={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t{ ...duplicatedProps }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nexport const duplicateTemplatePartAction = {\n\tid: 'duplicate-template-part',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type === TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate template part', 'action label' ),\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\t\tfunction onTemplatePartSuccess() {\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t\tcloseModal();\n\t\t}\n\t\treturn (\n\t\t\t<CreateTemplatePartModalContents\n\t\t\t\tblocks={ item.blocks }\n\t\t\t\tdefaultArea={ item.templatePart?.area || item.area }\n\t\t\t\tdefaultTitle={ sprintf(\n\t\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\t\titem.title\n\t\t\t\t) }\n\t\t\t\tonCreate={ onTemplatePartSuccess }\n\t\t\t\tonError={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nexport function usePostActions( { postType, onActionPerformed, context } ) {\n\tconst {\n\t\tpostTypeObject,\n\t\tresource,\n\t\tcachedCanUserResolvers,\n\t\tuserCanCreatePostType,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType, getCachedResolvers, canUser } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _postTypeObject = getPostType( postType );\n\t\t\tconst _resource = _postTypeObject?.rest_base || '';\n\t\t\treturn {\n\t\t\t\tpostTypeObject: _postTypeObject,\n\t\t\t\tresource: _resource,\n\t\t\t\tcachedCanUserResolvers: getCachedResolvers()?.canUser,\n\t\t\t\tuserCanCreatePostType: canUser( 'create', _resource ),\n\t\t\t};\n\t\t},\n\t\t[ postType ]\n\t);\n\n\tconst trashPostActionForPostType = useTrashPostAction( resource );\n\tconst permanentlyDeletePostActionForPostType =\n\t\tusePermanentlyDeletePostAction( resource );\n\tconst renamePostActionForPostType = useRenamePostAction( resource );\n\tconst restorePostActionForPostType = useRestorePostAction( resource );\n\tconst isTemplateOrTemplatePart = [\n\t\tTEMPLATE_POST_TYPE,\n\t\tTEMPLATE_PART_POST_TYPE,\n\t].includes( postType );\n\tconst isPattern = postType === PATTERN_POST_TYPE;\n\tconst isLoaded = !! postTypeObject;\n\tconst supportsRevisions = !! postTypeObject?.supports?.revisions;\n\tconst supportsTitle = !! postTypeObject?.supports?.title;\n\treturn useMemo( () => {\n\t\tif ( ! isLoaded ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet actions = [\n\t\t\tpostTypeObject?.viewable && viewPostAction,\n\t\t\tsupportsRevisions && postRevisionsAction,\n\t\t\tglobalThis.IS_GUTENBERG_PLUGIN\n\t\t\t\t? ! isTemplateOrTemplatePart &&\n\t\t\t\t ! isPattern &&\n\t\t\t\t duplicatePostAction\n\t\t\t\t: false,\n\t\t\tisTemplateOrTemplatePart &&\n\t\t\t\tuserCanCreatePostType &&\n\t\t\t\tduplicateTemplatePartAction,\n\t\t\tisPattern && userCanCreatePostType && duplicatePatternAction,\n\t\t\tsupportsTitle && renamePostActionForPostType,\n\t\t\tisPattern && exportPatternAsJSONAction,\n\t\t\tisTemplateOrTemplatePart\n\t\t\t\t? resetTemplateAction\n\t\t\t\t: restorePostActionForPostType,\n\t\t\tisTemplateOrTemplatePart || isPattern\n\t\t\t\t? deletePostAction\n\t\t\t\t: trashPostActionForPostType,\n\t\t\t! isTemplateOrTemplatePart &&\n\t\t\t\tpermanentlyDeletePostActionForPostType,\n\t\t].filter( Boolean );\n\t\t// Filter actions based on provided context. If not provided\n\t\t// all actions are returned. We'll have a single entry for getting the actions\n\t\t// and the consumer should provide the context to filter the actions, if needed.\n\t\t// Actions should also provide the `context` they support, if it's specific, to\n\t\t// compare with the provided context to get all the actions.\n\t\t// Right now the only supported context is `list`.\n\t\tactions = actions.filter( ( action ) => {\n\t\t\tif ( ! action.context ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn action.context === context;\n\t\t} );\n\n\t\tif ( onActionPerformed ) {\n\t\t\tfor ( let i = 0; i < actions.length; ++i ) {\n\t\t\t\tif ( actions[ i ].callback ) {\n\t\t\t\t\tconst existingCallback = actions[ i ].callback;\n\t\t\t\t\tactions[ i ] = {\n\t\t\t\t\t\t...actions[ i ],\n\t\t\t\t\t\tcallback: ( items, _onActionPerformed ) => {\n\t\t\t\t\t\t\texistingCallback( items, ( _items ) => {\n\t\t\t\t\t\t\t\tif ( _onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t_onActionPerformed( _items );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonActionPerformed( actions[ i ].id, _items );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif ( actions[ i ].RenderModal ) {\n\t\t\t\t\tconst ExistingRenderModal = actions[ i ].RenderModal;\n\t\t\t\t\tactions[ i ] = {\n\t\t\t\t\t\t...actions[ i ],\n\t\t\t\t\t\tRenderModal: ( props ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<ExistingRenderModal\n\t\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\t\tonActionPerformed={ ( _items ) => {\n\t\t\t\t\t\t\t\t\t\tif ( props.onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t\t\tprops.onActionPerformed( _items );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonActionPerformed(\n\t\t\t\t\t\t\t\t\t\t\tactions[ i ].id,\n\t\t\t\t\t\t\t\t\t\t\t_items\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/>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn actions;\n\t\t// We are making this use memo depend on cachedCanUserResolvers as a way to make the component using this hook re-render\n\t\t// when user capabilities are resolved. This makes sure the isEligible functions of actions dependent on capabilities are re-evaluated.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\tisTemplateOrTemplatePart,\n\t\tisPattern,\n\t\tpostTypeObject?.viewable,\n\t\tpermanentlyDeletePostActionForPostType,\n\t\trestorePostActionForPostType,\n\t\trenamePostActionForPostType,\n\t\ttrashPostActionForPostType,\n\t\tonActionPerformed,\n\t\tisLoaded,\n\t\tsupportsRevisions,\n\t\tsupportsTitle,\n\t\tcontext,\n\t\tuserCanCreatePostType,\n\t\tcachedCanUserResolvers,\n\t] );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["external","trash","backup","addQueryArgs","useDispatch","useSelect","useRegistry","decodeEntities","store","coreStore","__","_n","sprintf","_x","noticesStore","useMemo","useState","privateApis","patternsPrivateApis","Button","TextControl","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","TEMPLATE_ORIGINS","TEMPLATE_PART_POST_TYPE","TEMPLATE_POST_TYPE","PATTERN_POST_TYPE","editorStore","unlock","isTemplateRevertable","exportPatternAsJSONAction","CreateTemplatePartModalContents","jsx","_jsx","jsxs","_jsxs","PATTERN_TYPES","CreatePatternModalContents","useDuplicatePatternProps","isTemplateRemovable","template","source","templatePart","includes","custom","has_theme_file","getItemTitle","item","title","rendered","deletePostAction","id","label","isPrimary","icon","isEligible","post","type","user","supportsBulk","hideModalHeader","RenderModal","items","closeModal","onActionStart","onActionPerformed","isBusy","setIsBusy","removeTemplates","spacing","children","length","justify","variant","onClick","disabled","__experimentalIsFocusable","allowUndo","useCanUserEligibilityCheckPostType","capability","resource","action","registry","select","canUser","trashPostAction","status","createSuccessNotice","createErrorNotice","deleteEntityRecord","promiseResult","Promise","allSettled","map","throwOnError","every","successMessage","errorMessage","reason","message","errorMessages","Set","failedPromises","filter","failedPromise","add","size","join","useTrashPostAction","usePermanentlyDeletePostAction","permanentlyDeletePostAction","callback","posts","force","useRestorePostAction","editEntityRecord","saveEditedEntityRecord","restorePostAction","viewPostAction","window","open","link","postRevisionsAction","context","_items$0$_links$versi","revisionsCount","_links","count","_post$_links$predeces","_post$_links$version","lastRevisionId","href","revision","document","location","renamePostAction","Object","values","is_custom","isTemplatePart","isUserPattern","isCustomPattern","isCustom","hasThemeFile","originalTitle","setTitle","onRename","event","preventDefault","error","code","onSubmit","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","required","useRenamePostAction","duplicatePostAction","isCreatingPage","setIsCreatingPage","saveEntityRecord","createPage","newItem","slug","author","comment_status","content","raw","excerpt","meta","parent","password","format","featured_media","menu_order","ping_status","categories","tags","placeholder","resetTemplateAction","revertTemplate","onConfirm","fallbackErrorMessage","duplicatePatternAction","modalHeader","isThemePattern","theme","duplicatedProps","pattern","patternPost","onSuccess","onClose","confirmLabel","duplicateTemplatePartAction","onTemplatePartSuccess","blocks","defaultArea","area","defaultTitle","onCreate","onError","usePostActions","postType","postTypeObject","cachedCanUserResolvers","userCanCreatePostType","getPostType","getCachedResolvers","_postTypeObject","_resource","rest_base","trashPostActionForPostType","permanentlyDeletePostActionForPostType","renamePostActionForPostType","restorePostActionForPostType","isTemplateOrTemplatePart","isPattern","isLoaded","supportsRevisions","supports","revisions","supportsTitle","actions","viewable","globalThis","IS_GUTENBERG_PLUGIN","Boolean","i","existingCallback","_onActionPerformed","_items","ExistingRenderModal","props"],"sources":["@wordpress/editor/src/components/post-actions/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { external, trash, backup } from '@wordpress/icons';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useMemo, useState } from '@wordpress/element';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_ORIGINS,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n\tPATTERN_POST_TYPE,\n} from '../../store/constants';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport isTemplateRevertable from '../../store/utils/is-template-revertable';\nimport { exportPatternAsJSONAction } from './export-pattern-action';\nimport { CreateTemplatePartModalContents } from '../create-template-part-modal';\n\n// Patterns.\nconst { PATTERN_TYPES, CreatePatternModalContents, useDuplicatePatternProps } =\n\tunlock( patternsPrivateApis );\n\n/**\n * Check if a template is removable.\n *\n * @param {Object} template The template entity to check.\n * @return {boolean} Whether the template is removable.\n */\nfunction isTemplateRemovable( template ) {\n\tif ( ! template ) {\n\t\treturn false;\n\t}\n\t// In patterns list page we map the templates parts to a different object\n\t// than the one returned from the endpoint. This is why we need to check for\n\t// two props whether is custom or has a theme file.\n\treturn (\n\t\t[ template.source, template.templatePart?.source ].includes(\n\t\t\tTEMPLATE_ORIGINS.custom\n\t\t) &&\n\t\t! template.has_theme_file &&\n\t\t! template.templatePart?.has_theme_file\n\t);\n}\n\nfunction getItemTitle( item ) {\n\tif ( typeof item.title === 'string' ) {\n\t\treturn decodeEntities( item.title );\n\t}\n\treturn decodeEntities( item.title?.rendered || '' );\n}\n\n// This action is used for templates, patterns and template parts.\n// Every other post type uses the similar `trashPostAction` which\n// moves the post to trash.\nconst deletePostAction = {\n\tid: 'delete-post',\n\tlabel: __( 'Delete' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( post ) {\n\t\tif (\n\t\t\t[ TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE ].includes(\n\t\t\t\tpost.type\n\t\t\t)\n\t\t) {\n\t\t\treturn isTemplateRemovable( post );\n\t\t}\n\t\t// We can only remove user patterns.\n\t\treturn post.type === PATTERN_TYPES.user;\n\t},\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { removeTemplates } = unlock( useDispatch( editorStore ) );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ items.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: number of items to delete.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Delete %d item?',\n\t\t\t\t\t\t\t\t\t'Delete %d items?',\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The template or template part's titles\n\t\t\t\t\t\t\t\t__( 'Delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait removeTemplates( items, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tonActionPerformed?.( items );\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nfunction useCanUserEligibilityCheckPostType( capability, resource, action ) {\n\tconst registry = useRegistry();\n\treturn useMemo(\n\t\t() => ( {\n\t\t\t...action,\n\t\t\tisEligible( item ) {\n\t\t\t\treturn (\n\t\t\t\t\taction.isEligible( item ) &&\n\t\t\t\t\tregistry\n\t\t\t\t\t\t.select( coreStore )\n\t\t\t\t\t\t.canUser( capability, resource, item.id )\n\t\t\t\t);\n\t\t\t},\n\t\t} ),\n\t\t[ action, registry, capability, resource ]\n\t);\n}\n\nconst trashPostAction = {\n\tid: 'move-to-trash',\n\tlabel: __( 'Move to Trash' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( item ) {\n\t\treturn ! [ 'auto-draft', 'trash' ].includes( item.status );\n\t},\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ items.length === 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The item's title.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash \"%s\"?'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: The number of items (2 or more).\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash %d item?',\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash %d items?',\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\t\t\t\titems.map( ( item ) =>\n\t\t\t\t\t\t\t\t\tdeleteEntityRecord(\n\t\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\t\titem.type,\n\t\t\t\t\t\t\t\t\t\titem.id,\n\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t{ throwOnError: 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);\n\t\t\t\t\t\t\t// If all the promises were fulfilled with success.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\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\tlet successMessage;\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The item's title. */\n\t\t\t\t\t\t\t\t\t\t__( '\"%s\" moved to trash.' ),\n\t\t\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t\t'%s item moved to trash.',\n\t\t\t\t\t\t\t\t\t\t\t'%s items moved to trash.',\n\t\t\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\titems.length\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\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t\tid: 'move-to-trash-action',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// If there was at least one failure.\n\t\t\t\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t\t\t\t// If we were trying to delete a single item.\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage =\n\t\t\t\t\t\t\t\t\t\t\tpromiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving to trash the item.'\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// If we were trying to delete multiple items.\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t\t\t\t);\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\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving to trash the items.'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving to trash the item: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'Some errors occurred while moving to trash the items: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\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}\n\t\t\t\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\t\t\tonActionPerformed( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Trash' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nfunction useTrashPostAction( resource ) {\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'delete',\n\t\tresource,\n\t\ttrashPostAction\n\t);\n}\n\nfunction usePermanentlyDeletePostAction( resource ) {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\tconst permanentlyDeletePostAction = useMemo(\n\t\t() => ( {\n\t\t\tid: 'permanently-delete',\n\t\t\tlabel: __( 'Permanently delete' ),\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn deleteEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ force: true },\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\t// If all the promises were fulfilled with success.\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The posts's title. */\n\t\t\t\t\t\t\t__( '\"%s\" permanently deleted.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = __(\n\t\t\t\t\t\t\t'The posts were permanently deleted.'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'permanently-delete-post-action',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to permanently delete a single post.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to permanently delete multiple posts\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[ createSuccessNotice, createErrorNotice, deleteEntityRecord ]\n\t);\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'delete',\n\t\tresource,\n\t\tpermanentlyDeletePostAction\n\t);\n}\n\nfunction useRestorePostAction( resource ) {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\n\tconst restorePostAction = useMemo(\n\t\t() => ( {\n\t\t\tid: 'restore',\n\t\t\tlabel: __( 'Restore' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: backup,\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tawait Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn editEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn saveEditedEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( posts.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '\"%s\" has been restored.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( posts[ 0 ].type === 'page' ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '%d pages have been restored.' ),\n\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '%d posts have been restored.' ),\n\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'restore-post-action',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to move a single post to the trash.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while restoring the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to move multiple posts to the trash\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while restoring the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while restoring the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while restoring the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t\teditEntityRecord,\n\t\t\tsaveEditedEntityRecord,\n\t\t]\n\t);\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'update',\n\t\tresource,\n\t\trestorePostAction\n\t);\n}\n\nconst viewPostAction = {\n\tid: 'view-post',\n\tlabel: __( 'View' ),\n\tisPrimary: true,\n\ticon: external,\n\tisEligible( post ) {\n\t\treturn post.status !== 'trash';\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\twindow.open( post.link, '_blank' );\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nconst postRevisionsAction = {\n\tid: 'view-post-revisions',\n\tcontext: 'list',\n\tlabel( items ) {\n\t\tconst revisionsCount =\n\t\t\titems[ 0 ]._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn sprintf(\n\t\t\t/* translators: %s: number of revisions */\n\t\t\t__( 'View revisions (%s)' ),\n\t\t\trevisionsCount\n\t\t);\n\t},\n\tisEligible: ( post ) => {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst lastRevisionId =\n\t\t\tpost?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id ?? null;\n\t\tconst revisionsCount =\n\t\t\tpost?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn lastRevisionId && revisionsCount > 1;\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\tconst href = addQueryArgs( 'revision.php', {\n\t\t\trevision: post?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id,\n\t\t} );\n\t\tdocument.location.href = href;\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nconst renamePostAction = {\n\tid: 'rename-post',\n\tlabel: __( 'Rename' ),\n\tisEligible( post ) {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\t// Templates, template parts and patterns have special checks for renaming.\n\t\tif (\n\t\t\t! [\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t...Object.values( PATTERN_TYPES ),\n\t\t\t].includes( post.type )\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t\t// In the case of templates, we can only rename custom templates.\n\t\tif ( post.type === TEMPLATE_POST_TYPE ) {\n\t\t\treturn isTemplateRemovable( post ) && post.is_custom;\n\t\t}\n\t\t// Make necessary checks for template parts and patterns.\n\t\tconst isTemplatePart = post.type === TEMPLATE_PART_POST_TYPE;\n\t\tconst isUserPattern = post.type === PATTERN_TYPES.user;\n\t\t// In patterns list page we map the templates parts to a different object\n\t\t// than the one returned from the endpoint. This is why we need to check for\n\t\t// two props whether is custom or has a theme file.\n\t\tconst isCustomPattern =\n\t\t\tisUserPattern ||\n\t\t\t( isTemplatePart &&\n\t\t\t\t( post.isCustom || post.source === TEMPLATE_ORIGINS.custom ) );\n\t\tconst hasThemeFile =\n\t\t\tisTemplatePart &&\n\t\t\t( post.templatePart?.has_theme_file || post.has_theme_file );\n\t\treturn isCustomPattern && ! hasThemeFile;\n\t},\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item ] = items;\n\t\tconst originalTitle = decodeEntities(\n\t\t\ttypeof item.title === 'string' ? item.title : item.title.rendered\n\t\t);\n\t\tconst [ title, setTitle ] = useState( () => originalTitle );\n\t\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\t\tuseDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function onRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\ttitle,\n\t\t\t\t} );\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveEditedEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t\tcreateSuccessNotice( __( 'Name updated' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\tonActionPerformed?.( items );\n\t\t\t} catch ( error ) {\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: __( 'An error occurred while updating the name' );\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\n\t\treturn (\n\t\t\t<form onSubmit={ onRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nfunction useRenamePostAction( resource ) {\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'update',\n\t\tresource,\n\t\trenamePostAction\n\t);\n}\n\nconst duplicatePostAction = {\n\tid: 'duplicate-post',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item ] = items;\n\t\tconst [ isCreatingPage, setIsCreatingPage ] = useState( false );\n\t\tconst [ title, setTitle ] = useState(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: Existing item title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\tgetItemTitle( item )\n\t\t\t)\n\t\t);\n\n\t\tconst { saveEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function createPage( event ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( isCreatingPage ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsCreatingPage( true );\n\t\t\ttry {\n\t\t\t\tconst newItem = await saveEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\titem.type,\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tslug: title || __( 'No title' ),\n\t\t\t\t\t\tauthor: item.author,\n\t\t\t\t\t\tcomment_status: item.comment_status,\n\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\ttypeof item.content === 'string'\n\t\t\t\t\t\t\t\t? item.content\n\t\t\t\t\t\t\t\t: item.content.raw,\n\t\t\t\t\t\texcerpt: item.excerpt.raw,\n\t\t\t\t\t\tmeta: item.meta,\n\t\t\t\t\t\tparent: item.parent,\n\t\t\t\t\t\tpassword: item.password,\n\t\t\t\t\t\ttemplate: item.template,\n\t\t\t\t\t\tformat: item.format,\n\t\t\t\t\t\tfeatured_media: item.featured_media,\n\t\t\t\t\t\tmenu_order: item.menu_order,\n\t\t\t\t\t\tping_status: item.ping_status,\n\t\t\t\t\t\tcategories: item.categories,\n\t\t\t\t\t\ttags: item.tags,\n\t\t\t\t\t},\n\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t);\n\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Title of the created template e.g: \"Category\".\n\t\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\t\tdecodeEntities( newItem.title?.rendered || title )\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'duplicate-post-action',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\tonActionPerformed( [ newItem ] );\n\t\t\t\t}\n\t\t\t} catch ( error ) {\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: __( 'An error occurred while duplicating the page.' );\n\n\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} finally {\n\t\t\t\tsetIsCreatingPage( false );\n\t\t\t\tcloseModal();\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ createPage }>\n\t\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\tplaceholder={ __( 'No title' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack spacing={ 2 } justify=\"end\">\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisBusy={ isCreatingPage }\n\t\t\t\t\t\t\taria-disabled={ isCreatingPage }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nconst resetTemplateAction = {\n\tid: 'reset-template',\n\tlabel: __( 'Reset' ),\n\tisEligible: ( item ) => {\n\t\treturn isTemplateRevertable( item );\n\t},\n\ticon: backup,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { revertTemplate } = unlock( useDispatch( editorStore ) );\n\t\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst onConfirm = async () => {\n\t\t\ttry {\n\t\t\t\tfor ( const template of items ) {\n\t\t\t\t\tawait revertTemplate( template, {\n\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t} );\n\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\ttemplate.id\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\titems.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t__( '%s items reset.' ),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t\t\t\t__( '\"%s\" reset.' ),\n\t\t\t\t\t\t\t\tdecodeEntities( getItemTitle( items[ 0 ] ) )\n\t\t\t\t\t\t ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'revert-template-action',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tlet fallbackErrorMessage;\n\t\t\t\tif ( items[ 0 ].type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the templates.'\n\t\t\t\t\t\t\t );\n\t\t\t\t} else {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template part.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template parts.'\n\t\t\t\t\t\t\t );\n\t\t\t\t}\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t};\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ __( 'Reset to default and clear all customizations?' ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait onConfirm( items );\n\t\t\t\t\t\t\tonActionPerformed?.( items );\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const duplicatePatternAction = {\n\tid: 'duplicate-pattern',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type !== TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate pattern', 'action label' ),\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst isThemePattern = item.type === PATTERN_TYPES.theme;\n\t\tconst duplicatedProps = useDuplicatePatternProps( {\n\t\t\tpattern:\n\t\t\t\tisThemePattern || ! item.patternPost ? item : item.patternPost,\n\t\t\tonSuccess: () => closeModal(),\n\t\t} );\n\t\treturn (\n\t\t\t<CreatePatternModalContents\n\t\t\t\tonClose={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t{ ...duplicatedProps }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nexport const duplicateTemplatePartAction = {\n\tid: 'duplicate-template-part',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type === TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate template part', 'action label' ),\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\t\tfunction onTemplatePartSuccess() {\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t\tcloseModal();\n\t\t}\n\t\treturn (\n\t\t\t<CreateTemplatePartModalContents\n\t\t\t\tblocks={ item.blocks }\n\t\t\t\tdefaultArea={ item.templatePart?.area || item.area }\n\t\t\t\tdefaultTitle={ sprintf(\n\t\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\t\titem.title\n\t\t\t\t) }\n\t\t\t\tonCreate={ onTemplatePartSuccess }\n\t\t\t\tonError={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nexport function usePostActions( { postType, onActionPerformed, context } ) {\n\tconst {\n\t\tpostTypeObject,\n\t\tresource,\n\t\tcachedCanUserResolvers,\n\t\tuserCanCreatePostType,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType, getCachedResolvers, canUser } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _postTypeObject = getPostType( postType );\n\t\t\tconst _resource = _postTypeObject?.rest_base || '';\n\t\t\treturn {\n\t\t\t\tpostTypeObject: _postTypeObject,\n\t\t\t\tresource: _resource,\n\t\t\t\tcachedCanUserResolvers: getCachedResolvers()?.canUser,\n\t\t\t\tuserCanCreatePostType: canUser( 'create', _resource ),\n\t\t\t};\n\t\t},\n\t\t[ postType ]\n\t);\n\n\tconst trashPostActionForPostType = useTrashPostAction( resource );\n\tconst permanentlyDeletePostActionForPostType =\n\t\tusePermanentlyDeletePostAction( resource );\n\tconst renamePostActionForPostType = useRenamePostAction( resource );\n\tconst restorePostActionForPostType = useRestorePostAction( resource );\n\tconst isTemplateOrTemplatePart = [\n\t\tTEMPLATE_POST_TYPE,\n\t\tTEMPLATE_PART_POST_TYPE,\n\t].includes( postType );\n\tconst isPattern = postType === PATTERN_POST_TYPE;\n\tconst isLoaded = !! postTypeObject;\n\tconst supportsRevisions = !! postTypeObject?.supports?.revisions;\n\tconst supportsTitle = !! postTypeObject?.supports?.title;\n\treturn useMemo( () => {\n\t\tif ( ! isLoaded ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet actions = [\n\t\t\tpostTypeObject?.viewable && viewPostAction,\n\t\t\tsupportsRevisions && postRevisionsAction,\n\t\t\tglobalThis.IS_GUTENBERG_PLUGIN\n\t\t\t\t? ! isTemplateOrTemplatePart &&\n\t\t\t\t ! isPattern &&\n\t\t\t\t duplicatePostAction\n\t\t\t\t: false,\n\t\t\tisTemplateOrTemplatePart &&\n\t\t\t\tuserCanCreatePostType &&\n\t\t\t\tduplicateTemplatePartAction,\n\t\t\tisPattern && userCanCreatePostType && duplicatePatternAction,\n\t\t\tsupportsTitle && renamePostActionForPostType,\n\t\t\tisPattern && exportPatternAsJSONAction,\n\t\t\tisTemplateOrTemplatePart\n\t\t\t\t? resetTemplateAction\n\t\t\t\t: restorePostActionForPostType,\n\t\t\tisTemplateOrTemplatePart || isPattern\n\t\t\t\t? deletePostAction\n\t\t\t\t: trashPostActionForPostType,\n\t\t\t! isTemplateOrTemplatePart &&\n\t\t\t\tpermanentlyDeletePostActionForPostType,\n\t\t].filter( Boolean );\n\t\t// Filter actions based on provided context. If not provided\n\t\t// all actions are returned. We'll have a single entry for getting the actions\n\t\t// and the consumer should provide the context to filter the actions, if needed.\n\t\t// Actions should also provide the `context` they support, if it's specific, to\n\t\t// compare with the provided context to get all the actions.\n\t\t// Right now the only supported context is `list`.\n\t\tactions = actions.filter( ( action ) => {\n\t\t\tif ( ! action.context ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn action.context === context;\n\t\t} );\n\n\t\tif ( onActionPerformed ) {\n\t\t\tfor ( let i = 0; i < actions.length; ++i ) {\n\t\t\t\tif ( actions[ i ].callback ) {\n\t\t\t\t\tconst existingCallback = actions[ i ].callback;\n\t\t\t\t\tactions[ i ] = {\n\t\t\t\t\t\t...actions[ i ],\n\t\t\t\t\t\tcallback: ( items, _onActionPerformed ) => {\n\t\t\t\t\t\t\texistingCallback( items, ( _items ) => {\n\t\t\t\t\t\t\t\tif ( _onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t_onActionPerformed( _items );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonActionPerformed( actions[ i ].id, _items );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif ( actions[ i ].RenderModal ) {\n\t\t\t\t\tconst ExistingRenderModal = actions[ i ].RenderModal;\n\t\t\t\t\tactions[ i ] = {\n\t\t\t\t\t\t...actions[ i ],\n\t\t\t\t\t\tRenderModal: ( props ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<ExistingRenderModal\n\t\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\t\tonActionPerformed={ ( _items ) => {\n\t\t\t\t\t\t\t\t\t\tif ( props.onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t\t\tprops.onActionPerformed( _items );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonActionPerformed(\n\t\t\t\t\t\t\t\t\t\t\tactions[ i ].id,\n\t\t\t\t\t\t\t\t\t\t\t_items\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/>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn actions;\n\t\t// We are making this use memo depend on cachedCanUserResolvers as a way to make the component using this hook re-render\n\t\t// when user capabilities are resolved. This makes sure the isEligible functions of actions dependent on capabilities are re-evaluated.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\tisTemplateOrTemplatePart,\n\t\tisPattern,\n\t\tpostTypeObject?.viewable,\n\t\tpermanentlyDeletePostActionForPostType,\n\t\trestorePostActionForPostType,\n\t\trenamePostActionForPostType,\n\t\ttrashPostActionForPostType,\n\t\tonActionPerformed,\n\t\tisLoaded,\n\t\tsupportsRevisions,\n\t\tsupportsTitle,\n\t\tcontext,\n\t\tuserCanCreatePostType,\n\t\tcachedCanUserResolvers,\n\t] );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -24,8 +24,8 @@ function getJsonFromItem(item) {
24
24
  return JSON.stringify({
25
25
  __file: item.type,
26
26
  title: item.title || item.name,
27
- content: item.patternPost.content.raw,
28
- syncStatus: item.patternPost.wp_pattern_sync_status
27
+ content: item?.patternPost?.content?.raw || item.content,
28
+ syncStatus: item?.patternPost?.wp_pattern_sync_status || item.wp_pattern_sync_status
29
29
  }, null, 2);
30
30
  }
31
31
  export const exportPatternAsJSONAction = {
@@ -1 +1 @@
1
- {"version":3,"names":["paramCase","kebabCase","downloadZip","downloadBlob","__","privateApis","patternsPrivateApis","unlock","PATTERN_TYPES","getJsonFromItem","item","JSON","stringify","__file","type","title","name","content","patternPost","raw","syncStatus","wp_pattern_sync_status","exportPatternAsJSONAction","id","label","supportsBulk","isEligible","user","callback","items","length","nameCount","filesToZip","map","lastModified","Date","input","blob"],"sources":["@wordpress/editor/src/components/post-actions/export-pattern-action.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { paramCase as kebabCase } from 'change-case';\nimport { downloadZip } from 'client-zip';\n\n/**\n * WordPress dependencies\n */\nimport { downloadBlob } from '@wordpress/blob';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\n// Patterns.\nconst { PATTERN_TYPES } = unlock( patternsPrivateApis );\n\nfunction getJsonFromItem( item ) {\n\treturn JSON.stringify(\n\t\t{\n\t\t\t__file: item.type,\n\t\t\ttitle: item.title || item.name,\n\t\t\tcontent: item.patternPost.content.raw,\n\t\t\tsyncStatus: item.patternPost.wp_pattern_sync_status,\n\t\t},\n\t\tnull,\n\t\t2\n\t);\n}\n\nexport const exportPatternAsJSONAction = {\n\tid: 'export-pattern',\n\tlabel: __( 'Export as JSON' ),\n\tsupportsBulk: true,\n\tisEligible: ( item ) => {\n\t\tif ( ! item.type ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn item.type === PATTERN_TYPES.user;\n\t},\n\tcallback: async ( items ) => {\n\t\tif ( items.length === 1 ) {\n\t\t\treturn downloadBlob(\n\t\t\t\t`${ kebabCase( items[ 0 ].title || items[ 0 ].name ) }.json`,\n\t\t\t\tgetJsonFromItem( items[ 0 ] ),\n\t\t\t\t'application/json'\n\t\t\t);\n\t\t}\n\t\tconst nameCount = {};\n\t\tconst filesToZip = items.map( ( item ) => {\n\t\t\tconst name = kebabCase( item.title || item.name );\n\t\t\tnameCount[ name ] = ( nameCount[ name ] || 0 ) + 1;\n\t\t\treturn {\n\t\t\t\tname: `${\n\t\t\t\t\tname +\n\t\t\t\t\t( nameCount[ name ] > 1\n\t\t\t\t\t\t? '-' + ( nameCount[ name ] - 1 )\n\t\t\t\t\t\t: '' )\n\t\t\t\t}.json`,\n\t\t\t\tlastModified: new Date(),\n\t\t\t\tinput: getJsonFromItem( item ),\n\t\t\t};\n\t\t} );\n\t\treturn downloadBlob(\n\t\t\t__( 'patterns-export' ) + '.zip',\n\t\t\tawait downloadZip( filesToZip ).blob(),\n\t\t\t'application/zip'\n\t\t);\n\t},\n};\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,IAAIC,SAAS,QAAQ,aAAa;AACpD,SAASC,WAAW,QAAQ,YAAY;;AAExC;AACA;AACA;AACA,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,IAAIC,mBAAmB,QAAQ,qBAAqB;;AAExE;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;;AAE1C;AACA,MAAM;EAAEC;AAAc,CAAC,GAAGD,MAAM,CAAED,mBAAoB,CAAC;AAEvD,SAASG,eAAeA,CAAEC,IAAI,EAAG;EAChC,OAAOC,IAAI,CAACC,SAAS,CACpB;IACCC,MAAM,EAAEH,IAAI,CAACI,IAAI;IACjBC,KAAK,EAAEL,IAAI,CAACK,KAAK,IAAIL,IAAI,CAACM,IAAI;IAC9BC,OAAO,EAAEP,IAAI,CAACQ,WAAW,CAACD,OAAO,CAACE,GAAG;IACrCC,UAAU,EAAEV,IAAI,CAACQ,WAAW,CAACG;EAC9B,CAAC,EACD,IAAI,EACJ,CACD,CAAC;AACF;AAEA,OAAO,MAAMC,yBAAyB,GAAG;EACxCC,EAAE,EAAE,gBAAgB;EACpBC,KAAK,EAAEpB,EAAE,CAAE,gBAAiB,CAAC;EAC7BqB,YAAY,EAAE,IAAI;EAClBC,UAAU,EAAIhB,IAAI,IAAM;IACvB,IAAK,CAAEA,IAAI,CAACI,IAAI,EAAG;MAClB,OAAO,KAAK;IACb;IACA,OAAOJ,IAAI,CAACI,IAAI,KAAKN,aAAa,CAACmB,IAAI;EACxC,CAAC;EACDC,QAAQ,EAAE,MAAQC,KAAK,IAAM;IAC5B,IAAKA,KAAK,CAACC,MAAM,KAAK,CAAC,EAAG;MACzB,OAAO3B,YAAY,CACjB,GAAGF,SAAS,CAAE4B,KAAK,CAAE,CAAC,CAAE,CAACd,KAAK,IAAIc,KAAK,CAAE,CAAC,CAAE,CAACb,IAAK,CAAG,OAAM,EAC5DP,eAAe,CAAEoB,KAAK,CAAE,CAAC,CAAG,CAAC,EAC7B,kBACD,CAAC;IACF;IACA,MAAME,SAAS,GAAG,CAAC,CAAC;IACpB,MAAMC,UAAU,GAAGH,KAAK,CAACI,GAAG,CAAIvB,IAAI,IAAM;MACzC,MAAMM,IAAI,GAAGf,SAAS,CAAES,IAAI,CAACK,KAAK,IAAIL,IAAI,CAACM,IAAK,CAAC;MACjDe,SAAS,CAAEf,IAAI,CAAE,GAAG,CAAEe,SAAS,CAAEf,IAAI,CAAE,IAAI,CAAC,IAAK,CAAC;MAClD,OAAO;QACNA,IAAI,EAAG,GACNA,IAAI,IACFe,SAAS,CAAEf,IAAI,CAAE,GAAG,CAAC,GACpB,GAAG,IAAKe,SAAS,CAAEf,IAAI,CAAE,GAAG,CAAC,CAAE,GAC/B,EAAE,CACL,OAAM;QACPkB,YAAY,EAAE,IAAIC,IAAI,CAAC,CAAC;QACxBC,KAAK,EAAE3B,eAAe,CAAEC,IAAK;MAC9B,CAAC;IACF,CAAE,CAAC;IACH,OAAOP,YAAY,CAClBC,EAAE,CAAE,iBAAkB,CAAC,GAAG,MAAM,EAChC,MAAMF,WAAW,CAAE8B,UAAW,CAAC,CAACK,IAAI,CAAC,CAAC,EACtC,iBACD,CAAC;EACF;AACD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["paramCase","kebabCase","downloadZip","downloadBlob","__","privateApis","patternsPrivateApis","unlock","PATTERN_TYPES","getJsonFromItem","item","JSON","stringify","__file","type","title","name","content","patternPost","raw","syncStatus","wp_pattern_sync_status","exportPatternAsJSONAction","id","label","supportsBulk","isEligible","user","callback","items","length","nameCount","filesToZip","map","lastModified","Date","input","blob"],"sources":["@wordpress/editor/src/components/post-actions/export-pattern-action.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { paramCase as kebabCase } from 'change-case';\nimport { downloadZip } from 'client-zip';\n\n/**\n * WordPress dependencies\n */\nimport { downloadBlob } from '@wordpress/blob';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\n// Patterns.\nconst { PATTERN_TYPES } = unlock( patternsPrivateApis );\n\nfunction getJsonFromItem( item ) {\n\treturn JSON.stringify(\n\t\t{\n\t\t\t__file: item.type,\n\t\t\ttitle: item.title || item.name,\n\t\t\tcontent: item?.patternPost?.content?.raw || item.content,\n\t\t\tsyncStatus:\n\t\t\t\titem?.patternPost?.wp_pattern_sync_status ||\n\t\t\t\titem.wp_pattern_sync_status,\n\t\t},\n\t\tnull,\n\t\t2\n\t);\n}\n\nexport const exportPatternAsJSONAction = {\n\tid: 'export-pattern',\n\tlabel: __( 'Export as JSON' ),\n\tsupportsBulk: true,\n\tisEligible: ( item ) => {\n\t\tif ( ! item.type ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn item.type === PATTERN_TYPES.user;\n\t},\n\tcallback: async ( items ) => {\n\t\tif ( items.length === 1 ) {\n\t\t\treturn downloadBlob(\n\t\t\t\t`${ kebabCase( items[ 0 ].title || items[ 0 ].name ) }.json`,\n\t\t\t\tgetJsonFromItem( items[ 0 ] ),\n\t\t\t\t'application/json'\n\t\t\t);\n\t\t}\n\t\tconst nameCount = {};\n\t\tconst filesToZip = items.map( ( item ) => {\n\t\t\tconst name = kebabCase( item.title || item.name );\n\t\t\tnameCount[ name ] = ( nameCount[ name ] || 0 ) + 1;\n\t\t\treturn {\n\t\t\t\tname: `${\n\t\t\t\t\tname +\n\t\t\t\t\t( nameCount[ name ] > 1\n\t\t\t\t\t\t? '-' + ( nameCount[ name ] - 1 )\n\t\t\t\t\t\t: '' )\n\t\t\t\t}.json`,\n\t\t\t\tlastModified: new Date(),\n\t\t\t\tinput: getJsonFromItem( item ),\n\t\t\t};\n\t\t} );\n\t\treturn downloadBlob(\n\t\t\t__( 'patterns-export' ) + '.zip',\n\t\t\tawait downloadZip( filesToZip ).blob(),\n\t\t\t'application/zip'\n\t\t);\n\t},\n};\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,IAAIC,SAAS,QAAQ,aAAa;AACpD,SAASC,WAAW,QAAQ,YAAY;;AAExC;AACA;AACA;AACA,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,IAAIC,mBAAmB,QAAQ,qBAAqB;;AAExE;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;;AAE1C;AACA,MAAM;EAAEC;AAAc,CAAC,GAAGD,MAAM,CAAED,mBAAoB,CAAC;AAEvD,SAASG,eAAeA,CAAEC,IAAI,EAAG;EAChC,OAAOC,IAAI,CAACC,SAAS,CACpB;IACCC,MAAM,EAAEH,IAAI,CAACI,IAAI;IACjBC,KAAK,EAAEL,IAAI,CAACK,KAAK,IAAIL,IAAI,CAACM,IAAI;IAC9BC,OAAO,EAAEP,IAAI,EAAEQ,WAAW,EAAED,OAAO,EAAEE,GAAG,IAAIT,IAAI,CAACO,OAAO;IACxDG,UAAU,EACTV,IAAI,EAAEQ,WAAW,EAAEG,sBAAsB,IACzCX,IAAI,CAACW;EACP,CAAC,EACD,IAAI,EACJ,CACD,CAAC;AACF;AAEA,OAAO,MAAMC,yBAAyB,GAAG;EACxCC,EAAE,EAAE,gBAAgB;EACpBC,KAAK,EAAEpB,EAAE,CAAE,gBAAiB,CAAC;EAC7BqB,YAAY,EAAE,IAAI;EAClBC,UAAU,EAAIhB,IAAI,IAAM;IACvB,IAAK,CAAEA,IAAI,CAACI,IAAI,EAAG;MAClB,OAAO,KAAK;IACb;IACA,OAAOJ,IAAI,CAACI,IAAI,KAAKN,aAAa,CAACmB,IAAI;EACxC,CAAC;EACDC,QAAQ,EAAE,MAAQC,KAAK,IAAM;IAC5B,IAAKA,KAAK,CAACC,MAAM,KAAK,CAAC,EAAG;MACzB,OAAO3B,YAAY,CACjB,GAAGF,SAAS,CAAE4B,KAAK,CAAE,CAAC,CAAE,CAACd,KAAK,IAAIc,KAAK,CAAE,CAAC,CAAE,CAACb,IAAK,CAAG,OAAM,EAC5DP,eAAe,CAAEoB,KAAK,CAAE,CAAC,CAAG,CAAC,EAC7B,kBACD,CAAC;IACF;IACA,MAAME,SAAS,GAAG,CAAC,CAAC;IACpB,MAAMC,UAAU,GAAGH,KAAK,CAACI,GAAG,CAAIvB,IAAI,IAAM;MACzC,MAAMM,IAAI,GAAGf,SAAS,CAAES,IAAI,CAACK,KAAK,IAAIL,IAAI,CAACM,IAAK,CAAC;MACjDe,SAAS,CAAEf,IAAI,CAAE,GAAG,CAAEe,SAAS,CAAEf,IAAI,CAAE,IAAI,CAAC,IAAK,CAAC;MAClD,OAAO;QACNA,IAAI,EAAG,GACNA,IAAI,IACFe,SAAS,CAAEf,IAAI,CAAE,GAAG,CAAC,GACpB,GAAG,IAAKe,SAAS,CAAEf,IAAI,CAAE,GAAG,CAAC,CAAE,GAC/B,EAAE,CACL,OAAM;QACPkB,YAAY,EAAE,IAAIC,IAAI,CAAC,CAAC;QACxBC,KAAK,EAAE3B,eAAe,CAAEC,IAAK;MAC9B,CAAC;IACF,CAAE,CAAC;IACH,OAAOP,YAAY,CAClBC,EAAE,CAAE,iBAAkB,CAAC,GAAG,MAAM,EAChC,MAAMF,WAAW,CAAE8B,UAAW,CAAC,CAACK,IAAI,CAAC,CAAC,EACtC,iBACD,CAAC;EACF;AACD,CAAC","ignoreList":[]}
@@ -11,7 +11,6 @@ import { compose } from '@wordpress/compose';
11
11
  */
12
12
  import PublishButtonLabel from './label';
13
13
  import { store as editorStore } from '../../store';
14
- import { unlock } from '../../lock-unlock';
15
14
  import { jsx as _jsx } from "react/jsx-runtime";
16
15
  import { Fragment as _Fragment } from "react/jsx-runtime";
17
16
  const noop = () => {};
@@ -42,18 +41,14 @@ export class PostPublishButton extends Component {
42
41
  return (...args) => {
43
42
  const {
44
43
  hasNonPostEntityChanges,
45
- hasPostMetaChanges,
46
- setEntitiesSavedStatesCallback,
47
- isPublished
44
+ setEntitiesSavedStatesCallback
48
45
  } = this.props;
49
46
  // If a post with non-post entities is published, but the user
50
47
  // elects to not save changes to the non-post entities, those
51
48
  // entities will still be dirty when the Publish button is clicked.
52
49
  // We also need to check that the `setEntitiesSavedStatesCallback`
53
50
  // prop was passed. See https://github.com/WordPress/gutenberg/pull/37383
54
- //
55
- // TODO: Explore how to manage `hasPostMetaChanges` and pre-publish workflow properly.
56
- if ((hasNonPostEntityChanges || hasPostMetaChanges && isPublished) && setEntitiesSavedStatesCallback) {
51
+ if (hasNonPostEntityChanges && setEntitiesSavedStatesCallback) {
57
52
  // The modal for multiple entity saving will open,
58
53
  // hold the callback for saving/publishing the post
59
54
  // so that we can call it if the post entity is checked.
@@ -187,9 +182,8 @@ export default compose([withSelect(select => {
187
182
  hasNonPostEntityChanges,
188
183
  isSavingNonPostEntityChanges,
189
184
  getEditedPostAttribute,
190
- getPostEdits,
191
- hasPostMetaChanges
192
- } = unlock(select(editorStore));
185
+ getPostEdits
186
+ } = select(editorStore);
193
187
  return {
194
188
  isSaving: isSavingPost(),
195
189
  isAutoSaving: isAutosavingPost(),
@@ -205,7 +199,6 @@ export default compose([withSelect(select => {
205
199
  postStatus: getEditedPostAttribute('status'),
206
200
  postStatusHasChanged: getPostEdits()?.status,
207
201
  hasNonPostEntityChanges: hasNonPostEntityChanges(),
208
- hasPostMetaChanges: hasPostMetaChanges(),
209
202
  isSavingNonPostEntityChanges: isSavingNonPostEntityChanges()
210
203
  };
211
204
  }), withDispatch(dispatch => {
@@ -1 +1 @@
1
- {"version":3,"names":["Button","Component","createRef","withSelect","withDispatch","compose","PublishButtonLabel","store","editorStore","unlock","jsx","_jsx","Fragment","_Fragment","noop","PostPublishButton","constructor","props","buttonNode","createOnClick","bind","closeEntitiesSavedStates","state","entitiesSavedStatesCallback","componentDidMount","focusOnMount","timeoutID","setTimeout","current","focus","componentWillUnmount","clearTimeout","callback","args","hasNonPostEntityChanges","hasPostMetaChanges","setEntitiesSavedStatesCallback","isPublished","setState","savedEntities","postType","postId","some","elt","kind","name","key","render","forceIsDirty","hasPublishAction","isBeingScheduled","isOpen","isPostSavingLocked","isPublishable","isSaveable","isSaving","isAutoSaving","isToggle","savePostStatus","onSubmit","onToggle","visibility","isSavingNonPostEntityChanges","postStatus","postStatusHasChanged","isButtonDisabled","isToggleDisabled","publishStatus","onClickButton","onClickToggle","buttonProps","className","isBusy","variant","onClick","toggleProps","size","componentProps","children","ref","select","_getCurrentPost$_link","isSavingPost","isAutosavingPost","isEditedPostBeingScheduled","getEditedPostVisibility","isCurrentPostPublished","isEditedPostSaveable","isEditedPostPublishable","getCurrentPost","getCurrentPostType","getCurrentPostId","getEditedPostAttribute","getPostEdits","_links","status","dispatch","editPost","savePost","undoIgnore"],"sources":["@wordpress/editor/src/components/post-publish-button/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { Component, createRef } from '@wordpress/element';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PublishButtonLabel from './label';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst noop = () => {};\n\nexport class PostPublishButton extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.buttonNode = createRef();\n\n\t\tthis.createOnClick = this.createOnClick.bind( this );\n\t\tthis.closeEntitiesSavedStates =\n\t\t\tthis.closeEntitiesSavedStates.bind( this );\n\n\t\tthis.state = {\n\t\t\tentitiesSavedStatesCallback: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( this.props.focusOnMount ) {\n\t\t\t// This timeout is necessary to make sure the `useEffect` hook of\n\t\t\t// `useFocusReturn` gets the correct element (the button that opens the\n\t\t\t// PostPublishPanel) otherwise it will get this button.\n\t\t\tthis.timeoutID = setTimeout( () => {\n\t\t\t\tthis.buttonNode.current.focus();\n\t\t\t}, 0 );\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.timeoutID );\n\t}\n\n\tcreateOnClick( callback ) {\n\t\treturn ( ...args ) => {\n\t\t\tconst {\n\t\t\t\thasNonPostEntityChanges,\n\t\t\t\thasPostMetaChanges,\n\t\t\t\tsetEntitiesSavedStatesCallback,\n\t\t\t\tisPublished,\n\t\t\t} = this.props;\n\t\t\t// If a post with non-post entities is published, but the user\n\t\t\t// elects to not save changes to the non-post entities, those\n\t\t\t// entities will still be dirty when the Publish button is clicked.\n\t\t\t// We also need to check that the `setEntitiesSavedStatesCallback`\n\t\t\t// prop was passed. See https://github.com/WordPress/gutenberg/pull/37383\n\t\t\t//\n\t\t\t// TODO: Explore how to manage `hasPostMetaChanges` and pre-publish workflow properly.\n\t\t\tif (\n\t\t\t\t( hasNonPostEntityChanges ||\n\t\t\t\t\t( hasPostMetaChanges && isPublished ) ) &&\n\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t) {\n\t\t\t\t// The modal for multiple entity saving will open,\n\t\t\t\t// hold the callback for saving/publishing the post\n\t\t\t\t// so that we can call it if the post entity is checked.\n\t\t\t\tthis.setState( {\n\t\t\t\t\tentitiesSavedStatesCallback: () => callback( ...args ),\n\t\t\t\t} );\n\n\t\t\t\t// Open the save panel by setting its callback.\n\t\t\t\t// To set a function on the useState hook, we must set it\n\t\t\t\t// with another function (() => myFunction). Passing the\n\t\t\t\t// function on its own will cause an error when called.\n\t\t\t\tsetEntitiesSavedStatesCallback(\n\t\t\t\t\t() => this.closeEntitiesSavedStates\n\t\t\t\t);\n\t\t\t\treturn noop;\n\t\t\t}\n\n\t\t\treturn callback( ...args );\n\t\t};\n\t}\n\n\tcloseEntitiesSavedStates( savedEntities ) {\n\t\tconst { postType, postId } = this.props;\n\t\tconst { entitiesSavedStatesCallback } = this.state;\n\t\tthis.setState( { entitiesSavedStatesCallback: false }, () => {\n\t\t\tif (\n\t\t\t\tsavedEntities &&\n\t\t\t\tsavedEntities.some(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind === 'postType' &&\n\t\t\t\t\t\telt.name === postType &&\n\t\t\t\t\t\telt.key === postId\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// The post entity was checked, call the held callback from `createOnClick`.\n\t\t\t\tentitiesSavedStatesCallback();\n\t\t\t}\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tforceIsDirty,\n\t\t\thasPublishAction,\n\t\t\tisBeingScheduled,\n\t\t\tisOpen,\n\t\t\tisPostSavingLocked,\n\t\t\tisPublishable,\n\t\t\tisPublished,\n\t\t\tisSaveable,\n\t\t\tisSaving,\n\t\t\tisAutoSaving,\n\t\t\tisToggle,\n\t\t\tsavePostStatus,\n\t\t\tonSubmit = noop,\n\t\t\tonToggle,\n\t\t\tvisibility,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t\tpostStatus,\n\t\t\tpostStatusHasChanged,\n\t\t} = this.props;\n\n\t\tconst isButtonDisabled =\n\t\t\t( isSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\tisPostSavingLocked ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\tconst isToggleDisabled =\n\t\t\t( isPublished ||\n\t\t\t\tisSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\t// If the new status has not changed explicitely, we derive it from\n\t\t// other factors, like having a publish action, etc.. We need to preserve\n\t\t// this because it affects when to show the pre and post publish panels.\n\t\t// If it has changed though explicitely, we need to respect that.\n\t\tlet publishStatus = 'publish';\n\t\tif ( postStatusHasChanged ) {\n\t\t\tpublishStatus = postStatus;\n\t\t} else if ( ! hasPublishAction ) {\n\t\t\tpublishStatus = 'pending';\n\t\t} else if ( visibility === 'private' ) {\n\t\t\tpublishStatus = 'private';\n\t\t} else if ( isBeingScheduled ) {\n\t\t\tpublishStatus = 'future';\n\t\t}\n\n\t\tconst onClickButton = () => {\n\t\t\tif ( isButtonDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonSubmit();\n\t\t\tsavePostStatus( publishStatus );\n\t\t};\n\n\t\t// Callback to open the publish panel.\n\t\tconst onClickToggle = () => {\n\t\t\tif ( isToggleDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonToggle();\n\t\t};\n\n\t\tconst buttonProps = {\n\t\t\t'aria-disabled': isButtonDisabled,\n\t\t\tclassName: 'editor-post-publish-button',\n\t\t\tisBusy: ! isAutoSaving && isSaving,\n\t\t\tvariant: 'primary',\n\t\t\tonClick: this.createOnClick( onClickButton ),\n\t\t};\n\n\t\tconst toggleProps = {\n\t\t\t'aria-disabled': isToggleDisabled,\n\t\t\t'aria-expanded': isOpen,\n\t\t\tclassName: 'editor-post-publish-panel__toggle',\n\t\t\tisBusy: isSaving && isPublished,\n\t\t\tvariant: 'primary',\n\t\t\tsize: 'compact',\n\t\t\tonClick: this.createOnClick( onClickToggle ),\n\t\t};\n\t\tconst componentProps = isToggle ? toggleProps : buttonProps;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button\n\t\t\t\t\tref={ this.buttonNode }\n\t\t\t\t\t{ ...componentProps }\n\t\t\t\t\tclassName={ `${ componentProps.className } editor-post-publish-button__button` }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t>\n\t\t\t\t\t<PublishButtonLabel />\n\t\t\t\t</Button>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\tisSavingPost,\n\t\t\tisAutosavingPost,\n\t\t\tisEditedPostBeingScheduled,\n\t\t\tgetEditedPostVisibility,\n\t\t\tisCurrentPostPublished,\n\t\t\tisEditedPostSaveable,\n\t\t\tisEditedPostPublishable,\n\t\t\tisPostSavingLocked,\n\t\t\tgetCurrentPost,\n\t\t\tgetCurrentPostType,\n\t\t\tgetCurrentPostId,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetPostEdits,\n\t\t\thasPostMetaChanges,\n\t\t} = unlock( select( editorStore ) );\n\t\treturn {\n\t\t\tisSaving: isSavingPost(),\n\t\t\tisAutoSaving: isAutosavingPost(),\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tvisibility: getEditedPostVisibility(),\n\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\tisPostSavingLocked: isPostSavingLocked(),\n\t\t\tisPublishable: isEditedPostPublishable(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\thasPublishAction:\n\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tpostStatus: getEditedPostAttribute( 'status' ),\n\t\t\tpostStatusHasChanged: getPostEdits()?.status,\n\t\t\thasNonPostEntityChanges: hasNonPostEntityChanges(),\n\t\t\thasPostMetaChanges: hasPostMetaChanges(),\n\t\t\tisSavingNonPostEntityChanges: isSavingNonPostEntityChanges(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, savePost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tsavePostStatus: ( status ) => {\n\t\t\t\teditPost( { status }, { undoIgnore: true } );\n\t\t\t\tsavePost();\n\t\t\t},\n\t\t};\n\t} ),\n] )( PostPublishButton );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Button","Component","createRef","withSelect","withDispatch","compose","PublishButtonLabel","store","editorStore","jsx","_jsx","Fragment","_Fragment","noop","PostPublishButton","constructor","props","buttonNode","createOnClick","bind","closeEntitiesSavedStates","state","entitiesSavedStatesCallback","componentDidMount","focusOnMount","timeoutID","setTimeout","current","focus","componentWillUnmount","clearTimeout","callback","args","hasNonPostEntityChanges","setEntitiesSavedStatesCallback","setState","savedEntities","postType","postId","some","elt","kind","name","key","render","forceIsDirty","hasPublishAction","isBeingScheduled","isOpen","isPostSavingLocked","isPublishable","isPublished","isSaveable","isSaving","isAutoSaving","isToggle","savePostStatus","onSubmit","onToggle","visibility","isSavingNonPostEntityChanges","postStatus","postStatusHasChanged","isButtonDisabled","isToggleDisabled","publishStatus","onClickButton","onClickToggle","buttonProps","className","isBusy","variant","onClick","toggleProps","size","componentProps","children","ref","select","_getCurrentPost$_link","isSavingPost","isAutosavingPost","isEditedPostBeingScheduled","getEditedPostVisibility","isCurrentPostPublished","isEditedPostSaveable","isEditedPostPublishable","getCurrentPost","getCurrentPostType","getCurrentPostId","getEditedPostAttribute","getPostEdits","_links","status","dispatch","editPost","savePost","undoIgnore"],"sources":["@wordpress/editor/src/components/post-publish-button/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { Component, createRef } from '@wordpress/element';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PublishButtonLabel from './label';\nimport { store as editorStore } from '../../store';\n\nconst noop = () => {};\n\nexport class PostPublishButton extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.buttonNode = createRef();\n\n\t\tthis.createOnClick = this.createOnClick.bind( this );\n\t\tthis.closeEntitiesSavedStates =\n\t\t\tthis.closeEntitiesSavedStates.bind( this );\n\n\t\tthis.state = {\n\t\t\tentitiesSavedStatesCallback: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( this.props.focusOnMount ) {\n\t\t\t// This timeout is necessary to make sure the `useEffect` hook of\n\t\t\t// `useFocusReturn` gets the correct element (the button that opens the\n\t\t\t// PostPublishPanel) otherwise it will get this button.\n\t\t\tthis.timeoutID = setTimeout( () => {\n\t\t\t\tthis.buttonNode.current.focus();\n\t\t\t}, 0 );\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.timeoutID );\n\t}\n\n\tcreateOnClick( callback ) {\n\t\treturn ( ...args ) => {\n\t\t\tconst { hasNonPostEntityChanges, setEntitiesSavedStatesCallback } =\n\t\t\t\tthis.props;\n\t\t\t// If a post with non-post entities is published, but the user\n\t\t\t// elects to not save changes to the non-post entities, those\n\t\t\t// entities will still be dirty when the Publish button is clicked.\n\t\t\t// We also need to check that the `setEntitiesSavedStatesCallback`\n\t\t\t// prop was passed. See https://github.com/WordPress/gutenberg/pull/37383\n\t\t\tif ( hasNonPostEntityChanges && setEntitiesSavedStatesCallback ) {\n\t\t\t\t// The modal for multiple entity saving will open,\n\t\t\t\t// hold the callback for saving/publishing the post\n\t\t\t\t// so that we can call it if the post entity is checked.\n\t\t\t\tthis.setState( {\n\t\t\t\t\tentitiesSavedStatesCallback: () => callback( ...args ),\n\t\t\t\t} );\n\n\t\t\t\t// Open the save panel by setting its callback.\n\t\t\t\t// To set a function on the useState hook, we must set it\n\t\t\t\t// with another function (() => myFunction). Passing the\n\t\t\t\t// function on its own will cause an error when called.\n\t\t\t\tsetEntitiesSavedStatesCallback(\n\t\t\t\t\t() => this.closeEntitiesSavedStates\n\t\t\t\t);\n\t\t\t\treturn noop;\n\t\t\t}\n\n\t\t\treturn callback( ...args );\n\t\t};\n\t}\n\n\tcloseEntitiesSavedStates( savedEntities ) {\n\t\tconst { postType, postId } = this.props;\n\t\tconst { entitiesSavedStatesCallback } = this.state;\n\t\tthis.setState( { entitiesSavedStatesCallback: false }, () => {\n\t\t\tif (\n\t\t\t\tsavedEntities &&\n\t\t\t\tsavedEntities.some(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind === 'postType' &&\n\t\t\t\t\t\telt.name === postType &&\n\t\t\t\t\t\telt.key === postId\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// The post entity was checked, call the held callback from `createOnClick`.\n\t\t\t\tentitiesSavedStatesCallback();\n\t\t\t}\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tforceIsDirty,\n\t\t\thasPublishAction,\n\t\t\tisBeingScheduled,\n\t\t\tisOpen,\n\t\t\tisPostSavingLocked,\n\t\t\tisPublishable,\n\t\t\tisPublished,\n\t\t\tisSaveable,\n\t\t\tisSaving,\n\t\t\tisAutoSaving,\n\t\t\tisToggle,\n\t\t\tsavePostStatus,\n\t\t\tonSubmit = noop,\n\t\t\tonToggle,\n\t\t\tvisibility,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t\tpostStatus,\n\t\t\tpostStatusHasChanged,\n\t\t} = this.props;\n\n\t\tconst isButtonDisabled =\n\t\t\t( isSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\tisPostSavingLocked ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\tconst isToggleDisabled =\n\t\t\t( isPublished ||\n\t\t\t\tisSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\t// If the new status has not changed explicitely, we derive it from\n\t\t// other factors, like having a publish action, etc.. We need to preserve\n\t\t// this because it affects when to show the pre and post publish panels.\n\t\t// If it has changed though explicitely, we need to respect that.\n\t\tlet publishStatus = 'publish';\n\t\tif ( postStatusHasChanged ) {\n\t\t\tpublishStatus = postStatus;\n\t\t} else if ( ! hasPublishAction ) {\n\t\t\tpublishStatus = 'pending';\n\t\t} else if ( visibility === 'private' ) {\n\t\t\tpublishStatus = 'private';\n\t\t} else if ( isBeingScheduled ) {\n\t\t\tpublishStatus = 'future';\n\t\t}\n\n\t\tconst onClickButton = () => {\n\t\t\tif ( isButtonDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonSubmit();\n\t\t\tsavePostStatus( publishStatus );\n\t\t};\n\n\t\t// Callback to open the publish panel.\n\t\tconst onClickToggle = () => {\n\t\t\tif ( isToggleDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonToggle();\n\t\t};\n\n\t\tconst buttonProps = {\n\t\t\t'aria-disabled': isButtonDisabled,\n\t\t\tclassName: 'editor-post-publish-button',\n\t\t\tisBusy: ! isAutoSaving && isSaving,\n\t\t\tvariant: 'primary',\n\t\t\tonClick: this.createOnClick( onClickButton ),\n\t\t};\n\n\t\tconst toggleProps = {\n\t\t\t'aria-disabled': isToggleDisabled,\n\t\t\t'aria-expanded': isOpen,\n\t\t\tclassName: 'editor-post-publish-panel__toggle',\n\t\t\tisBusy: isSaving && isPublished,\n\t\t\tvariant: 'primary',\n\t\t\tsize: 'compact',\n\t\t\tonClick: this.createOnClick( onClickToggle ),\n\t\t};\n\t\tconst componentProps = isToggle ? toggleProps : buttonProps;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button\n\t\t\t\t\tref={ this.buttonNode }\n\t\t\t\t\t{ ...componentProps }\n\t\t\t\t\tclassName={ `${ componentProps.className } editor-post-publish-button__button` }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t>\n\t\t\t\t\t<PublishButtonLabel />\n\t\t\t\t</Button>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\tisSavingPost,\n\t\t\tisAutosavingPost,\n\t\t\tisEditedPostBeingScheduled,\n\t\t\tgetEditedPostVisibility,\n\t\t\tisCurrentPostPublished,\n\t\t\tisEditedPostSaveable,\n\t\t\tisEditedPostPublishable,\n\t\t\tisPostSavingLocked,\n\t\t\tgetCurrentPost,\n\t\t\tgetCurrentPostType,\n\t\t\tgetCurrentPostId,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetPostEdits,\n\t\t} = select( editorStore );\n\t\treturn {\n\t\t\tisSaving: isSavingPost(),\n\t\t\tisAutoSaving: isAutosavingPost(),\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tvisibility: getEditedPostVisibility(),\n\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\tisPostSavingLocked: isPostSavingLocked(),\n\t\t\tisPublishable: isEditedPostPublishable(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\thasPublishAction:\n\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tpostStatus: getEditedPostAttribute( 'status' ),\n\t\t\tpostStatusHasChanged: getPostEdits()?.status,\n\t\t\thasNonPostEntityChanges: hasNonPostEntityChanges(),\n\t\t\tisSavingNonPostEntityChanges: isSavingNonPostEntityChanges(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, savePost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tsavePostStatus: ( status ) => {\n\t\t\t\teditPost( { status }, { undoIgnore: true } );\n\t\t\t\tsavePost();\n\t\t\t},\n\t\t};\n\t} ),\n] )( PostPublishButton );\n"],"mappings":"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","ignoreList":[]}