@wordpress/edit-site 5.31.0 → 5.32.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 (280) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-editor/editor-canvas.js +8 -1
  3. package/build/components/block-editor/editor-canvas.js.map +1 -1
  4. package/build/components/block-editor/site-editor-canvas.js +15 -4
  5. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  6. package/build/components/editor/index.js +12 -3
  7. package/build/components/editor/index.js.map +1 -1
  8. package/build/components/editor-canvas-container/index.js +1 -2
  9. package/build/components/editor-canvas-container/index.js.map +1 -1
  10. package/build/components/global-styles/background-panel.js +38 -0
  11. package/build/components/global-styles/background-panel.js.map +1 -0
  12. package/build/components/global-styles/font-families.js +1 -1
  13. package/build/components/global-styles/font-families.js.map +1 -1
  14. package/build/components/global-styles/font-library-modal/context.js +38 -9
  15. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  16. package/build/components/global-styles/font-library-modal/utils/index.js +20 -2
  17. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  18. package/build/components/global-styles/palette.js +3 -1
  19. package/build/components/global-styles/palette.js.map +1 -1
  20. package/build/components/global-styles/preview-colors.js +2 -2
  21. package/build/components/global-styles/preview-colors.js.map +1 -1
  22. package/build/components/global-styles/root-menu.js +8 -2
  23. package/build/components/global-styles/root-menu.js.map +1 -1
  24. package/build/components/global-styles/screen-background.js +34 -0
  25. package/build/components/global-styles/screen-background.js.map +1 -0
  26. package/build/components/global-styles/screen-color-palette.js +2 -2
  27. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  28. package/build/components/global-styles/screen-colors.js +6 -4
  29. package/build/components/global-styles/screen-colors.js.map +1 -1
  30. package/build/components/global-styles/screen-style-variations.js +3 -37
  31. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  32. package/build/components/global-styles/screen-typography.js +6 -6
  33. package/build/components/global-styles/screen-typography.js.map +1 -1
  34. package/build/components/global-styles/style-variations-container.js +5 -2
  35. package/build/components/global-styles/style-variations-container.js.map +1 -1
  36. package/build/components/global-styles/ui.js +4 -1
  37. package/build/components/global-styles/ui.js.map +1 -1
  38. package/build/components/global-styles/variations/variations-color.js +10 -3
  39. package/build/components/global-styles/variations/variations-color.js.map +1 -1
  40. package/build/components/global-styles/variations/variations-typography.js +9 -2
  41. package/build/components/global-styles/variations/variations-typography.js.map +1 -1
  42. package/build/components/keyboard-shortcut-help-modal/index.js +3 -0
  43. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  44. package/build/components/layout/animation.js +129 -0
  45. package/build/components/layout/animation.js.map +1 -0
  46. package/build/components/layout/index.js +9 -17
  47. package/build/components/layout/index.js.map +1 -1
  48. package/build/components/layout/router.js +21 -18
  49. package/build/components/layout/router.js.map +1 -1
  50. package/build/components/page-pages/index.js +19 -17
  51. package/build/components/page-pages/index.js.map +1 -1
  52. package/build/components/page-patterns/index.js +18 -28
  53. package/build/components/page-patterns/index.js.map +1 -1
  54. package/build/components/page-patterns/search-items.js +16 -58
  55. package/build/components/page-patterns/search-items.js.map +1 -1
  56. package/build/components/page-templates-template-parts/actions.js +54 -41
  57. package/build/components/page-templates-template-parts/actions.js.map +1 -1
  58. package/build/components/page-templates-template-parts/index.js +26 -59
  59. package/build/components/page-templates-template-parts/index.js.map +1 -1
  60. package/build/components/plugin-template-setting-panel/index.js +12 -1
  61. package/build/components/plugin-template-setting-panel/index.js.map +1 -1
  62. package/build/components/save-button/index.js +45 -16
  63. package/build/components/save-button/index.js.map +1 -1
  64. package/build/components/save-hub/index.js +8 -112
  65. package/build/components/save-hub/index.js.map +1 -1
  66. package/build/components/sidebar/index.js +1 -5
  67. package/build/components/sidebar/index.js.map +1 -1
  68. package/build/components/sidebar-dataviews/default-views.js +1 -1
  69. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  70. package/build/components/sidebar-dataviews/index.js +1 -1
  71. package/build/components/sidebar-dataviews/index.js.map +1 -1
  72. package/build/components/sidebar-edit-mode/index.js +1 -2
  73. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  74. package/build/components/sidebar-edit-mode/page-panels/index.js +5 -15
  75. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  76. package/build/components/sidebar-edit-mode/page-panels/page-content.js +7 -5
  77. package/build/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
  78. package/build/components/sidebar-edit-mode/template-panel/index.js +10 -16
  79. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  80. package/build/components/sidebar-navigation-screen-details-footer/index.js +5 -1
  81. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  82. package/build/components/sidebar-navigation-screen-global-styles/index.js +10 -5
  83. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  84. package/build/components/sidebar-navigation-screen-patterns/index.js +1 -5
  85. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  86. package/build/components/style-book/index.js +1 -1
  87. package/build/components/style-book/index.js.map +1 -1
  88. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +2 -2
  89. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  90. package/build/components/sync-state-with-url/use-sync-path-with-url.js +1 -1
  91. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  92. package/build/hooks/index.js +0 -1
  93. package/build/hooks/index.js.map +1 -1
  94. package/build/store/selectors.js +1 -9
  95. package/build/store/selectors.js.map +1 -1
  96. package/build-module/components/block-editor/editor-canvas.js +8 -1
  97. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  98. package/build-module/components/block-editor/site-editor-canvas.js +15 -4
  99. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  100. package/build-module/components/editor/index.js +13 -4
  101. package/build-module/components/editor/index.js.map +1 -1
  102. package/build-module/components/editor-canvas-container/index.js +1 -2
  103. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  104. package/build-module/components/global-styles/background-panel.js +31 -0
  105. package/build-module/components/global-styles/background-panel.js.map +1 -0
  106. package/build-module/components/global-styles/font-families.js +1 -1
  107. package/build-module/components/global-styles/font-families.js.map +1 -1
  108. package/build-module/components/global-styles/font-library-modal/context.js +38 -9
  109. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  110. package/build-module/components/global-styles/font-library-modal/utils/index.js +20 -2
  111. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  112. package/build-module/components/global-styles/palette.js +3 -1
  113. package/build-module/components/global-styles/palette.js.map +1 -1
  114. package/build-module/components/global-styles/preview-colors.js +2 -2
  115. package/build-module/components/global-styles/preview-colors.js.map +1 -1
  116. package/build-module/components/global-styles/root-menu.js +9 -3
  117. package/build-module/components/global-styles/root-menu.js.map +1 -1
  118. package/build-module/components/global-styles/screen-background.js +26 -0
  119. package/build-module/components/global-styles/screen-background.js.map +1 -0
  120. package/build-module/components/global-styles/screen-color-palette.js +2 -2
  121. package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
  122. package/build-module/components/global-styles/screen-colors.js +6 -4
  123. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  124. package/build-module/components/global-styles/screen-style-variations.js +4 -38
  125. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  126. package/build-module/components/global-styles/screen-typography.js +6 -6
  127. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  128. package/build-module/components/global-styles/style-variations-container.js +5 -2
  129. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  130. package/build-module/components/global-styles/ui.js +4 -1
  131. package/build-module/components/global-styles/ui.js.map +1 -1
  132. package/build-module/components/global-styles/variations/variations-color.js +10 -3
  133. package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
  134. package/build-module/components/global-styles/variations/variations-typography.js +9 -2
  135. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
  136. package/build-module/components/keyboard-shortcut-help-modal/index.js +3 -0
  137. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  138. package/build-module/components/layout/animation.js +122 -0
  139. package/build-module/components/layout/animation.js.map +1 -0
  140. package/build-module/components/layout/index.js +9 -17
  141. package/build-module/components/layout/index.js.map +1 -1
  142. package/build-module/components/layout/router.js +21 -18
  143. package/build-module/components/layout/router.js.map +1 -1
  144. package/build-module/components/page-pages/index.js +19 -17
  145. package/build-module/components/page-pages/index.js.map +1 -1
  146. package/build-module/components/page-patterns/index.js +20 -30
  147. package/build-module/components/page-patterns/index.js.map +1 -1
  148. package/build-module/components/page-patterns/search-items.js +14 -55
  149. package/build-module/components/page-patterns/search-items.js.map +1 -1
  150. package/build-module/components/page-templates-template-parts/actions.js +54 -40
  151. package/build-module/components/page-templates-template-parts/actions.js.map +1 -1
  152. package/build-module/components/page-templates-template-parts/index.js +29 -62
  153. package/build-module/components/page-templates-template-parts/index.js.map +1 -1
  154. package/build-module/components/plugin-template-setting-panel/index.js +12 -1
  155. package/build-module/components/plugin-template-setting-panel/index.js.map +1 -1
  156. package/build-module/components/save-button/index.js +46 -17
  157. package/build-module/components/save-button/index.js.map +1 -1
  158. package/build-module/components/save-hub/index.js +10 -114
  159. package/build-module/components/save-hub/index.js.map +1 -1
  160. package/build-module/components/sidebar/index.js +1 -5
  161. package/build-module/components/sidebar/index.js.map +1 -1
  162. package/build-module/components/sidebar-dataviews/default-views.js +1 -1
  163. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  164. package/build-module/components/sidebar-dataviews/index.js +1 -1
  165. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  166. package/build-module/components/sidebar-edit-mode/index.js +1 -2
  167. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  168. package/build-module/components/sidebar-edit-mode/page-panels/index.js +8 -18
  169. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  170. package/build-module/components/sidebar-edit-mode/page-panels/page-content.js +7 -5
  171. package/build-module/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
  172. package/build-module/components/sidebar-edit-mode/template-panel/index.js +11 -17
  173. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  174. package/build-module/components/sidebar-navigation-screen-details-footer/index.js +5 -1
  175. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  176. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +10 -5
  177. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  178. package/build-module/components/sidebar-navigation-screen-patterns/index.js +1 -5
  179. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  180. package/build-module/components/style-book/index.js +1 -1
  181. package/build-module/components/style-book/index.js.map +1 -1
  182. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +2 -2
  183. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  184. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +1 -1
  185. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  186. package/build-module/hooks/index.js +0 -1
  187. package/build-module/hooks/index.js.map +1 -1
  188. package/build-module/store/selectors.js +1 -9
  189. package/build-module/store/selectors.js.map +1 -1
  190. package/build-style/style-rtl.css +116 -104
  191. package/build-style/style.css +116 -104
  192. package/package.json +44 -44
  193. package/src/components/block-editor/editor-canvas.js +14 -2
  194. package/src/components/block-editor/site-editor-canvas.js +10 -7
  195. package/src/components/editor/index.js +11 -4
  196. package/src/components/editor-canvas-container/index.js +0 -1
  197. package/src/components/global-styles/background-panel.js +34 -0
  198. package/src/components/global-styles/font-families.js +1 -1
  199. package/src/components/global-styles/font-library-modal/context.js +43 -14
  200. package/src/components/global-styles/font-library-modal/style.scss +1 -1
  201. package/src/components/global-styles/font-library-modal/utils/index.js +17 -4
  202. package/src/components/global-styles/palette.js +3 -1
  203. package/src/components/global-styles/preview-colors.js +2 -2
  204. package/src/components/global-styles/root-menu.js +12 -1
  205. package/src/components/global-styles/screen-background.js +29 -0
  206. package/src/components/global-styles/screen-color-palette.js +2 -2
  207. package/src/components/global-styles/screen-colors.js +4 -4
  208. package/src/components/global-styles/screen-style-variations.js +4 -36
  209. package/src/components/global-styles/screen-typography.js +6 -9
  210. package/src/components/global-styles/style-variations-container.js +2 -1
  211. package/src/components/global-styles/style.scss +14 -12
  212. package/src/components/global-styles/ui.js +5 -0
  213. package/src/components/global-styles/variations/style.scss +32 -17
  214. package/src/components/global-styles/variations/variations-color.js +4 -2
  215. package/src/components/global-styles/variations/variations-typography.js +4 -1
  216. package/src/components/header-edit-mode/style.scss +28 -17
  217. package/src/components/keyboard-shortcut-help-modal/index.js +4 -0
  218. package/src/components/layout/animation.js +122 -0
  219. package/src/components/layout/index.js +12 -27
  220. package/src/components/layout/router.js +25 -19
  221. package/src/components/layout/style.scss +2 -0
  222. package/src/components/page-pages/index.js +27 -43
  223. package/src/components/page-patterns/index.js +20 -28
  224. package/src/components/page-patterns/search-items.js +13 -58
  225. package/src/components/page-templates-template-parts/actions.js +106 -91
  226. package/src/components/page-templates-template-parts/index.js +34 -78
  227. package/src/components/page-templates-template-parts/style.scss +5 -0
  228. package/src/components/plugin-template-setting-panel/index.js +14 -1
  229. package/src/components/save-button/index.js +55 -26
  230. package/src/components/save-hub/index.js +20 -164
  231. package/src/components/sidebar/index.js +0 -5
  232. package/src/components/sidebar-dataviews/default-views.js +1 -1
  233. package/src/components/sidebar-dataviews/index.js +1 -1
  234. package/src/components/sidebar-edit-mode/index.js +0 -2
  235. package/src/components/sidebar-edit-mode/page-panels/index.js +29 -60
  236. package/src/components/sidebar-edit-mode/page-panels/page-content.js +10 -10
  237. package/src/components/sidebar-edit-mode/template-panel/index.js +23 -33
  238. package/src/components/sidebar-edit-mode/template-panel/style.scss +1 -29
  239. package/src/components/sidebar-navigation-screen/style.scss +12 -9
  240. package/src/components/sidebar-navigation-screen-details-footer/index.js +6 -2
  241. package/src/components/sidebar-navigation-screen-global-styles/index.js +7 -13
  242. package/src/components/sidebar-navigation-screen-patterns/index.js +0 -7
  243. package/src/components/style-book/index.js +1 -3
  244. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +2 -2
  245. package/src/components/sync-state-with-url/use-sync-path-with-url.js +1 -1
  246. package/src/hooks/index.js +0 -1
  247. package/src/store/selectors.js +3 -15
  248. package/src/style.scss +0 -1
  249. package/build/components/actions/index.js +0 -319
  250. package/build/components/actions/index.js.map +0 -1
  251. package/build/components/sidebar-edit-mode/sidebar-card/index.js +0 -48
  252. package/build/components/sidebar-edit-mode/sidebar-card/index.js.map +0 -1
  253. package/build/components/sidebar-edit-mode/template-panel/template-areas.js +0 -70
  254. package/build/components/sidebar-edit-mode/template-panel/template-areas.js.map +0 -1
  255. package/build/components/sidebar-navigation-screen-pages/index.js +0 -175
  256. package/build/components/sidebar-navigation-screen-pages/index.js.map +0 -1
  257. package/build/hooks/template-part-edit.js +0 -82
  258. package/build/hooks/template-part-edit.js.map +0 -1
  259. package/build/store/utils.js +0 -71
  260. package/build/store/utils.js.map +0 -1
  261. package/build-module/components/actions/index.js +0 -308
  262. package/build-module/components/actions/index.js.map +0 -1
  263. package/build-module/components/sidebar-edit-mode/sidebar-card/index.js +0 -40
  264. package/build-module/components/sidebar-edit-mode/sidebar-card/index.js.map +0 -1
  265. package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js +0 -63
  266. package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js.map +0 -1
  267. package/build-module/components/sidebar-navigation-screen-pages/index.js +0 -167
  268. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +0 -1
  269. package/build-module/hooks/template-part-edit.js +0 -75
  270. package/build-module/hooks/template-part-edit.js.map +0 -1
  271. package/build-module/store/utils.js +0 -64
  272. package/build-module/store/utils.js.map +0 -1
  273. package/src/components/actions/index.js +0 -409
  274. package/src/components/sidebar-edit-mode/sidebar-card/index.js +0 -53
  275. package/src/components/sidebar-edit-mode/sidebar-card/style.scss +0 -36
  276. package/src/components/sidebar-edit-mode/template-panel/template-areas.js +0 -86
  277. package/src/components/sidebar-navigation-screen-pages/index.js +0 -238
  278. package/src/hooks/template-part-edit.js +0 -89
  279. package/src/store/test/utils.js +0 -191
  280. package/src/store/utils.js +0 -69
@@ -2,10 +2,9 @@ import { createElement } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
5
- import { backup, trash } from '@wordpress/icons';
6
5
  import { __, sprintf, _n } from '@wordpress/i18n';
7
6
  import { useDispatch } from '@wordpress/data';
8
- import { useMemo, useState } from '@wordpress/element';
7
+ import { useState } from '@wordpress/element';
9
8
  import { store as coreStore } from '@wordpress/core-data';
10
9
  import { store as noticesStore } from '@wordpress/notices';
11
10
  import { decodeEntities } from '@wordpress/html-entities';
@@ -19,58 +18,74 @@ import { store as editSiteStore } from '../../store';
19
18
  import isTemplateRevertable from '../../utils/is-template-revertable';
20
19
  import isTemplateRemovable from '../../utils/is-template-removable';
21
20
  import { TEMPLATE_POST_TYPE } from '../../utils/constants';
22
- export function useResetTemplateAction() {
23
- const {
24
- revertTemplate
25
- } = useDispatch(editSiteStore);
26
- const {
27
- saveEditedEntityRecord
28
- } = useDispatch(coreStore);
29
- const {
30
- createSuccessNotice,
31
- createErrorNotice
32
- } = useDispatch(noticesStore);
33
- return useMemo(() => ({
34
- id: 'reset-template',
35
- label: __('Reset'),
36
- isPrimary: true,
37
- icon: backup,
38
- isEligible: isTemplateRevertable,
39
- supportsBulk: true,
40
- async callback(templates) {
21
+ export const resetTemplateAction = {
22
+ id: 'reset-template',
23
+ label: __('Clear customizations'),
24
+ isEligible: isTemplateRevertable,
25
+ supportsBulk: true,
26
+ hideModalHeader: true,
27
+ RenderModal: ({
28
+ items,
29
+ closeModal,
30
+ onPerform
31
+ }) => {
32
+ const {
33
+ revertTemplate
34
+ } = useDispatch(editSiteStore);
35
+ const {
36
+ saveEditedEntityRecord
37
+ } = useDispatch(coreStore);
38
+ const {
39
+ createSuccessNotice,
40
+ createErrorNotice
41
+ } = useDispatch(noticesStore);
42
+ const onConfirm = async () => {
41
43
  try {
42
- for (const template of templates) {
44
+ for (const template of items) {
43
45
  await revertTemplate(template, {
44
46
  allowUndo: false
45
47
  });
46
48
  await saveEditedEntityRecord('postType', template.type, template.id);
47
49
  }
48
- createSuccessNotice(templates.length > 1 ? sprintf( /* translators: The number of items. */
49
- __('%s items reverted.'), templates.length) : sprintf( /* translators: The template/part's name. */
50
- __('"%s" reverted.'), decodeEntities(templates[0].title.rendered)), {
50
+ createSuccessNotice(items.length > 1 ? sprintf( /* translators: The number of items. */
51
+ __('%s items reverted.'), items.length) : sprintf( /* translators: The template/part's name. */
52
+ __('"%s" reverted.'), decodeEntities(items[0].title.rendered)), {
51
53
  type: 'snackbar',
52
54
  id: 'edit-site-template-reverted'
53
55
  });
54
56
  } catch (error) {
55
57
  let fallbackErrorMessage;
56
- if (templates[0].type === TEMPLATE_POST_TYPE) {
57
- fallbackErrorMessage = templates.length === 1 ? __('An error occurred while reverting the template.') : __('An error occurred while reverting the templates.');
58
+ if (items[0].type === TEMPLATE_POST_TYPE) {
59
+ fallbackErrorMessage = items.length === 1 ? __('An error occurred while reverting the template.') : __('An error occurred while reverting the templates.');
58
60
  } else {
59
- fallbackErrorMessage = templates.length === 1 ? __('An error occurred while reverting the template part.') : __('An error occurred while reverting the template parts.');
61
+ fallbackErrorMessage = items.length === 1 ? __('An error occurred while reverting the template part.') : __('An error occurred while reverting the template parts.');
60
62
  }
61
63
  const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : fallbackErrorMessage;
62
64
  createErrorNotice(errorMessage, {
63
65
  type: 'snackbar'
64
66
  });
65
67
  }
66
- }
67
- }), [createErrorNotice, createSuccessNotice, revertTemplate, saveEditedEntityRecord]);
68
- }
68
+ };
69
+ return createElement(VStack, {
70
+ spacing: "5"
71
+ }, createElement(Text, null, __('Are you sure you want to clear these customizations?')), createElement(HStack, {
72
+ justify: "right"
73
+ }, createElement(Button, {
74
+ variant: "tertiary",
75
+ onClick: closeModal
76
+ }, __('Cancel')), createElement(Button, {
77
+ variant: "primary",
78
+ onClick: async () => {
79
+ await onConfirm(items);
80
+ onPerform?.();
81
+ closeModal();
82
+ }
83
+ }, __('Clear'))));
84
+ }
85
+ };
69
86
  export const deleteTemplateAction = {
70
87
  id: 'delete-template',
71
88
  label: __('Delete'),
72
- isPrimary: true,
73
- icon: trash,
74
89
  isEligible: isTemplateRemovable,
75
90
  supportsBulk: true,
76
91
  hideModalHeader: true,
@@ -99,9 +114,7 @@ export const deleteTemplateAction = {
99
114
  await removeTemplates(templates, {
100
115
  allowUndo: false
101
116
  });
102
- if (onPerform) {
103
- onPerform();
104
- }
117
+ onPerform?.();
105
118
  closeModal();
106
119
  }
107
120
  }, __('Delete'))));
@@ -148,8 +161,6 @@ export const renameTemplateAction = {
148
161
  {
149
162
  throwOnError: true
150
163
  });
151
- // TODO: this action will be reused in template parts list, so
152
- // let's keep this for a bit, even it's always a `template` now.
153
164
  createSuccessNotice(template.type === TEMPLATE_POST_TYPE ? __('Template renamed.') : __('Template part renamed.'), {
154
165
  type: 'snackbar'
155
166
  });
@@ -167,6 +178,7 @@ export const renameTemplateAction = {
167
178
  spacing: "5"
168
179
  }, createElement(TextControl, {
169
180
  __nextHasNoMarginBottom: true,
181
+ __next40pxDefaultSize: true,
170
182
  label: __('Name'),
171
183
  value: editedTitle,
172
184
  onChange: setEditedTitle,
@@ -175,10 +187,12 @@ export const renameTemplateAction = {
175
187
  justify: "right"
176
188
  }, createElement(Button, {
177
189
  variant: "tertiary",
178
- onClick: closeModal
190
+ onClick: closeModal,
191
+ __next40pxDefaultSize: true
179
192
  }, __('Cancel')), createElement(Button, {
180
193
  variant: "primary",
181
- type: "submit"
194
+ type: "submit",
195
+ __next40pxDefaultSize: true
182
196
  }, __('Save')))));
183
197
  }
184
198
  };
@@ -1 +1 @@
1
- {"version":3,"names":["backup","trash","__","sprintf","_n","useDispatch","useMemo","useState","store","coreStore","noticesStore","decodeEntities","Button","TextControl","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","unlock","editSiteStore","isTemplateRevertable","isTemplateRemovable","TEMPLATE_POST_TYPE","useResetTemplateAction","revertTemplate","saveEditedEntityRecord","createSuccessNotice","createErrorNotice","id","label","isPrimary","icon","isEligible","supportsBulk","callback","templates","template","allowUndo","type","length","title","rendered","error","fallbackErrorMessage","errorMessage","message","code","deleteTemplateAction","hideModalHeader","RenderModal","items","closeModal","onPerform","removeTemplates","createElement","spacing","justify","variant","onClick","renameTemplateAction","is_custom","editedTitle","setEditedTitle","editEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","onTemplateRename","event","preventDefault","throwOnError","onSubmit","__nextHasNoMarginBottom","value","onChange","required"],"sources":["@wordpress/edit-site/src/components/page-templates-template-parts/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { backup, trash } from '@wordpress/icons';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useMemo, useState } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\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 { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport isTemplateRevertable from '../../utils/is-template-revertable';\nimport isTemplateRemovable from '../../utils/is-template-removable';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nexport function useResetTemplateAction() {\n\tconst { revertTemplate } = useDispatch( editSiteStore );\n\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'reset-template',\n\t\t\tlabel: __( 'Reset' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: backup,\n\t\t\tisEligible: isTemplateRevertable,\n\t\t\tsupportsBulk: true,\n\t\t\tasync callback( templates ) {\n\t\t\t\ttry {\n\t\t\t\t\tfor ( const template of templates ) {\n\t\t\t\t\t\tawait revertTemplate( template, {\n\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\t\ttemplate.id\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\ttemplates.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 reverted.' ),\n\t\t\t\t\t\t\t\t\ttemplates.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\" reverted.' ),\n\t\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\t\ttemplates[ 0 ].title.rendered\n\t\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\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'edit-site-template-reverted',\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} catch ( error ) {\n\t\t\t\t\tlet fallbackErrorMessage;\n\t\t\t\t\tif ( templates[ 0 ].type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\t\ttemplates.length === 1\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template.'\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t'An error occurred while reverting the templates.'\n\t\t\t\t\t\t\t\t );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\t\ttemplates.length === 1\n\t\t\t\t\t\t\t\t? __(\n\t\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\t )\n\t\t\t\t\t\t\t\t: __(\n\t\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\t );\n\t\t\t\t\t}\n\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\tcreateErrorNotice,\n\t\t\tcreateSuccessNotice,\n\t\t\trevertTemplate,\n\t\t\tsaveEditedEntityRecord,\n\t\t]\n\t);\n}\n\nexport const deleteTemplateAction = {\n\tid: 'delete-template',\n\tlabel: __( 'Delete' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible: isTemplateRemovable,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( { items: templates, closeModal, onPerform } ) => {\n\t\tconst { removeTemplates } = unlock( useDispatch( editSiteStore ) );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ templates.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\ttemplates.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttemplates.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\tdecodeEntities(\n\t\t\t\t\t\t\t\t\ttemplates?.[ 0 ]?.title?.rendered\n\t\t\t\t\t\t\t\t)\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 variant=\"tertiary\" onClick={ closeModal }>\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\tawait removeTemplates( templates, {\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\tif ( onPerform ) {\n\t\t\t\t\t\t\t\tonPerform();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\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\nexport const renameTemplateAction = {\n\tid: 'rename-template',\n\tlabel: __( 'Rename' ),\n\tisEligible: ( template ) => {\n\t\t// We can only remove templates or template parts that can be removed.\n\t\t// Additionally in the case of templates, we can only remove custom templates.\n\t\tif (\n\t\t\t! isTemplateRemovable( template ) ||\n\t\t\t( template.type === TEMPLATE_POST_TYPE && ! template.is_custom )\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\tRenderModal: ( { items: templates, closeModal } ) => {\n\t\tconst template = templates[ 0 ];\n\t\tconst title = decodeEntities( template.title.rendered );\n\t\tconst [ editedTitle, setEditedTitle ] = useState( title );\n\t\tconst {\n\t\t\teditEntityRecord,\n\t\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t\t} = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tasync function onTemplateRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: editedTitle,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetEditedTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t[ 'title' ], // Only save title to avoid persisting other edits.\n\t\t\t\t\t{\n\t\t\t\t\t\tthrowOnError: true,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// TODO: this action will be reused in template parts list, so\n\t\t\t\t// let's keep this for a bit, even it's always a `template` now.\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'Template renamed.' )\n\t\t\t\t\t\t: __( 'Template part renamed.' ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tconst fallbackErrorMessage =\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'An error occurred while renaming the template.' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'An error occurred while renaming the template part.'\n\t\t\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<form onSubmit={ onTemplateRename }>\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\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ editedTitle }\n\t\t\t\t\t\tonChange={ setEditedTitle }\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 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 variant=\"primary\" type=\"submit\">\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"],"mappings":"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"}
1
+ {"version":3,"names":["__","sprintf","_n","useDispatch","useState","store","coreStore","noticesStore","decodeEntities","Button","TextControl","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","unlock","editSiteStore","isTemplateRevertable","isTemplateRemovable","TEMPLATE_POST_TYPE","resetTemplateAction","id","label","isEligible","supportsBulk","hideModalHeader","RenderModal","items","closeModal","onPerform","revertTemplate","saveEditedEntityRecord","createSuccessNotice","createErrorNotice","onConfirm","template","allowUndo","type","length","title","rendered","error","fallbackErrorMessage","errorMessage","message","code","createElement","spacing","justify","variant","onClick","deleteTemplateAction","templates","removeTemplates","renameTemplateAction","is_custom","editedTitle","setEditedTitle","editEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","onTemplateRename","event","preventDefault","throwOnError","onSubmit","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","required"],"sources":["@wordpress/edit-site/src/components/page-templates-template-parts/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\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 { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport isTemplateRevertable from '../../utils/is-template-revertable';\nimport isTemplateRemovable from '../../utils/is-template-removable';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nexport const resetTemplateAction = {\n\tid: 'reset-template',\n\tlabel: __( 'Clear customizations' ),\n\tisEligible: isTemplateRevertable,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( { items, closeModal, onPerform } ) => {\n\t\tconst { revertTemplate } = useDispatch( editSiteStore );\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\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 reverted.' ),\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\" reverted.' ),\n\t\t\t\t\t\t\t\tdecodeEntities( items[ 0 ].title.rendered )\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: 'edit-site-template-reverted',\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{ __(\n\t\t\t\t\t\t'Are you sure you want to clear these customizations?'\n\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 variant=\"tertiary\" onClick={ closeModal }>\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\tawait onConfirm( items );\n\t\t\t\t\t\t\tonPerform?.();\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Clear' ) }\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 deleteTemplateAction = {\n\tid: 'delete-template',\n\tlabel: __( 'Delete' ),\n\tisEligible: isTemplateRemovable,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( { items: templates, closeModal, onPerform } ) => {\n\t\tconst { removeTemplates } = unlock( useDispatch( editSiteStore ) );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ templates.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\ttemplates.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttemplates.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\tdecodeEntities(\n\t\t\t\t\t\t\t\t\ttemplates?.[ 0 ]?.title?.rendered\n\t\t\t\t\t\t\t\t)\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 variant=\"tertiary\" onClick={ closeModal }>\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\tawait removeTemplates( templates, {\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\tonPerform?.();\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\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\nexport const renameTemplateAction = {\n\tid: 'rename-template',\n\tlabel: __( 'Rename' ),\n\tisEligible: ( template ) => {\n\t\t// We can only remove templates or template parts that can be removed.\n\t\t// Additionally in the case of templates, we can only remove custom templates.\n\t\tif (\n\t\t\t! isTemplateRemovable( template ) ||\n\t\t\t( template.type === TEMPLATE_POST_TYPE && ! template.is_custom )\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\tRenderModal: ( { items: templates, closeModal } ) => {\n\t\tconst template = templates[ 0 ];\n\t\tconst title = decodeEntities( template.title.rendered );\n\t\tconst [ editedTitle, setEditedTitle ] = useState( title );\n\t\tconst {\n\t\t\teditEntityRecord,\n\t\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t\t} = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tasync function onTemplateRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: editedTitle,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetEditedTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t[ 'title' ], // Only save title to avoid persisting other edits.\n\t\t\t\t\t{\n\t\t\t\t\t\tthrowOnError: true,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'Template renamed.' )\n\t\t\t\t\t\t: __( 'Template part renamed.' ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tconst fallbackErrorMessage =\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'An error occurred while renaming the template.' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'An error occurred while renaming the template part.'\n\t\t\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<form onSubmit={ onTemplateRename }>\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={ editedTitle }\n\t\t\t\t\t\tonChange={ setEditedTitle }\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\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\t\t__next40pxDefaultSize\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\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t__next40pxDefaultSize\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"],"mappings":"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"}
@@ -3,7 +3,6 @@ import { createElement, Fragment } from "react";
3
3
  * External dependencies
4
4
  */
5
5
  import classnames from 'classnames';
6
- import removeAccents from 'remove-accents';
7
6
 
8
7
  /**
9
8
  * WordPress dependencies
@@ -15,8 +14,9 @@ import { useEntityRecords } from '@wordpress/core-data';
15
14
  import { decodeEntities } from '@wordpress/html-entities';
16
15
  import { parse } from '@wordpress/blocks';
17
16
  import { BlockPreview, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
18
- import { DataViews, sortByTextFields, getPaginationResults } from '@wordpress/dataviews';
17
+ import { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';
19
18
  import { privateApis as routerPrivateApis } from '@wordpress/router';
19
+ import { privateApis as editorPrivateApis } from '@wordpress/editor';
20
20
 
21
21
  /**
22
22
  * Internal dependencies
@@ -25,12 +25,14 @@ import Page from '../page';
25
25
  import { default as Link, useLink } from '../routes/link';
26
26
  import AddNewTemplate from '../add-new-template';
27
27
  import { useAddedBy } from './hooks';
28
- import { TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE, ENUMERATION_TYPE, OPERATOR_IS_ANY, OPERATOR_IS_NONE, LAYOUT_GRID, LAYOUT_TABLE, LAYOUT_LIST } from '../../utils/constants';
29
- import { useResetTemplateAction, deleteTemplateAction, renameTemplateAction } from './actions';
30
- import { postRevisionsAction } from '../actions';
28
+ import { TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE, ENUMERATION_TYPE, OPERATOR_IS_ANY, LAYOUT_GRID, LAYOUT_TABLE, LAYOUT_LIST } from '../../utils/constants';
29
+ import { resetTemplateAction, deleteTemplateAction, renameTemplateAction } from './actions';
31
30
  import usePatternSettings from '../page-patterns/use-pattern-settings';
32
31
  import { unlock } from '../../lock-unlock';
33
32
  import AddNewTemplatePart from './add-new-template-part';
33
+ const {
34
+ usePostActions
35
+ } = unlock(editorPrivateApis);
34
36
  const {
35
37
  ExperimentalBlockEditorProvider,
36
38
  useGlobalStyle
@@ -46,7 +48,8 @@ const defaultConfigPerViewType = {
46
48
  },
47
49
  [LAYOUT_GRID]: {
48
50
  mediaField: 'preview',
49
- primaryField: 'title'
51
+ primaryField: 'title',
52
+ displayAsColumnFields: ['description']
50
53
  },
51
54
  [LAYOUT_LIST]: {
52
55
  primaryField: 'title',
@@ -68,9 +71,6 @@ const DEFAULT_VIEW = {
68
71
  layout: defaultConfigPerViewType[LAYOUT_TABLE],
69
72
  filters: []
70
73
  };
71
- function normalizeSearchInput(input = '') {
72
- return removeAccents(input.trim().toLowerCase());
73
- }
74
74
  function Title({
75
75
  item,
76
76
  viewType
@@ -120,7 +120,9 @@ function AuthorField({
120
120
  className: "page-templates-author-field__icon"
121
121
  }, createElement(Icon, {
122
122
  icon: icon
123
- })), createElement("span", null, text));
123
+ })), createElement("span", {
124
+ className: "page-templates-author-field__name"
125
+ }, text));
124
126
  }
125
127
  function Preview({
126
128
  item,
@@ -254,7 +256,8 @@ export default function PageTemplatesTemplateParts({
254
256
  viewType: view.type
255
257
  }),
256
258
  maxWidth: 400,
257
- enableHiding: false
259
+ enableHiding: false,
260
+ enableGlobalSearch: true
258
261
  }];
259
262
  if (postType === TEMPLATE_POST_TYPE) {
260
263
  _fields.push({
@@ -272,7 +275,8 @@ export default function PageTemplatesTemplateParts({
272
275
  },
273
276
  maxWidth: 400,
274
277
  minWidth: 320,
275
- enableSorting: false
278
+ enableSorting: false,
279
+ enableGlobalSearch: true
276
280
  });
277
281
  }
278
282
  // TODO: The plan is to support fields reordering, which would require an API like `order` or something
@@ -301,57 +305,20 @@ export default function PageTemplatesTemplateParts({
301
305
  data,
302
306
  paginationInfo
303
307
  } = useMemo(() => {
304
- if (!records) {
305
- return {
306
- data: EMPTY_ARRAY,
307
- paginationInfo: {
308
- totalItems: 0,
309
- totalPages: 0
310
- }
311
- };
312
- }
313
- let filteredData = [...records];
314
- // Handle global search.
315
- if (view.search) {
316
- const normalizedSearch = normalizeSearchInput(view.search);
317
- filteredData = filteredData.filter(item => {
318
- const title = item.title?.rendered || item.slug;
319
- return normalizeSearchInput(title).includes(normalizedSearch) || normalizeSearchInput(item.description).includes(normalizedSearch);
320
- });
321
- }
322
-
323
- // Handle filters.
324
- if (view.filters.length > 0) {
325
- view.filters.forEach(filter => {
326
- if (filter.field === 'author' && filter.operator === OPERATOR_IS_ANY && filter?.value?.length > 0) {
327
- filteredData = filteredData.filter(item => {
328
- return filter.value.includes(item.author_text);
329
- });
330
- } else if (filter.field === 'author' && filter.operator === OPERATOR_IS_NONE && filter?.value?.length > 0) {
331
- filteredData = filteredData.filter(item => {
332
- return !filter.value.includes(item.author_text);
333
- });
334
- }
335
- });
336
- }
337
-
338
- // Handle sorting.
339
- if (view.sort) {
340
- filteredData = sortByTextFields({
341
- data: filteredData,
342
- view,
343
- fields,
344
- textFields: ['title', 'author']
308
+ return filterSortAndPaginate(records, view, fields);
309
+ }, [records, view, fields]);
310
+ const onActionPerformed = useCallback((actionId, items) => {
311
+ if (actionId === 'edit-post') {
312
+ const post = items[0];
313
+ history.push({
314
+ postId: post.id,
315
+ postType: post.type,
316
+ canvas: 'edit'
345
317
  });
346
318
  }
347
- // Handle pagination.
348
- return getPaginationResults({
349
- data: filteredData,
350
- view
351
- });
352
- }, [records, view, fields]);
353
- const resetTemplateAction = useResetTemplateAction();
354
- const actions = useMemo(() => [resetTemplateAction, renameTemplateAction, postRevisionsAction, deleteTemplateAction], [resetTemplateAction]);
319
+ }, [history]);
320
+ const [editAction, viewRevisionsAction] = usePostActions(onActionPerformed, ['edit-post', 'view-post-revisions']);
321
+ const actions = useMemo(() => [editAction, resetTemplateAction, renameTemplateAction, viewRevisionsAction, deleteTemplateAction], [editAction, viewRevisionsAction]);
355
322
  const onChangeView = useCallback(newView => {
356
323
  if (newView.type !== view.type) {
357
324
  newView = {
@@ -386,7 +353,7 @@ export default function PageTemplatesTemplateParts({
386
353
  view: view,
387
354
  onChangeView: onChangeView,
388
355
  onSelectionChange: onSelectionChange,
389
- deferredRendering: !view.hiddenFields?.includes('preview')
356
+ deferredRendering: view.type === LAYOUT_GRID || !view.hiddenFields?.includes('preview')
390
357
  }));
391
358
  }
392
359
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","removeAccents","Icon","__experimentalText","Text","__experimentalHStack","HStack","VisuallyHidden","__","useState","useMemo","useCallback","useEffect","useEntityRecords","decodeEntities","parse","BlockPreview","privateApis","blockEditorPrivateApis","DataViews","sortByTextFields","getPaginationResults","routerPrivateApis","Page","default","Link","useLink","AddNewTemplate","useAddedBy","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","ENUMERATION_TYPE","OPERATOR_IS_ANY","OPERATOR_IS_NONE","LAYOUT_GRID","LAYOUT_TABLE","LAYOUT_LIST","useResetTemplateAction","deleteTemplateAction","renameTemplateAction","postRevisionsAction","usePatternSettings","unlock","AddNewTemplatePart","ExperimentalBlockEditorProvider","useGlobalStyle","useHistory","useLocation","EMPTY_ARRAY","defaultConfigPerViewType","primaryField","mediaField","DEFAULT_VIEW","type","search","page","perPage","sort","field","direction","hiddenFields","layout","filters","normalizeSearchInput","input","trim","toLowerCase","Title","item","viewType","title","rendered","linkProps","params","postId","id","postType","canvas","state","backPath","createElement","AuthorField","isImageLoaded","setIsImageLoaded","text","icon","imageUrl","withIcon","alignment","spacing","className","onLoad","alt","src","Preview","settings","backgroundColor","blocks","content","raw","onClick","isEmpty","length","style","PageTemplatesTemplateParts","activeView","defaultView","usedType","operator","value","view","setView","currentView","records","isResolving","isLoadingData","per_page","history","onSelectionChange","items","push","undefined","authors","authorsSet","Set","forEach","template","add","author_text","Array","from","map","author","label","fields","_fields","header","render","minWidth","maxWidth","enableSorting","getValue","enableHiding","description","Fragment","variant","elements","width","data","paginationInfo","totalItems","totalPages","filteredData","normalizedSearch","filter","slug","includes","textFields","resetTemplateAction","actions","onChangeView","newView","templateType","showIcon","toggleProps","isLoading","deferredRendering"],"sources":["@wordpress/edit-site/src/components/page-templates-template-parts/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useMemo, useCallback, useEffect } from '@wordpress/element';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { parse } from '@wordpress/blocks';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tDataViews,\n\tsortByTextFields,\n\tgetPaginationResults,\n} from '@wordpress/dataviews';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport { default as Link, useLink } from '../routes/link';\nimport AddNewTemplate from '../add-new-template';\nimport { useAddedBy } from './hooks';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tENUMERATION_TYPE,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tLAYOUT_LIST,\n} from '../../utils/constants';\nimport {\n\tuseResetTemplateAction,\n\tdeleteTemplateAction,\n\trenameTemplateAction,\n} from './actions';\nimport { postRevisionsAction } from '../actions';\nimport usePatternSettings from '../page-patterns/use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\nimport AddNewTemplatePart from './add-new-template-part';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nconst defaultConfigPerViewType = {\n\t[ LAYOUT_TABLE ]: {\n\t\tprimaryField: 'title',\n\t},\n\t[ LAYOUT_GRID ]: {\n\t\tmediaField: 'preview',\n\t\tprimaryField: 'title',\n\t},\n\t[ LAYOUT_LIST ]: {\n\t\tprimaryField: 'title',\n\t\tmediaField: 'preview',\n\t},\n};\n\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_TABLE,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\tsort: {\n\t\tfield: 'title',\n\t\tdirection: 'asc',\n\t},\n\t// All fields are visible by default, so it's\n\t// better to keep track of the hidden ones.\n\thiddenFields: [ 'preview' ],\n\tlayout: defaultConfigPerViewType[ LAYOUT_TABLE ],\n\tfilters: [],\n};\n\nfunction normalizeSearchInput( input = '' ) {\n\treturn removeAccents( input.trim().toLowerCase() );\n}\n\nfunction Title( { item, viewType } ) {\n\tif ( viewType === LAYOUT_LIST ) {\n\t\treturn decodeEntities( item.title?.rendered ) || __( '(no title)' );\n\t}\n\tconst linkProps = {\n\t\tparams: {\n\t\t\tpostId: item.id,\n\t\t\tpostType: item.type,\n\t\t\tcanvas: 'edit',\n\t\t},\n\t};\n\tif ( item.type === TEMPLATE_PART_POST_TYPE ) {\n\t\tlinkProps.state = {\n\t\t\tbackPath: '/wp_template_part/all',\n\t\t};\n\t}\n\treturn (\n\t\t<Link { ...linkProps }>\n\t\t\t{ decodeEntities( item.title?.rendered ) || __( '(no title)' ) }\n\t\t</Link>\n\t);\n}\n\nfunction AuthorField( { item, viewType } ) {\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\tconst { text, icon, imageUrl } = useAddedBy( item.type, item.id );\n\tconst withIcon = viewType !== LAYOUT_LIST;\n\n\treturn (\n\t\t<HStack alignment=\"left\" spacing={ 1 }>\n\t\t\t{ withIcon && imageUrl && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'page-templates-author-field__avatar',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-loaded': isImageLoaded,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<img\n\t\t\t\t\t\tonLoad={ () => setIsImageLoaded( true ) }\n\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\tsrc={ imageUrl }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ withIcon && ! imageUrl && (\n\t\t\t\t<div className=\"page-templates-author-field__icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<span>{ text }</span>\n\t\t</HStack>\n\t);\n}\n\nfunction Preview( { item, viewType } ) {\n\tconst settings = usePatternSettings();\n\tconst [ backgroundColor = 'white' ] = useGlobalStyle( 'color.background' );\n\tconst blocks = useMemo( () => {\n\t\treturn parse( item.content.raw );\n\t}, [ item.content.raw ] );\n\tconst { onClick } = useLink( {\n\t\tpostId: item.id,\n\t\tpostType: item.type,\n\t\tcanvas: 'edit',\n\t} );\n\n\tconst isEmpty = ! blocks?.length;\n\t// Wrap everything in a block editor provider to ensure 'styles' that are needed\n\t// for the previews are synced between the site editor store and the block editor store.\n\t// Additionally we need to have the `__experimentalBlockPatterns` setting in order to\n\t// render patterns inside the previews.\n\t// TODO: Same approach is used in the patterns list and it becomes obvious that some of\n\t// the block editor settings are needed in context where we don't have the block editor.\n\t// Explore how we can solve this in a better way.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<div\n\t\t\t\tclassName={ `page-templates-preview-field is-viewtype-${ viewType }` }\n\t\t\t\tstyle={ { backgroundColor } }\n\t\t\t>\n\t\t\t\t{ viewType === LAYOUT_LIST && ! isEmpty && (\n\t\t\t\t\t<BlockPreview blocks={ blocks } />\n\t\t\t\t) }\n\t\t\t\t{ viewType !== LAYOUT_LIST && (\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"page-templates-preview-field__button\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\taria-label={ item.title?.rendered || item.title }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isEmpty &&\n\t\t\t\t\t\t\t( item.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t\t\t? __( 'Empty template' )\n\t\t\t\t\t\t\t\t: __( 'Empty template part' ) ) }\n\t\t\t\t\t\t{ ! isEmpty && <BlockPreview blocks={ blocks } /> }\n\t\t\t\t\t</button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n\nexport default function PageTemplatesTemplateParts( { postType } ) {\n\tconst { params } = useLocation();\n\tconst { activeView = 'all', layout } = params;\n\tconst defaultView = useMemo( () => {\n\t\tconst usedType = layout ?? DEFAULT_VIEW.type;\n\t\treturn {\n\t\t\t...DEFAULT_VIEW,\n\t\t\ttype: usedType,\n\t\t\tlayout: defaultConfigPerViewType[ usedType ],\n\t\t\tfilters:\n\t\t\t\tactiveView !== 'all'\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield: 'author',\n\t\t\t\t\t\t\t\toperator: 'isAny',\n\t\t\t\t\t\t\t\tvalue: [ activeView ],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [],\n\t\t};\n\t}, [ layout, activeView ] );\n\tconst [ view, setView ] = useState( defaultView );\n\tuseEffect( () => {\n\t\tsetView( ( currentView ) => ( {\n\t\t\t...currentView,\n\t\t\tfilters:\n\t\t\t\tactiveView !== 'all'\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield: 'author',\n\t\t\t\t\t\t\t\toperator: OPERATOR_IS_ANY,\n\t\t\t\t\t\t\t\tvalue: [ activeView ],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [],\n\t\t} ) );\n\t}, [ activeView ] );\n\n\tconst { records, isResolving: isLoadingData } = useEntityRecords(\n\t\t'postType',\n\t\tpostType,\n\t\t{\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\tconst history = useHistory();\n\tconst onSelectionChange = useCallback(\n\t\t( items ) => {\n\t\t\tif ( view?.type === LAYOUT_LIST ) {\n\t\t\t\thistory.push( {\n\t\t\t\t\t...params,\n\t\t\t\t\tpostId: items.length === 1 ? items[ 0 ].id : undefined,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ history, params, view?.type ]\n\t);\n\n\tconst authors = useMemo( () => {\n\t\tif ( ! records ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\tconst authorsSet = new Set();\n\t\trecords.forEach( ( template ) => {\n\t\t\tauthorsSet.add( template.author_text );\n\t\t} );\n\t\treturn Array.from( authorsSet ).map( ( author ) => ( {\n\t\t\tvalue: author,\n\t\t\tlabel: author,\n\t\t} ) );\n\t}, [ records ] );\n\n\tconst fields = useMemo( () => {\n\t\tconst _fields = [\n\t\t\t{\n\t\t\t\theader: __( 'Preview' ),\n\t\t\t\tid: 'preview',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn <Preview item={ item } viewType={ view.type } />;\n\t\t\t\t},\n\t\t\t\tminWidth: 120,\n\t\t\t\tmaxWidth: 120,\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader:\n\t\t\t\t\tpostType === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'Template' )\n\t\t\t\t\t\t: __( 'Template Part' ),\n\t\t\t\tid: 'title',\n\t\t\t\tgetValue: ( { item } ) => item.title?.rendered,\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Title item={ item } viewType={ view.type } />\n\t\t\t\t),\n\t\t\t\tmaxWidth: 400,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t];\n\t\tif ( postType === TEMPLATE_POST_TYPE ) {\n\t\t\t_fields.push( {\n\t\t\t\theader: __( 'Description' ),\n\t\t\t\tid: 'description',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn item.description ? (\n\t\t\t\t\t\t<span className=\"page-templates-description\">\n\t\t\t\t\t\t\t{ decodeEntities( item.description ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tview.type === LAYOUT_TABLE && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Text variant=\"muted\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t&#8212;\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t\t\t{ __( 'No description.' ) }\n\t\t\t\t\t\t\t\t</VisuallyHidden>\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\tmaxWidth: 400,\n\t\t\t\tminWidth: 320,\n\t\t\t\tenableSorting: false,\n\t\t\t} );\n\t\t}\n\t\t// TODO: The plan is to support fields reordering, which would require an API like `order` or something\n\t\t// similar. With the aforementioned API we wouldn't need to construct the fields array like this.\n\t\t_fields.push( {\n\t\t\theader: __( 'Author' ),\n\t\t\tid: 'author',\n\t\t\tgetValue: ( { item } ) => item.author_text,\n\t\t\trender: ( { item } ) => {\n\t\t\t\treturn <AuthorField viewType={ view.type } item={ item } />;\n\t\t\t},\n\t\t\ttype: ENUMERATION_TYPE,\n\t\t\telements: authors,\n\t\t\twidth: '1%',\n\t\t} );\n\t\treturn _fields;\n\t}, [ postType, authors, view.type ] );\n\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\tif ( ! records ) {\n\t\t\treturn {\n\t\t\t\tdata: EMPTY_ARRAY,\n\t\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t\t};\n\t\t}\n\t\tlet filteredData = [ ...records ];\n\t\t// Handle global search.\n\t\tif ( view.search ) {\n\t\t\tconst normalizedSearch = normalizeSearchInput( view.search );\n\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\tconst title = item.title?.rendered || item.slug;\n\t\t\t\treturn (\n\t\t\t\t\tnormalizeSearchInput( title ).includes(\n\t\t\t\t\t\tnormalizedSearch\n\t\t\t\t\t) ||\n\t\t\t\t\tnormalizeSearchInput( item.description ).includes(\n\t\t\t\t\t\tnormalizedSearch\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\t// Handle filters.\n\t\tif ( view.filters.length > 0 ) {\n\t\t\tview.filters.forEach( ( filter ) => {\n\t\t\t\tif (\n\t\t\t\t\tfilter.field === 'author' &&\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ANY &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.includes( item.author_text );\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.field === 'author' &&\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NONE &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn ! filter.value.includes( item.author_text );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Handle sorting.\n\t\tif ( view.sort ) {\n\t\t\tfilteredData = sortByTextFields( {\n\t\t\t\tdata: filteredData,\n\t\t\t\tview,\n\t\t\t\tfields,\n\t\t\t\ttextFields: [ 'title', 'author' ],\n\t\t\t} );\n\t\t}\n\t\t// Handle pagination.\n\t\treturn getPaginationResults( {\n\t\t\tdata: filteredData,\n\t\t\tview,\n\t\t} );\n\t}, [ records, view, fields ] );\n\n\tconst resetTemplateAction = useResetTemplateAction();\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\tresetTemplateAction,\n\t\t\trenameTemplateAction,\n\t\t\tpostRevisionsAction,\n\t\t\tdeleteTemplateAction,\n\t\t],\n\t\t[ resetTemplateAction ]\n\t);\n\n\tconst onChangeView = useCallback(\n\t\t( newView ) => {\n\t\t\tif ( newView.type !== view.type ) {\n\t\t\t\tnewView = {\n\t\t\t\t\t...newView,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...defaultConfigPerViewType[ newView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\thistory.push( {\n\t\t\t\t\t...params,\n\t\t\t\t\tlayout: newView.type,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tsetView( newView );\n\t\t},\n\t\t[ view.type, setView, history, params ]\n\t);\n\n\treturn (\n\t\t<Page\n\t\t\tclassName=\"edit-site-page-template-template-parts-dataviews\"\n\t\t\ttitle={\n\t\t\t\tpostType === TEMPLATE_POST_TYPE\n\t\t\t\t\t? __( 'Templates' )\n\t\t\t\t\t: __( 'Template Parts' )\n\t\t\t}\n\t\t\tactions={\n\t\t\t\tpostType === TEMPLATE_POST_TYPE ? (\n\t\t\t\t\t<AddNewTemplate\n\t\t\t\t\t\ttemplateType={ postType }\n\t\t\t\t\t\tshowIcon={ false }\n\t\t\t\t\t\ttoggleProps={ { variant: 'primary' } }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<AddNewTemplatePart />\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t<DataViews\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\tfields={ fields }\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tisLoading={ isLoadingData }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\tdeferredRendering={ ! view.hiddenFields?.includes( 'preview' ) }\n\t\t\t/>\n\t\t</Page>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","Icon","__experimentalText","Text","__experimentalHStack","HStack","VisuallyHidden","__","useState","useMemo","useCallback","useEffect","useEntityRecords","decodeEntities","parse","BlockPreview","privateApis","blockEditorPrivateApis","DataViews","filterSortAndPaginate","routerPrivateApis","editorPrivateApis","Page","default","Link","useLink","AddNewTemplate","useAddedBy","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","ENUMERATION_TYPE","OPERATOR_IS_ANY","LAYOUT_GRID","LAYOUT_TABLE","LAYOUT_LIST","resetTemplateAction","deleteTemplateAction","renameTemplateAction","usePatternSettings","unlock","AddNewTemplatePart","usePostActions","ExperimentalBlockEditorProvider","useGlobalStyle","useHistory","useLocation","EMPTY_ARRAY","defaultConfigPerViewType","primaryField","mediaField","displayAsColumnFields","DEFAULT_VIEW","type","search","page","perPage","sort","field","direction","hiddenFields","layout","filters","Title","item","viewType","title","rendered","linkProps","params","postId","id","postType","canvas","state","backPath","createElement","AuthorField","isImageLoaded","setIsImageLoaded","text","icon","imageUrl","withIcon","alignment","spacing","className","onLoad","alt","src","Preview","settings","backgroundColor","blocks","content","raw","onClick","isEmpty","length","style","PageTemplatesTemplateParts","activeView","defaultView","usedType","operator","value","view","setView","currentView","records","isResolving","isLoadingData","per_page","history","onSelectionChange","items","push","undefined","authors","authorsSet","Set","forEach","template","add","author_text","Array","from","map","author","label","fields","_fields","header","render","minWidth","maxWidth","enableSorting","getValue","enableHiding","enableGlobalSearch","description","Fragment","variant","elements","width","data","paginationInfo","onActionPerformed","actionId","post","editAction","viewRevisionsAction","actions","onChangeView","newView","templateType","showIcon","toggleProps","isLoading","deferredRendering","includes"],"sources":["@wordpress/edit-site/src/components/page-templates-template-parts/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useMemo, useCallback, useEffect } from '@wordpress/element';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { parse } from '@wordpress/blocks';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport { default as Link, useLink } from '../routes/link';\nimport AddNewTemplate from '../add-new-template';\nimport { useAddedBy } from './hooks';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tENUMERATION_TYPE,\n\tOPERATOR_IS_ANY,\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tLAYOUT_LIST,\n} from '../../utils/constants';\nimport {\n\tresetTemplateAction,\n\tdeleteTemplateAction,\n\trenameTemplateAction,\n} from './actions';\nimport usePatternSettings from '../page-patterns/use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\nimport AddNewTemplatePart from './add-new-template-part';\n\nconst { usePostActions } = unlock( editorPrivateApis );\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nconst defaultConfigPerViewType = {\n\t[ LAYOUT_TABLE ]: {\n\t\tprimaryField: 'title',\n\t},\n\t[ LAYOUT_GRID ]: {\n\t\tmediaField: 'preview',\n\t\tprimaryField: 'title',\n\t\tdisplayAsColumnFields: [ 'description' ],\n\t},\n\t[ LAYOUT_LIST ]: {\n\t\tprimaryField: 'title',\n\t\tmediaField: 'preview',\n\t},\n};\n\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_TABLE,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\tsort: {\n\t\tfield: 'title',\n\t\tdirection: 'asc',\n\t},\n\t// All fields are visible by default, so it's\n\t// better to keep track of the hidden ones.\n\thiddenFields: [ 'preview' ],\n\tlayout: defaultConfigPerViewType[ LAYOUT_TABLE ],\n\tfilters: [],\n};\n\nfunction Title( { item, viewType } ) {\n\tif ( viewType === LAYOUT_LIST ) {\n\t\treturn decodeEntities( item.title?.rendered ) || __( '(no title)' );\n\t}\n\tconst linkProps = {\n\t\tparams: {\n\t\t\tpostId: item.id,\n\t\t\tpostType: item.type,\n\t\t\tcanvas: 'edit',\n\t\t},\n\t};\n\tif ( item.type === TEMPLATE_PART_POST_TYPE ) {\n\t\tlinkProps.state = {\n\t\t\tbackPath: '/wp_template_part/all',\n\t\t};\n\t}\n\treturn (\n\t\t<Link { ...linkProps }>\n\t\t\t{ decodeEntities( item.title?.rendered ) || __( '(no title)' ) }\n\t\t</Link>\n\t);\n}\n\nfunction AuthorField( { item, viewType } ) {\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\tconst { text, icon, imageUrl } = useAddedBy( item.type, item.id );\n\tconst withIcon = viewType !== LAYOUT_LIST;\n\n\treturn (\n\t\t<HStack alignment=\"left\" spacing={ 1 }>\n\t\t\t{ withIcon && imageUrl && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'page-templates-author-field__avatar',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-loaded': isImageLoaded,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<img\n\t\t\t\t\t\tonLoad={ () => setIsImageLoaded( true ) }\n\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\tsrc={ imageUrl }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ withIcon && ! imageUrl && (\n\t\t\t\t<div className=\"page-templates-author-field__icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<span className=\"page-templates-author-field__name\">{ text }</span>\n\t\t</HStack>\n\t);\n}\n\nfunction Preview( { item, viewType } ) {\n\tconst settings = usePatternSettings();\n\tconst [ backgroundColor = 'white' ] = useGlobalStyle( 'color.background' );\n\tconst blocks = useMemo( () => {\n\t\treturn parse( item.content.raw );\n\t}, [ item.content.raw ] );\n\tconst { onClick } = useLink( {\n\t\tpostId: item.id,\n\t\tpostType: item.type,\n\t\tcanvas: 'edit',\n\t} );\n\n\tconst isEmpty = ! blocks?.length;\n\t// Wrap everything in a block editor provider to ensure 'styles' that are needed\n\t// for the previews are synced between the site editor store and the block editor store.\n\t// Additionally we need to have the `__experimentalBlockPatterns` setting in order to\n\t// render patterns inside the previews.\n\t// TODO: Same approach is used in the patterns list and it becomes obvious that some of\n\t// the block editor settings are needed in context where we don't have the block editor.\n\t// Explore how we can solve this in a better way.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<div\n\t\t\t\tclassName={ `page-templates-preview-field is-viewtype-${ viewType }` }\n\t\t\t\tstyle={ { backgroundColor } }\n\t\t\t>\n\t\t\t\t{ viewType === LAYOUT_LIST && ! isEmpty && (\n\t\t\t\t\t<BlockPreview blocks={ blocks } />\n\t\t\t\t) }\n\t\t\t\t{ viewType !== LAYOUT_LIST && (\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"page-templates-preview-field__button\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\taria-label={ item.title?.rendered || item.title }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isEmpty &&\n\t\t\t\t\t\t\t( item.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t\t\t? __( 'Empty template' )\n\t\t\t\t\t\t\t\t: __( 'Empty template part' ) ) }\n\t\t\t\t\t\t{ ! isEmpty && <BlockPreview blocks={ blocks } /> }\n\t\t\t\t\t</button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n\nexport default function PageTemplatesTemplateParts( { postType } ) {\n\tconst { params } = useLocation();\n\tconst { activeView = 'all', layout } = params;\n\tconst defaultView = useMemo( () => {\n\t\tconst usedType = layout ?? DEFAULT_VIEW.type;\n\t\treturn {\n\t\t\t...DEFAULT_VIEW,\n\t\t\ttype: usedType,\n\t\t\tlayout: defaultConfigPerViewType[ usedType ],\n\t\t\tfilters:\n\t\t\t\tactiveView !== 'all'\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield: 'author',\n\t\t\t\t\t\t\t\toperator: 'isAny',\n\t\t\t\t\t\t\t\tvalue: [ activeView ],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [],\n\t\t};\n\t}, [ layout, activeView ] );\n\tconst [ view, setView ] = useState( defaultView );\n\tuseEffect( () => {\n\t\tsetView( ( currentView ) => ( {\n\t\t\t...currentView,\n\t\t\tfilters:\n\t\t\t\tactiveView !== 'all'\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfield: 'author',\n\t\t\t\t\t\t\t\toperator: OPERATOR_IS_ANY,\n\t\t\t\t\t\t\t\tvalue: [ activeView ],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [],\n\t\t} ) );\n\t}, [ activeView ] );\n\n\tconst { records, isResolving: isLoadingData } = useEntityRecords(\n\t\t'postType',\n\t\tpostType,\n\t\t{\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\tconst history = useHistory();\n\tconst onSelectionChange = useCallback(\n\t\t( items ) => {\n\t\t\tif ( view?.type === LAYOUT_LIST ) {\n\t\t\t\thistory.push( {\n\t\t\t\t\t...params,\n\t\t\t\t\tpostId: items.length === 1 ? items[ 0 ].id : undefined,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ history, params, view?.type ]\n\t);\n\n\tconst authors = useMemo( () => {\n\t\tif ( ! records ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\tconst authorsSet = new Set();\n\t\trecords.forEach( ( template ) => {\n\t\t\tauthorsSet.add( template.author_text );\n\t\t} );\n\t\treturn Array.from( authorsSet ).map( ( author ) => ( {\n\t\t\tvalue: author,\n\t\t\tlabel: author,\n\t\t} ) );\n\t}, [ records ] );\n\n\tconst fields = useMemo( () => {\n\t\tconst _fields = [\n\t\t\t{\n\t\t\t\theader: __( 'Preview' ),\n\t\t\t\tid: 'preview',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn <Preview item={ item } viewType={ view.type } />;\n\t\t\t\t},\n\t\t\t\tminWidth: 120,\n\t\t\t\tmaxWidth: 120,\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader:\n\t\t\t\t\tpostType === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'Template' )\n\t\t\t\t\t\t: __( 'Template Part' ),\n\t\t\t\tid: 'title',\n\t\t\t\tgetValue: ( { item } ) => item.title?.rendered,\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Title item={ item } viewType={ view.type } />\n\t\t\t\t),\n\t\t\t\tmaxWidth: 400,\n\t\t\t\tenableHiding: false,\n\t\t\t\tenableGlobalSearch: true,\n\t\t\t},\n\t\t];\n\t\tif ( postType === TEMPLATE_POST_TYPE ) {\n\t\t\t_fields.push( {\n\t\t\t\theader: __( 'Description' ),\n\t\t\t\tid: 'description',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn item.description ? (\n\t\t\t\t\t\t<span className=\"page-templates-description\">\n\t\t\t\t\t\t\t{ decodeEntities( item.description ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tview.type === LAYOUT_TABLE && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Text variant=\"muted\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t&#8212;\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t\t\t{ __( 'No description.' ) }\n\t\t\t\t\t\t\t\t</VisuallyHidden>\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\tmaxWidth: 400,\n\t\t\t\tminWidth: 320,\n\t\t\t\tenableSorting: false,\n\t\t\t\tenableGlobalSearch: true,\n\t\t\t} );\n\t\t}\n\t\t// TODO: The plan is to support fields reordering, which would require an API like `order` or something\n\t\t// similar. With the aforementioned API we wouldn't need to construct the fields array like this.\n\t\t_fields.push( {\n\t\t\theader: __( 'Author' ),\n\t\t\tid: 'author',\n\t\t\tgetValue: ( { item } ) => item.author_text,\n\t\t\trender: ( { item } ) => {\n\t\t\t\treturn <AuthorField viewType={ view.type } item={ item } />;\n\t\t\t},\n\t\t\ttype: ENUMERATION_TYPE,\n\t\t\telements: authors,\n\t\t\twidth: '1%',\n\t\t} );\n\t\treturn _fields;\n\t}, [ postType, authors, view.type ] );\n\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\treturn filterSortAndPaginate( records, view, fields );\n\t}, [ records, view, fields ] );\n\n\tconst onActionPerformed = useCallback(\n\t\t( actionId, items ) => {\n\t\t\tif ( actionId === 'edit-post' ) {\n\t\t\t\tconst post = items[ 0 ];\n\t\t\t\thistory.push( {\n\t\t\t\t\tpostId: post.id,\n\t\t\t\t\tpostType: post.type,\n\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ history ]\n\t);\n\tconst [ editAction, viewRevisionsAction ] = usePostActions(\n\t\tonActionPerformed,\n\t\t[ 'edit-post', 'view-post-revisions' ]\n\t);\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\teditAction,\n\t\t\tresetTemplateAction,\n\t\t\trenameTemplateAction,\n\t\t\tviewRevisionsAction,\n\t\t\tdeleteTemplateAction,\n\t\t],\n\t\t[ editAction, viewRevisionsAction ]\n\t);\n\n\tconst onChangeView = useCallback(\n\t\t( newView ) => {\n\t\t\tif ( newView.type !== view.type ) {\n\t\t\t\tnewView = {\n\t\t\t\t\t...newView,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...defaultConfigPerViewType[ newView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\thistory.push( {\n\t\t\t\t\t...params,\n\t\t\t\t\tlayout: newView.type,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tsetView( newView );\n\t\t},\n\t\t[ view.type, setView, history, params ]\n\t);\n\n\treturn (\n\t\t<Page\n\t\t\tclassName=\"edit-site-page-template-template-parts-dataviews\"\n\t\t\ttitle={\n\t\t\t\tpostType === TEMPLATE_POST_TYPE\n\t\t\t\t\t? __( 'Templates' )\n\t\t\t\t\t: __( 'Template Parts' )\n\t\t\t}\n\t\t\tactions={\n\t\t\t\tpostType === TEMPLATE_POST_TYPE ? (\n\t\t\t\t\t<AddNewTemplate\n\t\t\t\t\t\ttemplateType={ postType }\n\t\t\t\t\t\tshowIcon={ false }\n\t\t\t\t\t\ttoggleProps={ { variant: 'primary' } }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<AddNewTemplatePart />\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t<DataViews\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\tfields={ fields }\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tisLoading={ isLoadingData }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\tdeferredRendering={\n\t\t\t\t\tview.type === LAYOUT_GRID ||\n\t\t\t\t\t! view.hiddenFields?.includes( 'preview' )\n\t\t\t\t}\n\t\t\t/>\n\t\t</Page>\n\t);\n}\n"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { createElement } from "react";
1
2
  /**
2
3
  * Defines an extensibility slot for the Template sidebar.
3
4
  */
@@ -5,12 +6,22 @@
5
6
  /**
6
7
  * WordPress dependencies
7
8
  */
9
+ import { store as editorStore } from '@wordpress/editor';
10
+ import { useSelect } from '@wordpress/data';
8
11
  import { createSlotFill } from '@wordpress/components';
9
12
  const {
10
13
  Fill,
11
14
  Slot
12
15
  } = createSlotFill('PluginTemplateSettingPanel');
13
- const PluginTemplateSettingPanel = Fill;
16
+ const PluginTemplateSettingPanel = ({
17
+ children
18
+ }) => {
19
+ const isCurrentEntityTemplate = useSelect(select => select(editorStore).getCurrentPostType() === 'wp_template', []);
20
+ if (!isCurrentEntityTemplate) {
21
+ return null;
22
+ }
23
+ return createElement(Fill, null, children);
24
+ };
14
25
  PluginTemplateSettingPanel.Slot = Slot;
15
26
 
16
27
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["createSlotFill","Fill","Slot","PluginTemplateSettingPanel"],"sources":["@wordpress/edit-site/src/components/plugin-template-setting-panel/index.js"],"sourcesContent":["/**\n * Defines an extensibility slot for the Template sidebar.\n */\n\n/**\n * WordPress dependencies\n */\nimport { createSlotFill } from '@wordpress/components';\n\nconst { Fill, Slot } = createSlotFill( 'PluginTemplateSettingPanel' );\n\nconst PluginTemplateSettingPanel = Fill;\nPluginTemplateSettingPanel.Slot = Slot;\n\n/**\n * Renders items in the Template Sidebar below the main information\n * like the Template Card.\n *\n * @example\n * ```jsx\n * // Using ESNext syntax\n * import { PluginTemplateSettingPanel } from '@wordpress/edit-site';\n *\n * const MyTemplateSettingTest = () => (\n * \t\t<PluginTemplateSettingPanel>\n *\t\t\t<p>Hello, World!</p>\n *\t\t</PluginTemplateSettingPanel>\n *\t);\n * ```\n *\n * @return {Component} The component to be rendered.\n */\nexport default PluginTemplateSettingPanel;\n"],"mappings":"AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAASA,cAAc,QAAQ,uBAAuB;AAEtD,MAAM;EAAEC,IAAI;EAAEC;AAAK,CAAC,GAAGF,cAAc,CAAE,4BAA6B,CAAC;AAErE,MAAMG,0BAA0B,GAAGF,IAAI;AACvCE,0BAA0B,CAACD,IAAI,GAAGA,IAAI;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAeC,0BAA0B"}
1
+ {"version":3,"names":["store","editorStore","useSelect","createSlotFill","Fill","Slot","PluginTemplateSettingPanel","children","isCurrentEntityTemplate","select","getCurrentPostType","createElement"],"sources":["@wordpress/edit-site/src/components/plugin-template-setting-panel/index.js"],"sourcesContent":["/**\n * Defines an extensibility slot for the Template sidebar.\n */\n\n/**\n * WordPress dependencies\n */\nimport { store as editorStore } from '@wordpress/editor';\nimport { useSelect } from '@wordpress/data';\nimport { createSlotFill } from '@wordpress/components';\n\nconst { Fill, Slot } = createSlotFill( 'PluginTemplateSettingPanel' );\n\nconst PluginTemplateSettingPanel = ( { children } ) => {\n\tconst isCurrentEntityTemplate = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).getCurrentPostType() === 'wp_template',\n\t\t[]\n\t);\n\tif ( ! isCurrentEntityTemplate ) {\n\t\treturn null;\n\t}\n\treturn <Fill>{ children }</Fill>;\n};\n\nPluginTemplateSettingPanel.Slot = Slot;\n\n/**\n * Renders items in the Template Sidebar below the main information\n * like the Template Card.\n *\n * @example\n * ```jsx\n * // Using ESNext syntax\n * import { PluginTemplateSettingPanel } from '@wordpress/edit-site';\n *\n * const MyTemplateSettingTest = () => (\n * \t\t<PluginTemplateSettingPanel>\n *\t\t\t<p>Hello, World!</p>\n *\t\t</PluginTemplateSettingPanel>\n *\t);\n * ```\n *\n * @return {Component} The component to be rendered.\n */\nexport default PluginTemplateSettingPanel;\n"],"mappings":";AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,WAAW,QAAQ,mBAAmB;AACxD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,cAAc,QAAQ,uBAAuB;AAEtD,MAAM;EAAEC,IAAI;EAAEC;AAAK,CAAC,GAAGF,cAAc,CAAE,4BAA6B,CAAC;AAErE,MAAMG,0BAA0B,GAAGA,CAAE;EAAEC;AAAS,CAAC,KAAM;EACtD,MAAMC,uBAAuB,GAAGN,SAAS,CACtCO,MAAM,IACPA,MAAM,CAAER,WAAY,CAAC,CAACS,kBAAkB,CAAC,CAAC,KAAK,aAAa,EAC7D,EACD,CAAC;EACD,IAAK,CAAEF,uBAAuB,EAAG;IAChC,OAAO,IAAI;EACZ;EACA,OAAOG,aAAA,CAACP,IAAI,QAAGG,QAAgB,CAAC;AACjC,CAAC;AAEDD,0BAA0B,CAACD,IAAI,GAAGA,IAAI;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAeC,0BAA0B"}