@wordpress/editor 13.34.0 → 13.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/CHANGELOG.md +10 -4
  2. package/build/bindings/pattern-overrides.js +70 -1
  3. package/build/bindings/pattern-overrides.js.map +1 -1
  4. package/build/components/block-settings-menu/content-only-settings-menu.js +126 -0
  5. package/build/components/block-settings-menu/content-only-settings-menu.js.map +1 -0
  6. package/build/components/block-settings-menu/content-only-settings-menu.native.js +11 -0
  7. package/build/components/block-settings-menu/content-only-settings-menu.native.js.map +1 -0
  8. package/build/components/collapsible-block-toolbar/index.js +2 -2
  9. package/build/components/collapsible-block-toolbar/index.js.map +1 -1
  10. package/build/components/document-bar/index.js +2 -2
  11. package/build/components/document-bar/index.js.map +1 -1
  12. package/build/components/document-outline/item.js +2 -2
  13. package/build/components/document-outline/item.js.map +1 -1
  14. package/build/components/document-tools/index.js +15 -18
  15. package/build/components/document-tools/index.js.map +1 -1
  16. package/build/components/editor-canvas/index.js +19 -8
  17. package/build/components/editor-canvas/index.js.map +1 -1
  18. package/build/components/global-keyboard-shortcuts/register-shortcuts.js +1 -1
  19. package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  20. package/build/components/global-styles-provider/index.js +130 -0
  21. package/build/components/global-styles-provider/index.js.map +1 -0
  22. package/build/components/header/index.js +147 -0
  23. package/build/components/header/index.js.map +1 -0
  24. package/build/components/inserter-sidebar/index.js +56 -31
  25. package/build/components/inserter-sidebar/index.js.map +1 -1
  26. package/build/components/keyboard-shortcut-help-modal/index.js +2 -2
  27. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  28. package/build/components/post-actions/actions.js +122 -64
  29. package/build/components/post-actions/actions.js.map +1 -1
  30. package/build/components/post-actions/index.js +7 -14
  31. package/build/components/post-actions/index.js.map +1 -1
  32. package/build/components/post-card-panel/index.js +5 -29
  33. package/build/components/post-card-panel/index.js.map +1 -1
  34. package/build/components/post-comments/index.js +28 -8
  35. package/build/components/post-comments/index.js.map +1 -1
  36. package/build/components/post-discussion/panel.js +103 -21
  37. package/build/components/post-discussion/panel.js.map +1 -1
  38. package/build/components/post-excerpt/panel.js +2 -2
  39. package/build/components/post-excerpt/panel.js.map +1 -1
  40. package/build/components/post-format/panel.js +27 -0
  41. package/build/components/post-format/panel.js.map +1 -0
  42. package/build/components/post-panel-row/index.js +2 -2
  43. package/build/components/post-panel-row/index.js.map +1 -1
  44. package/build/components/post-panel-section/index.js +28 -0
  45. package/build/components/post-panel-section/index.js.map +1 -0
  46. package/build/components/post-pingbacks/index.js +5 -2
  47. package/build/components/post-pingbacks/index.js.map +1 -1
  48. package/build/components/post-saved-state/index.js +2 -2
  49. package/build/components/post-saved-state/index.js.map +1 -1
  50. package/build/components/post-slug/panel.js +27 -0
  51. package/build/components/post-slug/panel.js.map +1 -0
  52. package/build/components/post-status/index.js +4 -4
  53. package/build/components/post-status/index.js.map +1 -1
  54. package/build/components/post-sticky/panel.js +21 -0
  55. package/build/components/post-sticky/panel.js.map +1 -0
  56. package/build/components/post-title/index.js +2 -2
  57. package/build/components/post-title/index.js.map +1 -1
  58. package/build/components/post-title/post-title-raw.js +2 -2
  59. package/build/components/post-title/post-title-raw.js.map +1 -1
  60. package/build/components/post-transform-panel/hooks.js +90 -0
  61. package/build/components/post-transform-panel/hooks.js.map +1 -0
  62. package/build/components/post-transform-panel/index.js +101 -0
  63. package/build/components/post-transform-panel/index.js.map +1 -0
  64. package/build/components/post-trash/panel.js +18 -0
  65. package/build/components/post-trash/panel.js.map +1 -0
  66. package/build/components/post-type-support-check/index.js +1 -1
  67. package/build/components/post-type-support-check/index.js.map +1 -1
  68. package/build/components/preferences-modal/index.js +3 -3
  69. package/build/components/preferences-modal/index.js.map +1 -1
  70. package/build/components/provider/index.js +3 -1
  71. package/build/components/provider/index.js.map +1 -1
  72. package/build/components/provider/use-block-editor-settings.js +21 -3
  73. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  74. package/build/components/sidebar/constants.js +11 -0
  75. package/build/components/sidebar/constants.js.map +1 -0
  76. package/build/components/sidebar/header.js +53 -0
  77. package/build/components/sidebar/header.js.map +1 -0
  78. package/build/components/sidebar/index.js +157 -0
  79. package/build/components/sidebar/index.js.map +1 -0
  80. package/build/components/sidebar/post-summary.js +84 -0
  81. package/build/components/sidebar/post-summary.js.map +1 -0
  82. package/build/components/start-page-options/index.js +5 -7
  83. package/build/components/start-page-options/index.js.map +1 -1
  84. package/build/components/start-template-options/index.js +192 -0
  85. package/build/components/start-template-options/index.js.map +1 -0
  86. package/build/components/template-content-panel/index.js +38 -0
  87. package/build/components/template-content-panel/index.js.map +1 -0
  88. package/build/hooks/pattern-overrides.js +10 -5
  89. package/build/hooks/pattern-overrides.js.map +1 -1
  90. package/build/private-apis.js +7 -12
  91. package/build/private-apis.js.map +1 -1
  92. package/build/private-apis.native.js +72 -0
  93. package/build/private-apis.native.js.map +1 -0
  94. package/build/store/private-selectors.js +6 -1
  95. package/build/store/private-selectors.js.map +1 -1
  96. package/build/store/reducer.js +15 -0
  97. package/build/store/reducer.js.map +1 -1
  98. package/build-module/bindings/pattern-overrides.js +69 -1
  99. package/build-module/bindings/pattern-overrides.js.map +1 -1
  100. package/build-module/components/block-settings-menu/content-only-settings-menu.js +119 -0
  101. package/build-module/components/block-settings-menu/content-only-settings-menu.js.map +1 -0
  102. package/build-module/components/block-settings-menu/content-only-settings-menu.native.js +5 -0
  103. package/build-module/components/block-settings-menu/content-only-settings-menu.native.js.map +1 -0
  104. package/build-module/components/collapsible-block-toolbar/index.js +2 -2
  105. package/build-module/components/collapsible-block-toolbar/index.js.map +1 -1
  106. package/build-module/components/document-bar/index.js +2 -2
  107. package/build-module/components/document-bar/index.js.map +1 -1
  108. package/build-module/components/document-outline/item.js +2 -2
  109. package/build-module/components/document-outline/item.js.map +1 -1
  110. package/build-module/components/document-tools/index.js +16 -19
  111. package/build-module/components/document-tools/index.js.map +1 -1
  112. package/build-module/components/editor-canvas/index.js +19 -8
  113. package/build-module/components/editor-canvas/index.js.map +1 -1
  114. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +1 -1
  115. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  116. package/build-module/components/global-styles-provider/index.js +120 -0
  117. package/build-module/components/global-styles-provider/index.js.map +1 -0
  118. package/build-module/components/header/index.js +139 -0
  119. package/build-module/components/header/index.js.map +1 -0
  120. package/build-module/components/inserter-sidebar/index.js +59 -34
  121. package/build-module/components/inserter-sidebar/index.js.map +1 -1
  122. package/build-module/components/keyboard-shortcut-help-modal/index.js +2 -2
  123. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  124. package/build-module/components/post-actions/actions.js +125 -66
  125. package/build-module/components/post-actions/actions.js.map +1 -1
  126. package/build-module/components/post-actions/index.js +7 -14
  127. package/build-module/components/post-actions/index.js.map +1 -1
  128. package/build-module/components/post-card-panel/index.js +7 -30
  129. package/build-module/components/post-card-panel/index.js.map +1 -1
  130. package/build-module/components/post-comments/index.js +30 -10
  131. package/build-module/components/post-comments/index.js.map +1 -1
  132. package/build-module/components/post-discussion/panel.js +105 -23
  133. package/build-module/components/post-discussion/panel.js.map +1 -1
  134. package/build-module/components/post-excerpt/panel.js +2 -2
  135. package/build-module/components/post-excerpt/panel.js.map +1 -1
  136. package/build-module/components/post-format/panel.js +18 -0
  137. package/build-module/components/post-format/panel.js.map +1 -0
  138. package/build-module/components/post-panel-row/index.js +2 -2
  139. package/build-module/components/post-panel-row/index.js.map +1 -1
  140. package/build-module/components/post-panel-section/index.js +20 -0
  141. package/build-module/components/post-panel-section/index.js.map +1 -0
  142. package/build-module/components/post-pingbacks/index.js +6 -3
  143. package/build-module/components/post-pingbacks/index.js.map +1 -1
  144. package/build-module/components/post-saved-state/index.js +2 -2
  145. package/build-module/components/post-saved-state/index.js.map +1 -1
  146. package/build-module/components/post-slug/panel.js +18 -0
  147. package/build-module/components/post-slug/panel.js.map +1 -0
  148. package/build-module/components/post-status/index.js +4 -4
  149. package/build-module/components/post-status/index.js.map +1 -1
  150. package/build-module/components/post-sticky/panel.js +12 -0
  151. package/build-module/components/post-sticky/panel.js.map +1 -0
  152. package/build-module/components/post-title/index.js +2 -2
  153. package/build-module/components/post-title/index.js.map +1 -1
  154. package/build-module/components/post-title/post-title-raw.js +2 -2
  155. package/build-module/components/post-title/post-title-raw.js.map +1 -1
  156. package/build-module/components/post-transform-panel/hooks.js +83 -0
  157. package/build-module/components/post-transform-panel/hooks.js.map +1 -0
  158. package/build-module/components/post-transform-panel/index.js +94 -0
  159. package/build-module/components/post-transform-panel/index.js.map +1 -0
  160. package/build-module/components/post-trash/panel.js +10 -0
  161. package/build-module/components/post-trash/panel.js.map +1 -0
  162. package/build-module/components/post-type-support-check/index.js +1 -1
  163. package/build-module/components/post-type-support-check/index.js.map +1 -1
  164. package/build-module/components/preferences-modal/index.js +3 -3
  165. package/build-module/components/preferences-modal/index.js.map +1 -1
  166. package/build-module/components/provider/index.js +3 -1
  167. package/build-module/components/provider/index.js.map +1 -1
  168. package/build-module/components/provider/use-block-editor-settings.js +21 -3
  169. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  170. package/build-module/components/sidebar/constants.js +5 -0
  171. package/build-module/components/sidebar/constants.js.map +1 -0
  172. package/build-module/components/sidebar/header.js +46 -0
  173. package/build-module/components/sidebar/header.js.map +1 -0
  174. package/build-module/components/sidebar/index.js +149 -0
  175. package/build-module/components/sidebar/index.js.map +1 -0
  176. package/build-module/components/sidebar/post-summary.js +77 -0
  177. package/build-module/components/sidebar/post-summary.js.map +1 -0
  178. package/build-module/components/start-page-options/index.js +5 -7
  179. package/build-module/components/start-page-options/index.js.map +1 -1
  180. package/build-module/components/start-template-options/index.js +185 -0
  181. package/build-module/components/start-template-options/index.js.map +1 -0
  182. package/build-module/components/template-content-panel/index.js +31 -0
  183. package/build-module/components/template-content-panel/index.js.map +1 -0
  184. package/build-module/hooks/pattern-overrides.js +10 -5
  185. package/build-module/hooks/pattern-overrides.js.map +1 -1
  186. package/build-module/private-apis.js +7 -12
  187. package/build-module/private-apis.js.map +1 -1
  188. package/build-module/private-apis.native.js +62 -0
  189. package/build-module/private-apis.native.js.map +1 -0
  190. package/build-module/store/private-selectors.js +3 -0
  191. package/build-module/store/private-selectors.js.map +1 -1
  192. package/build-module/store/reducer.js +14 -0
  193. package/build-module/store/reducer.js.map +1 -1
  194. package/build-style/style-rtl.css +328 -18
  195. package/build-style/style.css +328 -18
  196. package/package.json +38 -36
  197. package/src/bindings/pattern-overrides.js +83 -1
  198. package/src/components/autocompleters/style.scss +1 -2
  199. package/src/components/block-settings-menu/content-only-settings-menu.js +175 -0
  200. package/src/components/block-settings-menu/content-only-settings-menu.native.js +4 -0
  201. package/src/components/block-settings-menu/style.scss +4 -0
  202. package/src/components/collapsible-block-toolbar/index.js +2 -2
  203. package/src/components/document-bar/index.js +2 -2
  204. package/src/components/document-outline/item.js +2 -2
  205. package/src/components/document-tools/index.js +19 -21
  206. package/src/components/editor-canvas/index.js +18 -6
  207. package/src/components/global-keyboard-shortcuts/register-shortcuts.js +1 -1
  208. package/src/components/global-styles-provider/index.js +162 -0
  209. package/src/components/header/index.js +154 -0
  210. package/src/components/header/style.scss +231 -0
  211. package/src/components/inserter-sidebar/index.js +52 -29
  212. package/src/components/inserter-sidebar/style.scss +10 -3
  213. package/src/components/keyboard-shortcut-help-modal/index.js +2 -2
  214. package/src/components/list-view-sidebar/style.scss +1 -0
  215. package/src/components/page-attributes/test/order.js +5 -1
  216. package/src/components/post-actions/actions.js +256 -150
  217. package/src/components/post-actions/index.js +5 -38
  218. package/src/components/post-card-panel/index.js +39 -85
  219. package/src/components/post-comments/index.js +47 -9
  220. package/src/components/post-discussion/panel.js +108 -31
  221. package/src/components/post-discussion/style.scss +26 -0
  222. package/src/components/post-excerpt/panel.js +2 -2
  223. package/src/components/post-format/panel.js +22 -0
  224. package/src/components/post-format/style.scss +6 -0
  225. package/src/components/post-last-revision/test/check.js +5 -1
  226. package/src/components/post-panel-row/index.js +2 -2
  227. package/src/components/post-panel-section/index.js +19 -0
  228. package/src/components/post-panel-section/style.scss +3 -0
  229. package/src/components/post-pingbacks/index.js +11 -2
  230. package/src/components/post-publish-panel/style.scss +5 -0
  231. package/src/components/post-saved-state/index.js +2 -2
  232. package/src/components/post-slug/panel.js +22 -0
  233. package/src/components/post-slug/style.scss +5 -0
  234. package/src/components/post-slug/test/index.js +5 -1
  235. package/src/components/post-status/index.js +4 -4
  236. package/src/components/post-sticky/panel.js +18 -0
  237. package/src/components/post-title/index.js +2 -2
  238. package/src/components/post-title/post-title-raw.js +2 -2
  239. package/src/components/post-transform-panel/hooks.js +114 -0
  240. package/src/components/post-transform-panel/index.js +99 -0
  241. package/src/components/post-trash/panel.js +13 -0
  242. package/src/components/post-type-support-check/index.js +1 -1
  243. package/src/components/post-type-support-check/test/index.js +2 -2
  244. package/src/components/preferences-modal/index.js +3 -3
  245. package/src/components/provider/index.js +4 -0
  246. package/src/components/provider/use-block-editor-settings.js +19 -4
  247. package/src/components/sidebar/constants.js +4 -0
  248. package/src/components/sidebar/header.js +49 -0
  249. package/src/components/sidebar/index.js +200 -0
  250. package/src/components/sidebar/post-summary.js +104 -0
  251. package/src/components/sidebar/style.scss +18 -0
  252. package/src/components/start-page-options/index.js +6 -4
  253. package/src/components/start-template-options/index.js +219 -0
  254. package/src/components/start-template-options/style.scss +55 -0
  255. package/src/components/template-areas/style.scss +0 -1
  256. package/src/components/template-content-panel/index.js +36 -0
  257. package/src/hooks/pattern-overrides.js +12 -6
  258. package/src/private-apis.js +10 -12
  259. package/src/private-apis.native.js +61 -0
  260. package/src/store/private-selectors.js +3 -0
  261. package/src/store/reducer.js +12 -0
  262. package/src/style.scss +7 -0
  263. package/src/components/post-slug/test/check.js +0 -17
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_data","_compose","_components","_preferences","_element","_interface","_blockEditor","_collapsibleBlockToolbar","_documentBar","_documentTools","_moreMenu","_postPreviewButton","_postPublishButtonOrToggle","_postSavedState","_postTypeSupportCheck","_postViewLink","_previewDropdown","_store","slideY","hidden","y","distractionFreeInactive","hover","transition","type","delay","Header","customSaveButton","forceIsDirty","forceDisableBlockTools","setEntitiesSavedStatesCallback","title","children","isWideViewport","useViewportMatch","isLargeViewport","isTextEditor","isPublishSidebarOpened","showIconLabels","hasFixedToolbar","isNestedEntity","isZoomedOutView","useSelect","select","get","getPreference","preferencesStore","getEditorMode","getEditorSettings","_isPublishSidebarOpened","editorStore","__unstableGetEditorMode","blockEditorStore","onNavigateToPreviousEntityRecord","hasTopToolbar","isBlockToolsCollapsed","setIsBlockToolsCollapsed","useState","_react","createElement","className","__unstableMotion","div","variants","default","disableBlockTools","isCollapsed","onToggle","clsx","supportKeys","forceIsAutosaveable","disabled","PinnedItems","Slot","scope","_default","exports"],"sources":["@wordpress/editor/src/components/header/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { __unstableMotion as motion } from '@wordpress/components';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { useState } from '@wordpress/element';\nimport { PinnedItems } from '@wordpress/interface';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport CollapsableBlockToolbar from '../collapsible-block-toolbar';\nimport DocumentBar from '../document-bar';\nimport DocumentTools from '../document-tools';\nimport MoreMenu from '../more-menu';\nimport PostPreviewButton from '../post-preview-button';\nimport PostPublishButtonOrToggle from '../post-publish-button/post-publish-button-or-toggle';\nimport PostSavedState from '../post-saved-state';\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport PostViewLink from '../post-view-link';\nimport PreviewDropdown from '../preview-dropdown';\nimport { store as editorStore } from '../../store';\n\nconst slideY = {\n\thidden: { y: '-50px' },\n\tdistractionFreeInactive: { y: 0 },\n\thover: { y: 0, transition: { type: 'tween', delay: 0.2 } },\n};\n\nfunction Header( {\n\tcustomSaveButton,\n\tforceIsDirty,\n\tforceDisableBlockTools,\n\tsetEntitiesSavedStatesCallback,\n\ttitle,\n\tchildren,\n} ) {\n\tconst isWideViewport = useViewportMatch( 'large' );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst {\n\t\tisTextEditor,\n\t\tisPublishSidebarOpened,\n\t\tshowIconLabels,\n\t\thasFixedToolbar,\n\t\tisNestedEntity,\n\t\tisZoomedOutView,\n\t} = useSelect( ( select ) => {\n\t\tconst { get: getPreference } = select( preferencesStore );\n\t\tconst {\n\t\t\tgetEditorMode,\n\t\t\tgetEditorSettings,\n\t\t\tisPublishSidebarOpened: _isPublishSidebarOpened,\n\t\t} = select( editorStore );\n\t\tconst { __unstableGetEditorMode } = select( blockEditorStore );\n\n\t\treturn {\n\t\t\tisTextEditor: getEditorMode() === 'text',\n\t\t\tisPublishSidebarOpened: _isPublishSidebarOpened(),\n\t\t\tshowIconLabels: getPreference( 'core', 'showIconLabels' ),\n\t\t\thasFixedToolbar: getPreference( 'core', 'fixedToolbar' ),\n\t\t\tisNestedEntity:\n\t\t\t\t!! getEditorSettings().onNavigateToPreviousEntityRecord,\n\t\t\tisZoomedOutView: __unstableGetEditorMode() === 'zoom-out',\n\t\t};\n\t}, [] );\n\n\tconst hasTopToolbar = isLargeViewport && hasFixedToolbar;\n\n\tconst [ isBlockToolsCollapsed, setIsBlockToolsCollapsed ] =\n\t\tuseState( true );\n\n\t// The edit-post-header classname is only kept for backward compatibilty\n\t// as some plugins might be relying on its presence.\n\treturn (\n\t\t<div className=\"editor-header edit-post-header\">\n\t\t\t{ children }\n\t\t\t<motion.div\n\t\t\t\tvariants={ slideY }\n\t\t\t\ttransition={ { type: 'tween', delay: 0.8 } }\n\t\t\t\tclassName=\"editor-header__toolbar\"\n\t\t\t>\n\t\t\t\t<DocumentTools\n\t\t\t\t\tdisableBlockTools={ forceDisableBlockTools || isTextEditor }\n\t\t\t\t/>\n\t\t\t\t{ hasTopToolbar && (\n\t\t\t\t\t<CollapsableBlockToolbar\n\t\t\t\t\t\tisCollapsed={ isBlockToolsCollapsed }\n\t\t\t\t\t\tonToggle={ setIsBlockToolsCollapsed }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( 'editor-header__center', {\n\t\t\t\t\t\t'is-collapsed':\n\t\t\t\t\t\t\t! isBlockToolsCollapsed && hasTopToolbar,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ ! title ? (\n\t\t\t\t\t\t<PostTypeSupportCheck supportKeys=\"title\">\n\t\t\t\t\t\t\t<DocumentBar />\n\t\t\t\t\t\t</PostTypeSupportCheck>\n\t\t\t\t\t) : (\n\t\t\t\t\t\ttitle\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</motion.div>\n\t\t\t<motion.div\n\t\t\t\tvariants={ slideY }\n\t\t\t\ttransition={ { type: 'tween', delay: 0.8 } }\n\t\t\t\tclassName=\"editor-header__settings\"\n\t\t\t>\n\t\t\t\t{ ! customSaveButton && ! isPublishSidebarOpened && (\n\t\t\t\t\t// This button isn't completely hidden by the publish sidebar.\n\t\t\t\t\t// We can't hide the whole toolbar when the publish sidebar is open because\n\t\t\t\t\t// we want to prevent mounting/unmounting the PostPublishButtonOrToggle DOM node.\n\t\t\t\t\t// We track that DOM node to return focus to the PostPublishButtonOrToggle\n\t\t\t\t\t// when the publish sidebar has been closed.\n\t\t\t\t\t<PostSavedState forceIsDirty={ forceIsDirty } />\n\t\t\t\t) }\n\t\t\t\t<PreviewDropdown\n\t\t\t\t\tforceIsAutosaveable={ forceIsDirty }\n\t\t\t\t\tdisabled={ isNestedEntity || isZoomedOutView }\n\t\t\t\t/>\n\t\t\t\t<PostPreviewButton\n\t\t\t\t\tclassName=\"editor-header__post-preview-button\"\n\t\t\t\t\tforceIsAutosaveable={ forceIsDirty }\n\t\t\t\t/>\n\t\t\t\t<PostViewLink />\n\t\t\t\t{ ! customSaveButton && (\n\t\t\t\t\t<PostPublishButtonOrToggle\n\t\t\t\t\t\tforceIsDirty={ forceIsDirty }\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ customSaveButton }\n\t\t\t\t{ ( isWideViewport || ! showIconLabels ) && (\n\t\t\t\t\t<PinnedItems.Slot scope=\"core\" />\n\t\t\t\t) }\n\t\t\t\t<MoreMenu />\n\t\t\t</motion.div>\n\t\t</div>\n\t);\n}\n\nexport default Header;\n"],"mappings":"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","ignoreList":[]}
@@ -6,13 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = InserterSidebar;
7
7
  var _react = require("react");
8
8
  var _data = require("@wordpress/data");
9
- var _components = require("@wordpress/components");
10
9
  var _blockEditor = require("@wordpress/block-editor");
11
- var _icons = require("@wordpress/icons");
12
10
  var _compose = require("@wordpress/compose");
13
- var _i18n = require("@wordpress/i18n");
14
11
  var _element = require("@wordpress/element");
15
12
  var _preferences = require("@wordpress/preferences");
13
+ var _keycodes = require("@wordpress/keycodes");
16
14
  var _lockUnlock = require("../../lock-unlock");
17
15
  var _store = require("../../store");
18
16
  /**
@@ -28,51 +26,78 @@ function InserterSidebar({
28
26
  isRightSidebarOpen
29
27
  }) {
30
28
  const {
29
+ blockSectionRootClientId,
30
+ inserterSidebarToggleRef,
31
31
  insertionPoint,
32
32
  showMostUsedBlocks
33
33
  } = (0, _data.useSelect)(select => {
34
34
  const {
35
+ getInserterSidebarToggleRef,
35
36
  getInsertionPoint
36
37
  } = (0, _lockUnlock.unlock)(select(_store.store));
38
+ const {
39
+ getBlockRootClientId,
40
+ __unstableGetEditorMode,
41
+ getSettings
42
+ } = select(_blockEditor.store);
37
43
  const {
38
44
  get
39
45
  } = select(_preferences.store);
46
+ const getBlockSectionRootClientId = () => {
47
+ if (__unstableGetEditorMode() === 'zoom-out') {
48
+ const {
49
+ sectionRootClientId
50
+ } = (0, _lockUnlock.unlock)(getSettings());
51
+ if (sectionRootClientId) {
52
+ return sectionRootClientId;
53
+ }
54
+ }
55
+ return getBlockRootClientId();
56
+ };
40
57
  return {
58
+ inserterSidebarToggleRef: getInserterSidebarToggleRef(),
41
59
  insertionPoint: getInsertionPoint(),
42
- showMostUsedBlocks: get('core', 'mostUsedBlocks')
60
+ showMostUsedBlocks: get('core', 'mostUsedBlocks'),
61
+ blockSectionRootClientId: getBlockSectionRootClientId()
43
62
  };
44
63
  }, []);
45
64
  const {
46
65
  setIsInserterOpened
47
66
  } = (0, _data.useDispatch)(_store.store);
48
67
  const isMobileViewport = (0, _compose.useViewportMatch)('medium', '<');
49
- const TagName = !isMobileViewport ? _components.VisuallyHidden : 'div';
50
- const [inserterDialogRef, inserterDialogProps] = (0, _compose.__experimentalUseDialog)({
51
- onClose: () => setIsInserterOpened(false),
52
- focusOnMount: true
53
- });
54
68
  const libraryRef = (0, _element.useRef)();
55
- return (0, _react.createElement)("div", {
56
- ref: inserterDialogRef,
57
- ...inserterDialogProps,
58
- className: "editor-inserter-sidebar"
59
- }, (0, _react.createElement)(TagName, {
60
- className: "editor-inserter-sidebar__header"
61
- }, (0, _react.createElement)(_components.Button, {
62
- icon: _icons.close,
63
- label: (0, _i18n.__)('Close block inserter'),
64
- onClick: () => setIsInserterOpened(false)
65
- })), (0, _react.createElement)("div", {
66
- className: "editor-inserter-sidebar__content"
67
- }, (0, _react.createElement)(_blockEditor.__experimentalLibrary, {
68
- showMostUsedBlocks: showMostUsedBlocks,
69
- showInserterHelpPanel: true,
70
- shouldFocusBlock: isMobileViewport,
71
- rootClientId: insertionPoint.rootClientId,
72
- __experimentalInsertionIndex: insertionPoint.insertionIndex,
73
- __experimentalFilterValue: insertionPoint.filterValue,
74
- __experimentalOnPatternCategorySelection: isRightSidebarOpen ? closeGeneralSidebar : undefined,
75
- ref: libraryRef
76
- })));
69
+
70
+ // When closing the inserter, focus should return to the toggle button.
71
+ const closeInserterSidebar = (0, _element.useCallback)(() => {
72
+ setIsInserterOpened(false);
73
+ inserterSidebarToggleRef.current?.focus();
74
+ }, [inserterSidebarToggleRef, setIsInserterOpened]);
75
+ const closeOnEscape = (0, _element.useCallback)(event => {
76
+ if (event.keyCode === _keycodes.ESCAPE && !event.defaultPrevented) {
77
+ event.preventDefault();
78
+ closeInserterSidebar();
79
+ }
80
+ }, [closeInserterSidebar]);
81
+ return (
82
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
83
+ (0, _react.createElement)("div", {
84
+ onKeyDown: closeOnEscape,
85
+ className: "editor-inserter-sidebar"
86
+ }, (0, _react.createElement)("div", {
87
+ className: "editor-inserter-sidebar__content"
88
+ }, (0, _react.createElement)(_blockEditor.__experimentalLibrary, {
89
+ showMostUsedBlocks: showMostUsedBlocks,
90
+ showInserterHelpPanel: true,
91
+ shouldFocusBlock: isMobileViewport,
92
+ rootClientId: blockSectionRootClientId !== null && blockSectionRootClientId !== void 0 ? blockSectionRootClientId : insertionPoint.rootClientId,
93
+ __experimentalInsertionIndex: insertionPoint.insertionIndex,
94
+ __experimentalInitialTab: insertionPoint.tab,
95
+ __experimentalInitialCategory: insertionPoint.category,
96
+ __experimentalFilterValue: insertionPoint.filterValue,
97
+ __experimentalOnPatternCategorySelection: isRightSidebarOpen ? closeGeneralSidebar : undefined,
98
+ ref: libraryRef,
99
+ onClose: closeInserterSidebar
100
+ })))
101
+ );
77
102
  }
78
103
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_components","_blockEditor","_icons","_compose","_i18n","_element","_preferences","_lockUnlock","_store","InserterSidebar","closeGeneralSidebar","isRightSidebarOpen","insertionPoint","showMostUsedBlocks","useSelect","select","getInsertionPoint","unlock","editorStore","get","preferencesStore","setIsInserterOpened","useDispatch","isMobileViewport","useViewportMatch","TagName","VisuallyHidden","inserterDialogRef","inserterDialogProps","useDialog","onClose","focusOnMount","libraryRef","useRef","_react","createElement","ref","className","Button","icon","close","label","__","onClick","__experimentalLibrary","showInserterHelpPanel","shouldFocusBlock","rootClientId","__experimentalInsertionIndex","insertionIndex","__experimentalFilterValue","filterValue","__experimentalOnPatternCategorySelection","undefined"],"sources":["@wordpress/editor/src/components/inserter-sidebar/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { Button, VisuallyHidden } from '@wordpress/components';\nimport { __experimentalLibrary as Library } from '@wordpress/block-editor';\nimport { close } from '@wordpress/icons';\nimport {\n\tuseViewportMatch,\n\t__experimentalUseDialog as useDialog,\n} from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { useRef } from '@wordpress/element';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editorStore } from '../../store';\n\nexport default function InserterSidebar( {\n\tcloseGeneralSidebar,\n\tisRightSidebarOpen,\n} ) {\n\tconst { insertionPoint, showMostUsedBlocks } = useSelect( ( select ) => {\n\t\tconst { getInsertionPoint } = unlock( select( editorStore ) );\n\t\tconst { get } = select( preferencesStore );\n\t\treturn {\n\t\t\tinsertionPoint: getInsertionPoint(),\n\t\t\tshowMostUsedBlocks: get( 'core', 'mostUsedBlocks' ),\n\t\t};\n\t}, [] );\n\tconst { setIsInserterOpened } = useDispatch( editorStore );\n\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst TagName = ! isMobileViewport ? VisuallyHidden : 'div';\n\tconst [ inserterDialogRef, inserterDialogProps ] = useDialog( {\n\t\tonClose: () => setIsInserterOpened( false ),\n\t\tfocusOnMount: true,\n\t} );\n\n\tconst libraryRef = useRef();\n\n\treturn (\n\t\t<div\n\t\t\tref={ inserterDialogRef }\n\t\t\t{ ...inserterDialogProps }\n\t\t\tclassName=\"editor-inserter-sidebar\"\n\t\t>\n\t\t\t<TagName className=\"editor-inserter-sidebar__header\">\n\t\t\t\t<Button\n\t\t\t\t\ticon={ close }\n\t\t\t\t\tlabel={ __( 'Close block inserter' ) }\n\t\t\t\t\tonClick={ () => setIsInserterOpened( false ) }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t\t<div className=\"editor-inserter-sidebar__content\">\n\t\t\t\t<Library\n\t\t\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t\t\tshowInserterHelpPanel\n\t\t\t\t\tshouldFocusBlock={ isMobileViewport }\n\t\t\t\t\trootClientId={ insertionPoint.rootClientId }\n\t\t\t\t\t__experimentalInsertionIndex={\n\t\t\t\t\t\tinsertionPoint.insertionIndex\n\t\t\t\t\t}\n\t\t\t\t\t__experimentalFilterValue={ insertionPoint.filterValue }\n\t\t\t\t\t__experimentalOnPatternCategorySelection={\n\t\t\t\t\t\tisRightSidebarOpen ? closeGeneralSidebar : undefined\n\t\t\t\t\t}\n\t\t\t\t\tref={ libraryRef }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAIA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AAKA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AAnBA;AACA;AACA;;AAaA;AACA;AACA;;AAIe,SAASU,eAAeA,CAAE;EACxCC,mBAAmB;EACnBC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,cAAc;IAAEC;EAAmB,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACvE,MAAM;MAAEC;IAAkB,CAAC,GAAG,IAAAC,kBAAM,EAAEF,MAAM,CAAEG,YAAY,CAAE,CAAC;IAC7D,MAAM;MAAEC;IAAI,CAAC,GAAGJ,MAAM,CAAEK,kBAAiB,CAAC;IAC1C,OAAO;MACNR,cAAc,EAAEI,iBAAiB,CAAC,CAAC;MACnCH,kBAAkB,EAAEM,GAAG,CAAE,MAAM,EAAE,gBAAiB;IACnD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAM;IAAEE;EAAoB,CAAC,GAAG,IAAAC,iBAAW,EAAEJ,YAAY,CAAC;EAE1D,MAAMK,gBAAgB,GAAG,IAAAC,yBAAgB,EAAE,QAAQ,EAAE,GAAI,CAAC;EAC1D,MAAMC,OAAO,GAAG,CAAEF,gBAAgB,GAAGG,0BAAc,GAAG,KAAK;EAC3D,MAAM,CAAEC,iBAAiB,EAAEC,mBAAmB,CAAE,GAAG,IAAAC,gCAAS,EAAE;IAC7DC,OAAO,EAAEA,CAAA,KAAMT,mBAAmB,CAAE,KAAM,CAAC;IAC3CU,YAAY,EAAE;EACf,CAAE,CAAC;EAEH,MAAMC,UAAU,GAAG,IAAAC,eAAM,EAAC,CAAC;EAE3B,OACC,IAAAC,MAAA,CAAAC,aAAA;IACCC,GAAG,EAAGT,iBAAmB;IAAA,GACpBC,mBAAmB;IACxBS,SAAS,EAAC;EAAyB,GAEnC,IAAAH,MAAA,CAAAC,aAAA,EAACV,OAAO;IAACY,SAAS,EAAC;EAAiC,GACnD,IAAAH,MAAA,CAAAC,aAAA,EAACnC,WAAA,CAAAsC,MAAM;IACNC,IAAI,EAAGC,YAAO;IACdC,KAAK,EAAG,IAAAC,QAAE,EAAE,sBAAuB,CAAG;IACtCC,OAAO,EAAGA,CAAA,KAAMtB,mBAAmB,CAAE,KAAM;EAAG,CAC9C,CACO,CAAC,EACV,IAAAa,MAAA,CAAAC,aAAA;IAAKE,SAAS,EAAC;EAAkC,GAChD,IAAAH,MAAA,CAAAC,aAAA,EAAClC,YAAA,CAAA2C,qBAAO;IACP/B,kBAAkB,EAAGA,kBAAoB;IACzCgC,qBAAqB;IACrBC,gBAAgB,EAAGvB,gBAAkB;IACrCwB,YAAY,EAAGnC,cAAc,CAACmC,YAAc;IAC5CC,4BAA4B,EAC3BpC,cAAc,CAACqC,cACf;IACDC,yBAAyB,EAAGtC,cAAc,CAACuC,WAAa;IACxDC,wCAAwC,EACvCzC,kBAAkB,GAAGD,mBAAmB,GAAG2C,SAC3C;IACDjB,GAAG,EAAGJ;EAAY,CAClB,CACG,CACD,CAAC;AAER","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_blockEditor","_compose","_element","_preferences","_keycodes","_lockUnlock","_store","InserterSidebar","closeGeneralSidebar","isRightSidebarOpen","blockSectionRootClientId","inserterSidebarToggleRef","insertionPoint","showMostUsedBlocks","useSelect","select","getInserterSidebarToggleRef","getInsertionPoint","unlock","editorStore","getBlockRootClientId","__unstableGetEditorMode","getSettings","blockEditorStore","get","preferencesStore","getBlockSectionRootClientId","sectionRootClientId","setIsInserterOpened","useDispatch","isMobileViewport","useViewportMatch","libraryRef","useRef","closeInserterSidebar","useCallback","current","focus","closeOnEscape","event","keyCode","ESCAPE","defaultPrevented","preventDefault","_react","createElement","onKeyDown","className","__experimentalLibrary","showInserterHelpPanel","shouldFocusBlock","rootClientId","__experimentalInsertionIndex","insertionIndex","__experimentalInitialTab","tab","__experimentalInitialCategory","category","__experimentalFilterValue","filterValue","__experimentalOnPatternCategorySelection","undefined","ref","onClose"],"sources":["@wordpress/editor/src/components/inserter-sidebar/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\t__experimentalLibrary as Library,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useCallback, useRef } from '@wordpress/element';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editorStore } from '../../store';\n\nexport default function InserterSidebar( {\n\tcloseGeneralSidebar,\n\tisRightSidebarOpen,\n} ) {\n\tconst {\n\t\tblockSectionRootClientId,\n\t\tinserterSidebarToggleRef,\n\t\tinsertionPoint,\n\t\tshowMostUsedBlocks,\n\t} = useSelect( ( select ) => {\n\t\tconst { getInserterSidebarToggleRef, getInsertionPoint } = unlock(\n\t\t\tselect( editorStore )\n\t\t);\n\t\tconst { getBlockRootClientId, __unstableGetEditorMode, getSettings } =\n\t\t\tselect( blockEditorStore );\n\t\tconst { get } = select( preferencesStore );\n\t\tconst getBlockSectionRootClientId = () => {\n\t\t\tif ( __unstableGetEditorMode() === 'zoom-out' ) {\n\t\t\t\tconst { sectionRootClientId } = unlock( getSettings() );\n\t\t\t\tif ( sectionRootClientId ) {\n\t\t\t\t\treturn sectionRootClientId;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn getBlockRootClientId();\n\t\t};\n\t\treturn {\n\t\t\tinserterSidebarToggleRef: getInserterSidebarToggleRef(),\n\t\t\tinsertionPoint: getInsertionPoint(),\n\t\t\tshowMostUsedBlocks: get( 'core', 'mostUsedBlocks' ),\n\t\t\tblockSectionRootClientId: getBlockSectionRootClientId(),\n\t\t};\n\t}, [] );\n\tconst { setIsInserterOpened } = useDispatch( editorStore );\n\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst libraryRef = useRef();\n\n\t// When closing the inserter, focus should return to the toggle button.\n\tconst closeInserterSidebar = useCallback( () => {\n\t\tsetIsInserterOpened( false );\n\t\tinserterSidebarToggleRef.current?.focus();\n\t}, [ inserterSidebarToggleRef, setIsInserterOpened ] );\n\n\tconst closeOnEscape = useCallback(\n\t\t( event ) => {\n\t\t\tif ( event.keyCode === ESCAPE && ! event.defaultPrevented ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tcloseInserterSidebar();\n\t\t\t}\n\t\t},\n\t\t[ closeInserterSidebar ]\n\t);\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div onKeyDown={ closeOnEscape } className=\"editor-inserter-sidebar\">\n\t\t\t<div className=\"editor-inserter-sidebar__content\">\n\t\t\t\t<Library\n\t\t\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t\t\tshowInserterHelpPanel\n\t\t\t\t\tshouldFocusBlock={ isMobileViewport }\n\t\t\t\t\trootClientId={\n\t\t\t\t\t\tblockSectionRootClientId ?? insertionPoint.rootClientId\n\t\t\t\t\t}\n\t\t\t\t\t__experimentalInsertionIndex={\n\t\t\t\t\t\tinsertionPoint.insertionIndex\n\t\t\t\t\t}\n\t\t\t\t\t__experimentalInitialTab={ insertionPoint.tab }\n\t\t\t\t\t__experimentalInitialCategory={ insertionPoint.category }\n\t\t\t\t\t__experimentalFilterValue={ insertionPoint.filterValue }\n\t\t\t\t\t__experimentalOnPatternCategorySelection={\n\t\t\t\t\t\tisRightSidebarOpen ? closeGeneralSidebar : undefined\n\t\t\t\t\t}\n\t\t\t\t\tref={ libraryRef }\n\t\t\t\t\tonClose={ closeInserterSidebar }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _react = require("react");
9
- var _classnames = _interopRequireDefault(require("classnames"));
9
+ var _clsx = _interopRequireDefault(require("clsx"));
10
10
  var _components = require("@wordpress/components");
11
11
  var _i18n = require("@wordpress/i18n");
12
12
  var _keyboardShortcuts = require("@wordpress/keyboard-shortcuts");
@@ -53,7 +53,7 @@ const ShortcutSection = ({
53
53
  shortcuts,
54
54
  className
55
55
  }) => (0, _react.createElement)("section", {
56
- className: (0, _classnames.default)('editor-keyboard-shortcut-help-modal__section', className)
56
+ className: (0, _clsx.default)('editor-keyboard-shortcut-help-modal__section', className)
57
57
  }, !!title && (0, _react.createElement)("h2", {
58
58
  className: "editor-keyboard-shortcut-help-modal__section-title"
59
59
  }, title), (0, _react.createElement)(ShortcutList, {
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_components","_i18n","_keyboardShortcuts","_data","_interface","_config","_shortcut","_dynamicShortcut","KEYBOARD_SHORTCUT_HELP_MODAL_NAME","ShortcutList","shortcuts","_react","createElement","className","role","map","shortcut","index","key","default","name","ShortcutSection","title","classnames","ShortcutCategorySection","categoryName","additionalShortcuts","categoryShortcuts","useSelect","select","keyboardShortcutsStore","getCategoryShortcuts","concat","KeyboardShortcutHelpModal","isModalActive","interfaceStore","openModal","closeModal","useDispatch","toggleModal","useShortcut","Modal","__","closeButtonLabel","onRequestClose","keyCombination","character","description","ariaLabel","textFormattingShortcuts","_default","exports"],"sources":["@wordpress/editor/src/components/keyboard-shortcut-help-modal/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseShortcut,\n\tstore as keyboardShortcutsStore,\n} from '@wordpress/keyboard-shortcuts';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport { textFormattingShortcuts } from './config';\nimport Shortcut from './shortcut';\nimport DynamicShortcut from './dynamic-shortcut';\n\nconst KEYBOARD_SHORTCUT_HELP_MODAL_NAME = 'editor/keyboard-shortcut-help';\n\nconst ShortcutList = ( { shortcuts } ) => (\n\t/*\n\t * Disable reason: The `list` ARIA role is redundant but\n\t * Safari+VoiceOver won't announce the list otherwise.\n\t */\n\t/* eslint-disable jsx-a11y/no-redundant-roles */\n\t<ul\n\t\tclassName=\"editor-keyboard-shortcut-help-modal__shortcut-list\"\n\t\trole=\"list\"\n\t>\n\t\t{ shortcuts.map( ( shortcut, index ) => (\n\t\t\t<li\n\t\t\t\tclassName=\"editor-keyboard-shortcut-help-modal__shortcut\"\n\t\t\t\tkey={ index }\n\t\t\t>\n\t\t\t\t{ typeof shortcut === 'string' ? (\n\t\t\t\t\t<DynamicShortcut name={ shortcut } />\n\t\t\t\t) : (\n\t\t\t\t\t<Shortcut { ...shortcut } />\n\t\t\t\t) }\n\t\t\t</li>\n\t\t) ) }\n\t</ul>\n\t/* eslint-enable jsx-a11y/no-redundant-roles */\n);\n\nconst ShortcutSection = ( { title, shortcuts, className } ) => (\n\t<section\n\t\tclassName={ classnames(\n\t\t\t'editor-keyboard-shortcut-help-modal__section',\n\t\t\tclassName\n\t\t) }\n\t>\n\t\t{ !! title && (\n\t\t\t<h2 className=\"editor-keyboard-shortcut-help-modal__section-title\">\n\t\t\t\t{ title }\n\t\t\t</h2>\n\t\t) }\n\t\t<ShortcutList shortcuts={ shortcuts } />\n\t</section>\n);\n\nconst ShortcutCategorySection = ( {\n\ttitle,\n\tcategoryName,\n\tadditionalShortcuts = [],\n} ) => {\n\tconst categoryShortcuts = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( keyboardShortcutsStore ).getCategoryShortcuts(\n\t\t\t\tcategoryName\n\t\t\t);\n\t\t},\n\t\t[ categoryName ]\n\t);\n\n\treturn (\n\t\t<ShortcutSection\n\t\t\ttitle={ title }\n\t\t\tshortcuts={ categoryShortcuts.concat( additionalShortcuts ) }\n\t\t/>\n\t);\n};\n\nfunction KeyboardShortcutHelpModal() {\n\tconst isModalActive = useSelect(\n\t\t( select ) =>\n\t\t\tselect( interfaceStore ).isModalActive(\n\t\t\t\tKEYBOARD_SHORTCUT_HELP_MODAL_NAME\n\t\t\t),\n\t\t[]\n\t);\n\tconst { openModal, closeModal } = useDispatch( interfaceStore );\n\tconst toggleModal = () => {\n\t\tif ( isModalActive ) {\n\t\t\tcloseModal();\n\t\t} else {\n\t\t\topenModal( KEYBOARD_SHORTCUT_HELP_MODAL_NAME );\n\t\t}\n\t};\n\tuseShortcut( 'core/editor/keyboard-shortcuts', toggleModal );\n\n\tif ( ! isModalActive ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"editor-keyboard-shortcut-help-modal\"\n\t\t\ttitle={ __( 'Keyboard shortcuts' ) }\n\t\t\tcloseButtonLabel={ __( 'Close' ) }\n\t\t\tonRequestClose={ toggleModal }\n\t\t>\n\t\t\t<ShortcutSection\n\t\t\t\tclassName=\"editor-keyboard-shortcut-help-modal__main-shortcuts\"\n\t\t\t\tshortcuts={ [ 'core/editor/keyboard-shortcuts' ] }\n\t\t\t/>\n\t\t\t<ShortcutCategorySection\n\t\t\t\ttitle={ __( 'Global shortcuts' ) }\n\t\t\t\tcategoryName=\"global\"\n\t\t\t/>\n\n\t\t\t<ShortcutCategorySection\n\t\t\t\ttitle={ __( 'Selection shortcuts' ) }\n\t\t\t\tcategoryName=\"selection\"\n\t\t\t/>\n\n\t\t\t<ShortcutCategorySection\n\t\t\t\ttitle={ __( 'Block shortcuts' ) }\n\t\t\t\tcategoryName=\"block\"\n\t\t\t\tadditionalShortcuts={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tkeyCombination: { character: '/' },\n\t\t\t\t\t\tdescription: __(\n\t\t\t\t\t\t\t'Change the block type after adding a new paragraph.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t/* translators: The forward-slash character. e.g. '/'. */\n\t\t\t\t\t\tariaLabel: __( 'Forward-slash' ),\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t\t<ShortcutSection\n\t\t\t\ttitle={ __( 'Text formatting' ) }\n\t\t\t\tshortcuts={ textFormattingShortcuts }\n\t\t\t/>\n\t\t\t<ShortcutCategorySection\n\t\t\t\ttitle={ __( 'List View shortcuts' ) }\n\t\t\t\tcategoryName=\"list-view\"\n\t\t\t/>\n\t\t</Modal>\n\t);\n}\n\nexport default KeyboardShortcutHelpModal;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_keyboardShortcuts","_data","_interface","_config","_shortcut","_dynamicShortcut","KEYBOARD_SHORTCUT_HELP_MODAL_NAME","ShortcutList","shortcuts","_react","createElement","className","role","map","shortcut","index","key","default","name","ShortcutSection","title","clsx","ShortcutCategorySection","categoryName","additionalShortcuts","categoryShortcuts","useSelect","select","keyboardShortcutsStore","getCategoryShortcuts","concat","KeyboardShortcutHelpModal","isModalActive","interfaceStore","openModal","closeModal","useDispatch","toggleModal","useShortcut","Modal","__","closeButtonLabel","onRequestClose","keyCombination","character","description","ariaLabel","textFormattingShortcuts","_default","exports"],"sources":["@wordpress/editor/src/components/keyboard-shortcut-help-modal/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseShortcut,\n\tstore as keyboardShortcutsStore,\n} from '@wordpress/keyboard-shortcuts';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport { textFormattingShortcuts } from './config';\nimport Shortcut from './shortcut';\nimport DynamicShortcut from './dynamic-shortcut';\n\nconst KEYBOARD_SHORTCUT_HELP_MODAL_NAME = 'editor/keyboard-shortcut-help';\n\nconst ShortcutList = ( { shortcuts } ) => (\n\t/*\n\t * Disable reason: The `list` ARIA role is redundant but\n\t * Safari+VoiceOver won't announce the list otherwise.\n\t */\n\t/* eslint-disable jsx-a11y/no-redundant-roles */\n\t<ul\n\t\tclassName=\"editor-keyboard-shortcut-help-modal__shortcut-list\"\n\t\trole=\"list\"\n\t>\n\t\t{ shortcuts.map( ( shortcut, index ) => (\n\t\t\t<li\n\t\t\t\tclassName=\"editor-keyboard-shortcut-help-modal__shortcut\"\n\t\t\t\tkey={ index }\n\t\t\t>\n\t\t\t\t{ typeof shortcut === 'string' ? (\n\t\t\t\t\t<DynamicShortcut name={ shortcut } />\n\t\t\t\t) : (\n\t\t\t\t\t<Shortcut { ...shortcut } />\n\t\t\t\t) }\n\t\t\t</li>\n\t\t) ) }\n\t</ul>\n\t/* eslint-enable jsx-a11y/no-redundant-roles */\n);\n\nconst ShortcutSection = ( { title, shortcuts, className } ) => (\n\t<section\n\t\tclassName={ clsx(\n\t\t\t'editor-keyboard-shortcut-help-modal__section',\n\t\t\tclassName\n\t\t) }\n\t>\n\t\t{ !! title && (\n\t\t\t<h2 className=\"editor-keyboard-shortcut-help-modal__section-title\">\n\t\t\t\t{ title }\n\t\t\t</h2>\n\t\t) }\n\t\t<ShortcutList shortcuts={ shortcuts } />\n\t</section>\n);\n\nconst ShortcutCategorySection = ( {\n\ttitle,\n\tcategoryName,\n\tadditionalShortcuts = [],\n} ) => {\n\tconst categoryShortcuts = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( keyboardShortcutsStore ).getCategoryShortcuts(\n\t\t\t\tcategoryName\n\t\t\t);\n\t\t},\n\t\t[ categoryName ]\n\t);\n\n\treturn (\n\t\t<ShortcutSection\n\t\t\ttitle={ title }\n\t\t\tshortcuts={ categoryShortcuts.concat( additionalShortcuts ) }\n\t\t/>\n\t);\n};\n\nfunction KeyboardShortcutHelpModal() {\n\tconst isModalActive = useSelect(\n\t\t( select ) =>\n\t\t\tselect( interfaceStore ).isModalActive(\n\t\t\t\tKEYBOARD_SHORTCUT_HELP_MODAL_NAME\n\t\t\t),\n\t\t[]\n\t);\n\tconst { openModal, closeModal } = useDispatch( interfaceStore );\n\tconst toggleModal = () => {\n\t\tif ( isModalActive ) {\n\t\t\tcloseModal();\n\t\t} else {\n\t\t\topenModal( KEYBOARD_SHORTCUT_HELP_MODAL_NAME );\n\t\t}\n\t};\n\tuseShortcut( 'core/editor/keyboard-shortcuts', toggleModal );\n\n\tif ( ! isModalActive ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"editor-keyboard-shortcut-help-modal\"\n\t\t\ttitle={ __( 'Keyboard shortcuts' ) }\n\t\t\tcloseButtonLabel={ __( 'Close' ) }\n\t\t\tonRequestClose={ toggleModal }\n\t\t>\n\t\t\t<ShortcutSection\n\t\t\t\tclassName=\"editor-keyboard-shortcut-help-modal__main-shortcuts\"\n\t\t\t\tshortcuts={ [ 'core/editor/keyboard-shortcuts' ] }\n\t\t\t/>\n\t\t\t<ShortcutCategorySection\n\t\t\t\ttitle={ __( 'Global shortcuts' ) }\n\t\t\t\tcategoryName=\"global\"\n\t\t\t/>\n\n\t\t\t<ShortcutCategorySection\n\t\t\t\ttitle={ __( 'Selection shortcuts' ) }\n\t\t\t\tcategoryName=\"selection\"\n\t\t\t/>\n\n\t\t\t<ShortcutCategorySection\n\t\t\t\ttitle={ __( 'Block shortcuts' ) }\n\t\t\t\tcategoryName=\"block\"\n\t\t\t\tadditionalShortcuts={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tkeyCombination: { character: '/' },\n\t\t\t\t\t\tdescription: __(\n\t\t\t\t\t\t\t'Change the block type after adding a new paragraph.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t/* translators: The forward-slash character. e.g. '/'. */\n\t\t\t\t\t\tariaLabel: __( 'Forward-slash' ),\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t\t<ShortcutSection\n\t\t\t\ttitle={ __( 'Text formatting' ) }\n\t\t\t\tshortcuts={ textFormattingShortcuts }\n\t\t\t/>\n\t\t\t<ShortcutCategorySection\n\t\t\t\ttitle={ __( 'List View shortcuts' ) }\n\t\t\t\tcategoryName=\"list-view\"\n\t\t\t/>\n\t\t</Modal>\n\t);\n}\n\nexport default KeyboardShortcutHelpModal;\n"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,6 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.duplicatePostAction = void 0;
8
7
  exports.usePostActions = usePostActions;
9
8
  var _react = require("react");
10
9
  var _icons = require("@wordpress/icons");
@@ -49,8 +48,10 @@ const trashPostAction = {
49
48
  RenderModal: ({
50
49
  items: posts,
51
50
  closeModal,
51
+ onActionStart,
52
52
  onActionPerformed
53
53
  }) => {
54
+ const [isBusy, setIsBusy] = (0, _element.useState)(false);
54
55
  const {
55
56
  createSuccessNotice,
56
57
  createErrorNotice
@@ -68,10 +69,16 @@ const trashPostAction = {
68
69
  justify: "right"
69
70
  }, (0, _react.createElement)(_components.Button, {
70
71
  variant: "tertiary",
71
- onClick: closeModal
72
+ onClick: closeModal,
73
+ disabled: isBusy,
74
+ __experimentalIsFocusable: true
72
75
  }, (0, _i18n.__)('Cancel')), (0, _react.createElement)(_components.Button, {
73
76
  variant: "primary",
74
77
  onClick: async () => {
78
+ setIsBusy(true);
79
+ if (onActionStart) {
80
+ onActionStart(posts);
81
+ }
75
82
  const promiseResult = await Promise.allSettled(posts.map(post => {
76
83
  return deleteEntityRecord('postType', post.type, post.id, {}, {
77
84
  throwOnError: true
@@ -85,8 +92,12 @@ const trashPostAction = {
85
92
  if (promiseResult.length === 1) {
86
93
  successMessage = (0, _i18n.sprintf)( /* translators: The posts's title. */
87
94
  (0, _i18n.__)('"%s" moved to the Trash.'), getItemTitle(posts[0]));
95
+ } else if (posts[0].type === 'page') {
96
+ successMessage = (0, _i18n.sprintf)( /* translators: The number of pages. */
97
+ (0, _i18n.__)('%s pages moved to the Trash.'), posts.length);
88
98
  } else {
89
- successMessage = (0, _i18n.__)('Pages moved to the Trash.');
99
+ successMessage = (0, _i18n.sprintf)( /* translators: The number of posts. */
100
+ (0, _i18n.__)('%s posts moved to the Trash.'), posts.length);
90
101
  }
91
102
  createSuccessNotice(successMessage, {
92
103
  type: 'snackbar',
@@ -130,8 +141,12 @@ const trashPostAction = {
130
141
  if (onActionPerformed) {
131
142
  onActionPerformed(posts);
132
143
  }
144
+ setIsBusy(false);
133
145
  closeModal();
134
- }
146
+ },
147
+ isBusy: isBusy,
148
+ disabled: isBusy,
149
+ __experimentalIsFocusable: true
135
150
  }, (0, _i18n.__)('Delete'))));
136
151
  }
137
152
  };
@@ -237,32 +252,67 @@ function useRestorePostAction() {
237
252
  return status === 'trash';
238
253
  },
239
254
  async callback(posts, onActionPerformed) {
240
- try {
241
- for (const post of posts) {
242
- await editEntityRecord('postType', post.type, post.id, {
243
- status: 'draft'
244
- });
245
- await saveEditedEntityRecord('postType', post.type, post.id, {
246
- throwOnError: true
247
- });
255
+ await Promise.allSettled(posts.map(post => {
256
+ return editEntityRecord('postType', post.type, post.id, {
257
+ status: 'draft'
258
+ });
259
+ }));
260
+ const promiseResult = await Promise.allSettled(posts.map(post => {
261
+ return saveEditedEntityRecord('postType', post.type, post.id, {
262
+ throwOnError: true
263
+ });
264
+ }));
265
+ if (promiseResult.every(({
266
+ status
267
+ }) => status === 'fulfilled')) {
268
+ let successMessage;
269
+ if (posts.length === 1) {
270
+ successMessage = (0, _i18n.sprintf)( /* translators: The number of posts. */
271
+ (0, _i18n.__)('"%s" has been restored.'), getItemTitle(posts[0]));
272
+ } else if (posts[0].type === 'page') {
273
+ successMessage = (0, _i18n.sprintf)( /* translators: The number of posts. */
274
+ (0, _i18n.__)('%d pages have been restored.'), posts.length);
275
+ } else {
276
+ successMessage = (0, _i18n.sprintf)( /* translators: The number of posts. */
277
+ (0, _i18n.__)('%d posts have been restored.'), posts.length);
248
278
  }
249
- createSuccessNotice(posts.length > 1 ? (0, _i18n.sprintf)( /* translators: The number of posts. */
250
- (0, _i18n.__)('%d posts have been restored.'), posts.length) : (0, _i18n.sprintf)( /* translators: The number of posts. */
251
- (0, _i18n.__)('"%s" has been restored.'), getItemTitle(posts[0])), {
279
+ createSuccessNotice(successMessage, {
252
280
  type: 'snackbar',
253
281
  id: 'restore-post-action'
254
282
  });
255
283
  if (onActionPerformed) {
256
284
  onActionPerformed(posts);
257
285
  }
258
- } catch (error) {
286
+ } else {
287
+ // If there was at lease one failure.
259
288
  let errorMessage;
260
- if (error.message && error.code !== 'unknown_error' && error.message) {
261
- errorMessage = error.message;
262
- } else if (posts.length > 1) {
263
- errorMessage = (0, _i18n.__)('An error occurred while restoring the posts.');
289
+ // If we were trying to move a single post to the trash.
290
+ if (promiseResult.length === 1) {
291
+ if (promiseResult[0].reason?.message) {
292
+ errorMessage = promiseResult[0].reason.message;
293
+ } else {
294
+ errorMessage = (0, _i18n.__)('An error occurred while restoring the post.');
295
+ }
296
+ // If we were trying to move multiple posts to the trash
264
297
  } else {
265
- errorMessage = (0, _i18n.__)('An error occurred while restoring the post.');
298
+ const errorMessages = new Set();
299
+ const failedPromises = promiseResult.filter(({
300
+ status
301
+ }) => status === 'rejected');
302
+ for (const failedPromise of failedPromises) {
303
+ if (failedPromise.reason?.message) {
304
+ errorMessages.add(failedPromise.reason.message);
305
+ }
306
+ }
307
+ if (errorMessages.size === 0) {
308
+ errorMessage = (0, _i18n.__)('An error occurred while restoring the posts.');
309
+ } else if (errorMessages.size === 1) {
310
+ errorMessage = (0, _i18n.sprintf)( /* translators: %s: an error message */
311
+ (0, _i18n.__)('An error occurred while restoring the posts: %s'), [...errorMessages][0]);
312
+ } else {
313
+ errorMessage = (0, _i18n.sprintf)( /* translators: %s: a list of comma separated error messages */
314
+ (0, _i18n.__)('Some errors occurred while restoring the posts: %s'), [...errorMessages].join(','));
315
+ }
266
316
  }
267
317
  createErrorNotice(errorMessage, {
268
318
  type: 'snackbar'
@@ -287,22 +337,6 @@ const viewPostAction = {
287
337
  }
288
338
  }
289
339
  };
290
- const editPostAction = {
291
- id: 'edit-post',
292
- label: (0, _i18n.__)('Edit'),
293
- isPrimary: true,
294
- icon: _icons.edit,
295
- isEligible({
296
- status
297
- }) {
298
- return status !== 'trash';
299
- },
300
- callback(posts, onActionPerformed) {
301
- if (onActionPerformed) {
302
- onActionPerformed(posts);
303
- }
304
- }
305
- };
306
340
  const postRevisionsAction = {
307
341
  id: 'view-post-revisions',
308
342
  label: (0, _i18n.__)('View revisions'),
@@ -399,7 +433,7 @@ const renamePostAction = {
399
433
  }, (0, _i18n.__)('Save')))));
400
434
  }
401
435
  };
402
- const duplicatePostAction = exports.duplicatePostAction = {
436
+ const duplicatePostAction = {
403
437
  id: 'duplicate-post',
404
438
  label: (0, _i18n._x)('Duplicate', 'action label'),
405
439
  isEligible({
@@ -497,13 +531,16 @@ const resetTemplateAction = {
497
531
  id: 'reset-template',
498
532
  label: (0, _i18n.__)('Reset'),
499
533
  isEligible: _isTemplateRevertable.default,
534
+ icon: _icons.backup,
500
535
  supportsBulk: true,
501
536
  hideModalHeader: true,
502
537
  RenderModal: ({
503
538
  items,
504
539
  closeModal,
540
+ onActionStart,
505
541
  onActionPerformed
506
542
  }) => {
543
+ const [isBusy, setIsBusy] = (0, _element.useState)(false);
507
544
  const {
508
545
  revertTemplate
509
546
  } = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store));
@@ -547,14 +584,24 @@ const resetTemplateAction = {
547
584
  justify: "right"
548
585
  }, (0, _react.createElement)(_components.Button, {
549
586
  variant: "tertiary",
550
- onClick: closeModal
587
+ onClick: closeModal,
588
+ disabled: isBusy,
589
+ __experimentalIsFocusable: true
551
590
  }, (0, _i18n.__)('Cancel')), (0, _react.createElement)(_components.Button, {
552
591
  variant: "primary",
553
592
  onClick: async () => {
593
+ setIsBusy(true);
594
+ if (onActionStart) {
595
+ onActionStart(items);
596
+ }
554
597
  await onConfirm(items);
555
598
  onActionPerformed?.(items);
556
599
  closeModal();
557
- }
600
+ isBusy(false);
601
+ },
602
+ isBusy: isBusy,
603
+ disabled: isBusy,
604
+ __experimentalIsFocusable: true
558
605
  }, (0, _i18n.__)('Reset'))));
559
606
  }
560
607
  };
@@ -576,13 +623,16 @@ const deleteTemplateAction = {
576
623
  id: 'delete-template',
577
624
  label: (0, _i18n.__)('Delete'),
578
625
  isEligible: isTemplateRemovable,
626
+ icon: _icons.trash,
579
627
  supportsBulk: true,
580
628
  hideModalHeader: true,
581
629
  RenderModal: ({
582
630
  items: templates,
583
631
  closeModal,
632
+ onActionStart,
584
633
  onActionPerformed
585
634
  }) => {
635
+ const [isBusy, setIsBusy] = (0, _element.useState)(false);
586
636
  const {
587
637
  removeTemplates
588
638
  } = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store));
@@ -596,16 +646,26 @@ const deleteTemplateAction = {
596
646
  justify: "right"
597
647
  }, (0, _react.createElement)(_components.Button, {
598
648
  variant: "tertiary",
599
- onClick: closeModal
649
+ onClick: closeModal,
650
+ disabled: isBusy,
651
+ __experimentalIsFocusable: true
600
652
  }, (0, _i18n.__)('Cancel')), (0, _react.createElement)(_components.Button, {
601
653
  variant: "primary",
602
654
  onClick: async () => {
655
+ setIsBusy(true);
656
+ if (onActionStart) {
657
+ onActionStart(templates);
658
+ }
603
659
  await removeTemplates(templates, {
604
660
  allowUndo: false
605
661
  });
606
662
  onActionPerformed?.(templates);
663
+ setIsBusy(false);
607
664
  closeModal();
608
- }
665
+ },
666
+ isBusy: isBusy,
667
+ disabled: isBusy,
668
+ __experimentalIsFocusable: true
609
669
  }, (0, _i18n.__)('Delete'))));
610
670
  }
611
671
  };
@@ -687,18 +747,27 @@ const renameTemplateAction = {
687
747
  }, (0, _i18n.__)('Save')))));
688
748
  }
689
749
  };
690
- function usePostActions(onActionPerformed, actionIds = null) {
750
+ function usePostActions(postType, onActionPerformed) {
751
+ const {
752
+ postTypeObject
753
+ } = (0, _data.useSelect)(select => {
754
+ const {
755
+ getPostType
756
+ } = select(_coreData.store);
757
+ return {
758
+ postTypeObject: getPostType(postType)
759
+ };
760
+ }, [postType]);
691
761
  const permanentlyDeletePostAction = usePermanentlyDeletePostAction();
692
762
  const restorePostAction = useRestorePostAction();
763
+ const isTemplateOrTemplatePart = [_constants.TEMPLATE_POST_TYPE, _constants.TEMPLATE_PART_POST_TYPE].includes(postType);
764
+ const isPattern = postType === _constants.PATTERN_POST_TYPE;
765
+ const isLoaded = !!postTypeObject;
693
766
  return (0, _element.useMemo)(() => {
694
- // By default, return all actions...
695
- const defaultActions = [editPostAction, resetTemplateAction, viewPostAction, restorePostAction, deleteTemplateAction, permanentlyDeletePostAction, postRevisionsAction, duplicatePostAction, renamePostAction, renameTemplateAction, trashPostAction];
696
-
697
- // ... unless `actionIds` was specified, in which case we find the
698
- // actions matching the given IDs.
699
- const actions = actionIds ? actionIds.map(actionId => defaultActions.find(({
700
- id
701
- }) => actionId === id)) : defaultActions;
767
+ if (!isLoaded) {
768
+ return [];
769
+ }
770
+ const actions = [isTemplateOrTemplatePart && resetTemplateAction, postTypeObject?.viewable && viewPostAction, !isTemplateOrTemplatePart && restorePostAction, isTemplateOrTemplatePart && deleteTemplateAction, !isTemplateOrTemplatePart && permanentlyDeletePostAction, postRevisionsAction, process.env.IS_GUTENBERG_PLUGIN ? !isTemplateOrTemplatePart && !isPattern && duplicatePostAction : false, !isTemplateOrTemplatePart && renamePostAction, isTemplateOrTemplatePart && renameTemplateAction, !isTemplateOrTemplatePart && trashPostAction].filter(Boolean);
702
771
  if (onActionPerformed) {
703
772
  for (let i = 0; i < actions.length; ++i) {
704
773
  if (actions[i].callback) {
@@ -721,8 +790,7 @@ function usePostActions(onActionPerformed, actionIds = null) {
721
790
  ...actions[i],
722
791
  RenderModal: props => {
723
792
  return (0, _react.createElement)(ExistingRenderModal, {
724
- items: props.items,
725
- closeModal: props.closeModal,
793
+ ...props,
726
794
  onActionPerformed: _items => {
727
795
  if (props.onActionPerformed) {
728
796
  props.onActionPerformed(_items);
@@ -736,16 +804,6 @@ function usePostActions(onActionPerformed, actionIds = null) {
736
804
  }
737
805
  }
738
806
  return actions;
739
- },
740
- // Disable reason: if provided, `actionIds` is a shallow array of
741
- // strings, and the strings themselves should be part of the useMemo
742
- // dependencies. Two different disable statements are needed, as the
743
- // first flags what it thinks are missing dependencies, and the second
744
- // flags the array spread operation.
745
- //
746
- // eslint-disable-next-line react-hooks/exhaustive-deps
747
- [
748
- // eslint-disable-next-line react-hooks/exhaustive-deps
749
- ...(actionIds || []), permanentlyDeletePostAction, restorePostAction, onActionPerformed]);
807
+ }, [isTemplateOrTemplatePart, isPattern, postTypeObject?.viewable, permanentlyDeletePostAction, restorePostAction, onActionPerformed, isLoaded]);
750
808
  }
751
809
  //# sourceMappingURL=actions.js.map