@wordpress/edit-site 5.28.2 → 5.29.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 (258) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-pattern/index.js +18 -8
  3. package/build/components/add-new-pattern/index.js.map +1 -1
  4. package/build/components/block-editor/use-site-editor-settings.js +2 -1
  5. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  6. package/build/components/code-editor/index.js +3 -2
  7. package/build/components/code-editor/index.js.map +1 -1
  8. package/build/components/editor/index.js +4 -4
  9. package/build/components/editor/index.js.map +1 -1
  10. package/build/components/editor-canvas-container/index.js +1 -1
  11. package/build/components/editor-canvas-container/index.js.map +1 -1
  12. package/build/components/global-styles/block-preview-panel.js +2 -2
  13. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  14. package/build/components/global-styles/font-library-modal/collection-font-details.js +1 -1
  15. package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
  16. package/build/components/global-styles/font-library-modal/font-collection.js +84 -7
  17. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
  19. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  20. package/build/components/global-styles/font-library-modal/installed-fonts.js +10 -7
  21. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  22. package/build/components/header-edit-mode/document-tools/index.js +1 -2
  23. package/build/components/header-edit-mode/document-tools/index.js.map +1 -1
  24. package/build/components/header-edit-mode/index.js +3 -1
  25. package/build/components/header-edit-mode/index.js.map +1 -1
  26. package/build/components/header-edit-mode/more-menu/index.js +7 -4
  27. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  28. package/build/components/keyboard-shortcuts/edit-mode.js +0 -13
  29. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  30. package/build/components/keyboard-shortcuts/register.js +0 -18
  31. package/build/components/keyboard-shortcuts/register.js.map +1 -1
  32. package/build/components/layout/index.js +8 -4
  33. package/build/components/layout/index.js.map +1 -1
  34. package/build/components/layout/router.js +26 -5
  35. package/build/components/layout/router.js.map +1 -1
  36. package/build/components/page-patterns/dataviews-pattern-actions.js +25 -8
  37. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  38. package/build/components/page-patterns/header.js +2 -1
  39. package/build/components/page-patterns/header.js.map +1 -1
  40. package/build/components/page-patterns/index.js +0 -1
  41. package/build/components/page-patterns/index.js.map +1 -1
  42. package/build/components/page-patterns/use-patterns.js +10 -5
  43. package/build/components/page-patterns/use-patterns.js.map +1 -1
  44. package/build/components/page-templates-template-parts/index.js +1 -0
  45. package/build/components/page-templates-template-parts/index.js.map +1 -1
  46. package/build/components/save-button/index.js +2 -1
  47. package/build/components/save-button/index.js.map +1 -1
  48. package/build/components/sidebar/index.js +5 -2
  49. package/build/components/sidebar/index.js.map +1 -1
  50. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +5 -5
  51. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  52. package/build/components/sidebar-edit-mode/template-panel/hooks.js +20 -5
  53. package/build/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  54. package/build/components/sidebar-edit-mode/template-panel/index.js +48 -5
  55. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  56. package/build/components/sidebar-edit-mode/template-panel/template-actions.js +2 -9
  57. package/build/components/sidebar-edit-mode/template-panel/template-actions.js.map +1 -1
  58. package/build/components/sidebar-navigation-screen-global-styles/index.js +6 -2
  59. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  60. package/build/components/sidebar-navigation-screen-pages/index.js +3 -1
  61. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  62. package/build/components/style-book/index.js +2 -0
  63. package/build/components/style-book/index.js.map +1 -1
  64. package/build/hooks/commands/use-edit-mode-commands.js +3 -171
  65. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  66. package/build/hooks/index.js +0 -1
  67. package/build/hooks/index.js.map +1 -1
  68. package/build/hooks/push-changes-to-global-styles/index.js +4 -5
  69. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  70. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +91 -0
  71. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -0
  72. package/build/store/actions.js +19 -50
  73. package/build/store/actions.js.map +1 -1
  74. package/build/store/private-actions.js +3 -1
  75. package/build/store/private-actions.js.map +1 -1
  76. package/build/utils/clone-deep.js +15 -0
  77. package/build/utils/clone-deep.js.map +1 -0
  78. package/build-module/components/add-new-pattern/index.js +18 -8
  79. package/build-module/components/add-new-pattern/index.js.map +1 -1
  80. package/build-module/components/block-editor/use-site-editor-settings.js +2 -1
  81. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  82. package/build-module/components/code-editor/index.js +3 -2
  83. package/build-module/components/code-editor/index.js.map +1 -1
  84. package/build-module/components/editor/index.js +4 -4
  85. package/build-module/components/editor/index.js.map +1 -1
  86. package/build-module/components/editor-canvas-container/index.js +2 -2
  87. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  88. package/build-module/components/global-styles/block-preview-panel.js +2 -2
  89. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  90. package/build-module/components/global-styles/font-library-modal/collection-font-details.js +1 -1
  91. package/build-module/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
  92. package/build-module/components/global-styles/font-library-modal/font-collection.js +87 -10
  93. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  94. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
  95. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  96. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +11 -8
  97. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  98. package/build-module/components/header-edit-mode/document-tools/index.js +1 -2
  99. package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -1
  100. package/build-module/components/header-edit-mode/index.js +3 -1
  101. package/build-module/components/header-edit-mode/index.js.map +1 -1
  102. package/build-module/components/header-edit-mode/more-menu/index.js +6 -3
  103. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  104. package/build-module/components/keyboard-shortcuts/edit-mode.js +0 -13
  105. package/build-module/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  106. package/build-module/components/keyboard-shortcuts/register.js +0 -18
  107. package/build-module/components/keyboard-shortcuts/register.js.map +1 -1
  108. package/build-module/components/layout/index.js +9 -5
  109. package/build-module/components/layout/index.js.map +1 -1
  110. package/build-module/components/layout/router.js +26 -5
  111. package/build-module/components/layout/router.js.map +1 -1
  112. package/build-module/components/page-patterns/dataviews-pattern-actions.js +25 -8
  113. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
  114. package/build-module/components/page-patterns/header.js +2 -1
  115. package/build-module/components/page-patterns/header.js.map +1 -1
  116. package/build-module/components/page-patterns/index.js +0 -1
  117. package/build-module/components/page-patterns/index.js.map +1 -1
  118. package/build-module/components/page-patterns/use-patterns.js +10 -5
  119. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  120. package/build-module/components/page-templates-template-parts/index.js +1 -0
  121. package/build-module/components/page-templates-template-parts/index.js.map +1 -1
  122. package/build-module/components/save-button/index.js +2 -1
  123. package/build-module/components/save-button/index.js.map +1 -1
  124. package/build-module/components/sidebar/index.js +5 -2
  125. package/build-module/components/sidebar/index.js.map +1 -1
  126. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +5 -5
  127. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  128. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js +20 -5
  129. package/build-module/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
  130. package/build-module/components/sidebar-edit-mode/template-panel/index.js +50 -7
  131. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  132. package/build-module/components/sidebar-edit-mode/template-panel/template-actions.js +2 -9
  133. package/build-module/components/sidebar-edit-mode/template-panel/template-actions.js.map +1 -1
  134. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +6 -2
  135. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  136. package/build-module/components/sidebar-navigation-screen-pages/index.js +3 -1
  137. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  138. package/build-module/components/style-book/index.js +2 -0
  139. package/build-module/components/style-book/index.js.map +1 -1
  140. package/build-module/hooks/commands/use-edit-mode-commands.js +4 -172
  141. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  142. package/build-module/hooks/index.js +0 -1
  143. package/build-module/hooks/index.js.map +1 -1
  144. package/build-module/hooks/push-changes-to-global-styles/index.js +1 -3
  145. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  146. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +82 -0
  147. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -0
  148. package/build-module/store/actions.js +19 -50
  149. package/build-module/store/actions.js.map +1 -1
  150. package/build-module/store/private-actions.js +3 -1
  151. package/build-module/store/private-actions.js.map +1 -1
  152. package/build-module/utils/clone-deep.js +9 -0
  153. package/build-module/utils/clone-deep.js.map +1 -0
  154. package/build-style/style-rtl.css +46 -209
  155. package/build-style/style.css +46 -209
  156. package/package.json +43 -42
  157. package/src/components/add-new-pattern/index.js +27 -11
  158. package/src/components/block-editor/use-site-editor-settings.js +1 -0
  159. package/src/components/code-editor/index.js +3 -2
  160. package/src/components/editor/index.js +11 -7
  161. package/src/components/editor-canvas-container/index.js +2 -5
  162. package/src/components/{test → error-boundary/test}/error-boundary.js +7 -5
  163. package/src/components/global-styles/block-preview-panel.js +2 -2
  164. package/src/components/global-styles/font-library-modal/collection-font-details.js +1 -1
  165. package/src/components/global-styles/font-library-modal/font-collection.js +118 -13
  166. package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
  167. package/src/components/global-styles/font-library-modal/installed-fonts.js +25 -23
  168. package/src/components/global-styles/font-library-modal/style.scss +2 -5
  169. package/src/components/global-styles/screen-revisions/style.scss +2 -2
  170. package/src/components/global-styles/style.scss +1 -1
  171. package/src/components/header-edit-mode/document-tools/index.js +1 -2
  172. package/src/components/header-edit-mode/index.js +1 -1
  173. package/src/components/header-edit-mode/more-menu/index.js +8 -3
  174. package/src/components/keyboard-shortcuts/edit-mode.js +0 -11
  175. package/src/components/keyboard-shortcuts/register.js +0 -19
  176. package/src/components/layout/index.js +47 -32
  177. package/src/components/layout/router.js +31 -2
  178. package/src/components/layout/style.scss +7 -0
  179. package/src/components/page-patterns/dataviews-pattern-actions.js +41 -10
  180. package/src/components/page-patterns/header.js +1 -0
  181. package/src/components/page-patterns/index.js +0 -1
  182. package/src/components/page-patterns/style.scss +8 -180
  183. package/src/components/page-patterns/use-patterns.js +13 -5
  184. package/src/components/page-templates-template-parts/index.js +1 -0
  185. package/src/components/page-templates-template-parts/style.scss +6 -0
  186. package/src/components/save-button/index.js +2 -1
  187. package/src/components/save-hub/style.scss +1 -1
  188. package/src/components/sidebar/index.js +8 -3
  189. package/src/components/sidebar-button/style.scss +1 -1
  190. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +5 -7
  191. package/src/components/sidebar-edit-mode/style.scss +4 -0
  192. package/src/components/sidebar-edit-mode/template-panel/hooks.js +37 -24
  193. package/src/components/sidebar-edit-mode/template-panel/index.js +76 -18
  194. package/src/components/sidebar-edit-mode/template-panel/style.scss +5 -14
  195. package/src/components/sidebar-edit-mode/template-panel/template-actions.js +1 -12
  196. package/src/components/sidebar-navigation-screen-global-styles/index.js +4 -1
  197. package/src/components/sidebar-navigation-screen-pages/index.js +10 -6
  198. package/src/components/style-book/index.js +5 -1
  199. package/src/hooks/commands/use-edit-mode-commands.js +3 -184
  200. package/src/hooks/index.js +0 -1
  201. package/src/hooks/push-changes-to-global-styles/index.js +1 -4
  202. package/src/hooks/use-theme-style-variations/test/use-theme-style-variations-by-property.js +964 -0
  203. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +92 -0
  204. package/src/store/actions.js +21 -85
  205. package/src/store/private-actions.js +4 -0
  206. package/src/store/test/actions.js +0 -75
  207. package/src/style.scss +1 -6
  208. package/src/utils/clone-deep.js +8 -0
  209. package/build/components/global-styles/font-library-modal/fonts-grid.js +0 -57
  210. package/build/components/global-styles/font-library-modal/fonts-grid.js.map +0 -1
  211. package/build/components/header-edit-mode/mode-switcher/index.js +0 -62
  212. package/build/components/header-edit-mode/mode-switcher/index.js.map +0 -1
  213. package/build/components/page-patterns/duplicate-menu-item.js +0 -93
  214. package/build/components/page-patterns/duplicate-menu-item.js.map +0 -1
  215. package/build/components/page-patterns/grid-item.js +0 -223
  216. package/build/components/page-patterns/grid-item.js.map +0 -1
  217. package/build/components/page-patterns/grid.js +0 -31
  218. package/build/components/page-patterns/grid.js.map +0 -1
  219. package/build/components/page-patterns/no-patterns.js +0 -18
  220. package/build/components/page-patterns/no-patterns.js.map +0 -1
  221. package/build/components/page-patterns/patterns-list.js +0 -168
  222. package/build/components/page-patterns/patterns-list.js.map +0 -1
  223. package/build/components/page-patterns/rename-menu-item.js +0 -105
  224. package/build/components/page-patterns/rename-menu-item.js.map +0 -1
  225. package/build/components/sidebar-edit-mode/template-panel/replace-template-button.js +0 -83
  226. package/build/components/sidebar-edit-mode/template-panel/replace-template-button.js.map +0 -1
  227. package/build/hooks/navigation-menu-edit.js +0 -82
  228. package/build/hooks/navigation-menu-edit.js.map +0 -1
  229. package/build-module/components/global-styles/font-library-modal/fonts-grid.js +0 -50
  230. package/build-module/components/global-styles/font-library-modal/fonts-grid.js.map +0 -1
  231. package/build-module/components/header-edit-mode/mode-switcher/index.js +0 -56
  232. package/build-module/components/header-edit-mode/mode-switcher/index.js.map +0 -1
  233. package/build-module/components/page-patterns/duplicate-menu-item.js +0 -85
  234. package/build-module/components/page-patterns/duplicate-menu-item.js.map +0 -1
  235. package/build-module/components/page-patterns/grid-item.js +0 -215
  236. package/build-module/components/page-patterns/grid-item.js.map +0 -1
  237. package/build-module/components/page-patterns/grid.js +0 -23
  238. package/build-module/components/page-patterns/grid.js.map +0 -1
  239. package/build-module/components/page-patterns/no-patterns.js +0 -11
  240. package/build-module/components/page-patterns/no-patterns.js.map +0 -1
  241. package/build-module/components/page-patterns/patterns-list.js +0 -160
  242. package/build-module/components/page-patterns/patterns-list.js.map +0 -1
  243. package/build-module/components/page-patterns/rename-menu-item.js +0 -98
  244. package/build-module/components/page-patterns/rename-menu-item.js.map +0 -1
  245. package/build-module/components/sidebar-edit-mode/template-panel/replace-template-button.js +0 -76
  246. package/build-module/components/sidebar-edit-mode/template-panel/replace-template-button.js.map +0 -1
  247. package/build-module/hooks/navigation-menu-edit.js +0 -75
  248. package/build-module/hooks/navigation-menu-edit.js.map +0 -1
  249. package/src/components/global-styles/font-library-modal/fonts-grid.js +0 -59
  250. package/src/components/header-edit-mode/mode-switcher/index.js +0 -60
  251. package/src/components/page-patterns/duplicate-menu-item.js +0 -105
  252. package/src/components/page-patterns/grid-item.js +0 -331
  253. package/src/components/page-patterns/grid.js +0 -22
  254. package/src/components/page-patterns/no-patterns.js +0 -12
  255. package/src/components/page-patterns/patterns-list.js +0 -229
  256. package/src/components/page-patterns/rename-menu-item.js +0 -132
  257. package/src/components/sidebar-edit-mode/template-panel/replace-template-button.js +0 -89
  258. package/src/hooks/navigation-menu-edit.js +0 -92
@@ -1,223 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _react = require("react");
9
- var _classnames = _interopRequireDefault(require("classnames"));
10
- var _changeCase = require("change-case");
11
- var _blockEditor = require("@wordpress/block-editor");
12
- var _components = require("@wordpress/components");
13
- var _data = require("@wordpress/data");
14
- var _element = require("@wordpress/element");
15
- var _i18n = require("@wordpress/i18n");
16
- var _icons = require("@wordpress/icons");
17
- var _notices = require("@wordpress/notices");
18
- var _reusableBlocks = require("@wordpress/reusable-blocks");
19
- var _blob = require("@wordpress/blob");
20
- var _renameMenuItem = _interopRequireDefault(require("./rename-menu-item"));
21
- var _duplicateMenuItem = _interopRequireDefault(require("./duplicate-menu-item"));
22
- var _constants = require("../../utils/constants");
23
- var _store = require("../../store");
24
- var _link = require("../routes/link");
25
- var _lockUnlock = require("../../lock-unlock");
26
- /**
27
- * External dependencies
28
- */
29
-
30
- /**
31
- * WordPress dependencies
32
- */
33
-
34
- /**
35
- * Internal dependencies
36
- */
37
-
38
- const {
39
- useGlobalStyle
40
- } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
41
- const templatePartIcons = {
42
- header: _icons.header,
43
- footer: _icons.footer,
44
- uncategorized: _icons.symbolFilled
45
- };
46
- function GridItem({
47
- categoryId,
48
- item,
49
- ...props
50
- }) {
51
- const descriptionId = (0, _element.useId)();
52
- const [isDeleteDialogOpen, setIsDeleteDialogOpen] = (0, _element.useState)(false);
53
- const [backgroundColor] = useGlobalStyle('color.background');
54
- const {
55
- removeTemplate
56
- } = (0, _data.useDispatch)(_store.store);
57
- const {
58
- __experimentalDeleteReusableBlock
59
- } = (0, _data.useDispatch)(_reusableBlocks.store);
60
- const {
61
- createErrorNotice,
62
- createSuccessNotice
63
- } = (0, _data.useDispatch)(_notices.store);
64
- const isUserPattern = item.type === _constants.PATTERN_TYPES.user;
65
- const isNonUserPattern = item.type === _constants.PATTERN_TYPES.theme;
66
- const isTemplatePart = item.type === _constants.TEMPLATE_PART_POST_TYPE;
67
- const {
68
- onClick
69
- } = (0, _link.useLink)({
70
- postType: item.type,
71
- postId: isUserPattern ? item.id : item.name,
72
- categoryId,
73
- categoryType: isTemplatePart ? item.type : _constants.PATTERN_TYPES.theme
74
- });
75
- const isEmpty = !item.blocks?.length;
76
- const patternClassNames = (0, _classnames.default)('edit-site-patterns__pattern', {
77
- 'is-placeholder': isEmpty
78
- });
79
- const previewClassNames = (0, _classnames.default)('edit-site-patterns__preview', {
80
- 'is-inactive': isNonUserPattern
81
- });
82
- const deletePattern = async () => {
83
- try {
84
- await __experimentalDeleteReusableBlock(item.id);
85
- createSuccessNotice((0, _i18n.sprintf)(
86
- // translators: %s: The pattern's title e.g. 'Call to action'.
87
- (0, _i18n.__)('"%s" deleted.'), item.title), {
88
- type: 'snackbar',
89
- id: 'edit-site-patterns-success'
90
- });
91
- } catch (error) {
92
- const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0, _i18n.__)('An error occurred while deleting the pattern.');
93
- createErrorNotice(errorMessage, {
94
- type: 'snackbar',
95
- id: 'edit-site-patterns-error'
96
- });
97
- }
98
- };
99
- const deleteItem = () => isTemplatePart ? removeTemplate(item) : deletePattern();
100
- const exportAsJSON = () => {
101
- const json = {
102
- __file: item.type,
103
- title: item.title || item.name,
104
- content: item.patternPost.content.raw,
105
- syncStatus: item.patternPost.wp_pattern_sync_status
106
- };
107
- return (0, _blob.downloadBlob)(`${(0, _changeCase.paramCase)(item.title || item.name)}.json`, JSON.stringify(json, null, 2), 'application/json');
108
- };
109
-
110
- // Only custom patterns or custom template parts can be renamed or deleted.
111
- const isCustomPattern = isUserPattern || isTemplatePart && item.isCustom;
112
- const hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;
113
- const ariaDescriptions = [];
114
- if (isCustomPattern) {
115
- // User patterns don't have descriptions, but can be edited and deleted, so include some help text.
116
- ariaDescriptions.push((0, _i18n.__)('Press Enter to edit, or Delete to delete the pattern.'));
117
- } else if (item.description) {
118
- ariaDescriptions.push(item.description);
119
- }
120
- if (isNonUserPattern) {
121
- ariaDescriptions.push((0, _i18n.__)('Theme & plugin patterns cannot be edited.'));
122
- }
123
- let itemIcon;
124
- if (!isUserPattern && templatePartIcons[categoryId]) {
125
- itemIcon = templatePartIcons[categoryId];
126
- } else {
127
- itemIcon = item.syncStatus === _constants.PATTERN_SYNC_TYPES.full ? _icons.symbol : undefined;
128
- }
129
- const confirmButtonText = hasThemeFile ? (0, _i18n.__)('Clear') : (0, _i18n.__)('Delete');
130
- const confirmPrompt = hasThemeFile ? (0, _i18n.__)('Are you sure you want to clear these customizations?') : (0, _i18n.sprintf)(
131
- // translators: %s: The pattern or template part's title e.g. 'Call to action'.
132
- (0, _i18n.__)('Are you sure you want to delete "%s"?'), item.title || item.name);
133
- const additionalStyles = !backgroundColor ? [{
134
- css: 'body { background: #fff; }'
135
- }] : undefined;
136
- return (0, _react.createElement)("li", {
137
- className: patternClassNames
138
- }, (0, _react.createElement)("button", {
139
- className: previewClassNames,
140
- id: `edit-site-patterns-${item.name}`,
141
- type: "button",
142
- ...props,
143
- onClick: item.type !== _constants.PATTERN_TYPES.theme ? onClick : undefined,
144
- "aria-disabled": item.type !== _constants.PATTERN_TYPES.theme ? 'false' : 'true',
145
- "aria-label": item.title,
146
- "aria-describedby": ariaDescriptions.length ? ariaDescriptions.map((_, index) => `${descriptionId}-${index}`).join(' ') : undefined
147
- }, isEmpty && isTemplatePart && (0, _i18n.__)('Empty template part'), isEmpty && !isTemplatePart && (0, _i18n.__)('Empty pattern'), !isEmpty && (0, _react.createElement)(_blockEditor.BlockPreview, {
148
- blocks: item.blocks,
149
- additionalStyles: additionalStyles,
150
- viewportWidth: item.viewportWidth
151
- })), ariaDescriptions.map((ariaDescription, index) => (0, _react.createElement)("div", {
152
- key: index,
153
- hidden: true,
154
- id: `${descriptionId}-${index}`
155
- }, ariaDescription)), (0, _react.createElement)(_components.__experimentalHStack, {
156
- className: "edit-site-patterns__footer",
157
- justify: "space-between"
158
- }, (0, _react.createElement)(_components.__experimentalHStack, {
159
- alignment: "center",
160
- justify: "left",
161
- spacing: 3,
162
- className: "edit-site-patterns__pattern-title"
163
- }, itemIcon && !isNonUserPattern && (0, _react.createElement)(_components.Tooltip, {
164
- placement: "top",
165
- text: (0, _i18n.__)('Editing this pattern will also update anywhere it is used')
166
- }, (0, _react.createElement)(_icons.Icon, {
167
- className: "edit-site-patterns__pattern-icon",
168
- icon: itemIcon
169
- })), (0, _react.createElement)(_components.Flex, {
170
- as: "span",
171
- gap: 0,
172
- justify: "left"
173
- }, item.type === _constants.PATTERN_TYPES.theme ? item.title : (0, _react.createElement)(_components.__experimentalHeading, {
174
- level: 5
175
- }, (0, _react.createElement)(_components.Button, {
176
- variant: "link",
177
- onClick: onClick
178
- // Required for the grid's roving tab index system.
179
- // See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.
180
- ,
181
- tabIndex: "-1"
182
- }, item.title || item.name)), item.type === _constants.PATTERN_TYPES.theme && (0, _react.createElement)(_components.Tooltip, {
183
- placement: "top",
184
- text: (0, _i18n.__)('This pattern cannot be edited.')
185
- }, (0, _react.createElement)(_icons.Icon, {
186
- className: "edit-site-patterns__pattern-lock-icon",
187
- icon: _icons.lockSmall,
188
- size: 24
189
- })))), (0, _react.createElement)(_components.DropdownMenu, {
190
- icon: _icons.moreVertical,
191
- label: (0, _i18n.__)('Actions'),
192
- className: "edit-site-patterns__dropdown",
193
- popoverProps: {
194
- placement: 'bottom-end'
195
- },
196
- toggleProps: {
197
- className: 'edit-site-patterns__button',
198
- describedBy: (0, _i18n.sprintf)( /* translators: %s: pattern name */
199
- (0, _i18n.__)('Action menu for %s pattern'), item.title)
200
- }
201
- }, ({
202
- onClose
203
- }) => (0, _react.createElement)(_components.MenuGroup, null, isCustomPattern && !hasThemeFile && (0, _react.createElement)(_renameMenuItem.default, {
204
- item: item,
205
- onClose: onClose
206
- }), (0, _react.createElement)(_duplicateMenuItem.default, {
207
- categoryId: categoryId,
208
- item: item,
209
- onClose: onClose,
210
- label: (0, _i18n.__)('Duplicate')
211
- }), item.type === _constants.PATTERN_TYPES.user && (0, _react.createElement)(_components.MenuItem, {
212
- onClick: () => exportAsJSON()
213
- }, (0, _i18n.__)('Export as JSON')), isCustomPattern && (0, _react.createElement)(_components.MenuItem, {
214
- isDestructive: !hasThemeFile,
215
- onClick: () => setIsDeleteDialogOpen(true)
216
- }, hasThemeFile ? (0, _i18n.__)('Clear customizations') : (0, _i18n.__)('Delete'))))), isDeleteDialogOpen && (0, _react.createElement)(_components.__experimentalConfirmDialog, {
217
- confirmButtonText: confirmButtonText,
218
- onConfirm: deleteItem,
219
- onCancel: () => setIsDeleteDialogOpen(false)
220
- }, confirmPrompt));
221
- }
222
- var _default = exports.default = (0, _element.memo)(GridItem);
223
- //# sourceMappingURL=grid-item.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_changeCase","_blockEditor","_components","_data","_element","_i18n","_icons","_notices","_reusableBlocks","_blob","_renameMenuItem","_duplicateMenuItem","_constants","_store","_link","_lockUnlock","useGlobalStyle","unlock","blockEditorPrivateApis","templatePartIcons","header","footer","uncategorized","GridItem","categoryId","item","props","descriptionId","useId","isDeleteDialogOpen","setIsDeleteDialogOpen","useState","backgroundColor","removeTemplate","useDispatch","editSiteStore","__experimentalDeleteReusableBlock","reusableBlocksStore","createErrorNotice","createSuccessNotice","noticesStore","isUserPattern","type","PATTERN_TYPES","user","isNonUserPattern","theme","isTemplatePart","TEMPLATE_PART_POST_TYPE","onClick","useLink","postType","postId","id","name","categoryType","isEmpty","blocks","length","patternClassNames","classnames","previewClassNames","deletePattern","sprintf","__","title","error","errorMessage","message","code","deleteItem","exportAsJSON","json","__file","content","patternPost","raw","syncStatus","wp_pattern_sync_status","downloadBlob","kebabCase","JSON","stringify","isCustomPattern","isCustom","hasThemeFile","templatePart","has_theme_file","ariaDescriptions","push","description","itemIcon","PATTERN_SYNC_TYPES","full","symbol","undefined","confirmButtonText","confirmPrompt","additionalStyles","css","_react","createElement","className","map","_","index","join","BlockPreview","viewportWidth","ariaDescription","key","hidden","__experimentalHStack","justify","alignment","spacing","Tooltip","placement","text","Icon","icon","Flex","as","gap","__experimentalHeading","level","Button","variant","tabIndex","lockSmall","size","DropdownMenu","moreVertical","label","popoverProps","toggleProps","describedBy","onClose","MenuGroup","default","MenuItem","isDestructive","__experimentalConfirmDialog","onConfirm","onCancel","_default","exports","memo"],"sources":["@wordpress/edit-site/src/components/page-patterns/grid-item.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { useState, useId, memo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tmoreVertical,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { downloadBlob } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport RenameMenuItem from './rename-menu-item';\nimport DuplicateMenuItem from './duplicate-menu-item';\nimport {\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n} from '../../utils/constants';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nconst templatePartIcons = { header, footer, uncategorized };\n\nfunction GridItem( { categoryId, item, ...props } ) {\n\tconst descriptionId = useId();\n\tconst [ isDeleteDialogOpen, setIsDeleteDialogOpen ] = useState( false );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\n\tconst { removeTemplate } = useDispatch( editSiteStore );\n\tconst { __experimentalDeleteReusableBlock } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t} );\n\n\tconst isEmpty = ! item.blocks?.length;\n\tconst patternClassNames = classnames( 'edit-site-patterns__pattern', {\n\t\t'is-placeholder': isEmpty,\n\t} );\n\tconst previewClassNames = classnames( 'edit-site-patterns__preview', {\n\t\t'is-inactive': isNonUserPattern,\n\t} );\n\n\tconst deletePattern = async () => {\n\t\ttry {\n\t\t\tawait __experimentalDeleteReusableBlock( item.id );\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The pattern's title e.g. 'Call to action'.\n\t\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while deleting the pattern.' );\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t}\n\t};\n\tconst deleteItem = () =>\n\t\tisTemplatePart ? removeTemplate( item ) : deletePattern();\n\tconst exportAsJSON = () => {\n\t\tconst json = {\n\t\t\t__file: item.type,\n\t\t\ttitle: item.title || item.name,\n\t\t\tcontent: item.patternPost.content.raw,\n\t\t\tsyncStatus: item.patternPost.wp_pattern_sync_status,\n\t\t};\n\n\t\treturn downloadBlob(\n\t\t\t`${ kebabCase( item.title || item.name ) }.json`,\n\t\t\tJSON.stringify( json, null, 2 ),\n\t\t\t'application/json'\n\t\t);\n\t};\n\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\tconst ariaDescriptions = [];\n\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push(\n\t\t\t__( 'Theme & plugin patterns cannot be edited.' )\n\t\t);\n\t}\n\n\tlet itemIcon;\n\tif ( ! isUserPattern && templatePartIcons[ categoryId ] ) {\n\t\titemIcon = templatePartIcons[ categoryId ];\n\t} else {\n\t\titemIcon =\n\t\t\titem.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;\n\t}\n\n\tconst confirmButtonText = hasThemeFile ? __( 'Clear' ) : __( 'Delete' );\n\tconst confirmPrompt = hasThemeFile\n\t\t? __( 'Are you sure you want to clear these customizations?' )\n\t\t: sprintf(\n\t\t\t\t// translators: %s: The pattern or template part's title e.g. 'Call to action'.\n\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\titem.title || item.name\n\t\t );\n\n\tconst additionalStyles = ! backgroundColor\n\t\t? [ { css: 'body { background: #fff; }' } ]\n\t\t: undefined;\n\n\treturn (\n\t\t<li className={ patternClassNames }>\n\t\t\t<button\n\t\t\t\tclassName={ previewClassNames }\n\t\t\t\tid={ `edit-site-patterns-${ item.name }` }\n\t\t\t\ttype=\"button\"\n\t\t\t\t{ ...props }\n\t\t\t\tonClick={\n\t\t\t\t\titem.type !== PATTERN_TYPES.theme ? onClick : undefined\n\t\t\t\t}\n\t\t\t\taria-disabled={\n\t\t\t\t\titem.type !== PATTERN_TYPES.theme ? 'false' : 'true'\n\t\t\t\t}\n\t\t\t\taria-label={ item.title }\n\t\t\t\taria-describedby={\n\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t? ariaDescriptions\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( _, index ) =>\n\t\t\t\t\t\t\t\t\t\t`${ descriptionId }-${ index }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ' ' )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\tblocks={ item.blocks }\n\t\t\t\t\t\tadditionalStyles={ additionalStyles }\n\t\t\t\t\t\tviewportWidth={ item.viewportWidth }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</button>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t\t<HStack\n\t\t\t\tclassName=\"edit-site-patterns__footer\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tjustify=\"left\"\n\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t\t>\n\t\t\t\t\t{ itemIcon && ! isNonUserPattern && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t\t<Flex as=\"span\" gap={ 0 } justify=\"left\">\n\t\t\t\t\t\t{ item.type === PATTERN_TYPES.theme ? (\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Heading level={ 5 }>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ item.title || item.name }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ item.type === PATTERN_TYPES.theme && (\n\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\ttext={ __( 'This pattern cannot be edited.' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-lock-icon\"\n\t\t\t\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t</HStack>\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\tclassName=\"edit-site-patterns__dropdown\"\n\t\t\t\t\tpopoverProps={ { placement: 'bottom-end' } }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tclassName: 'edit-site-patterns__button',\n\t\t\t\t\t\tdescribedBy: sprintf(\n\t\t\t\t\t\t\t/* translators: %s: pattern name */\n\t\t\t\t\t\t\t__( 'Action menu for %s pattern' ),\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ isCustomPattern && ! hasThemeFile && (\n\t\t\t\t\t\t\t\t<RenameMenuItem\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<DuplicateMenuItem\n\t\t\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tlabel={ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ item.type === PATTERN_TYPES.user && (\n\t\t\t\t\t\t\t\t<MenuItem onClick={ () => exportAsJSON() }>\n\t\t\t\t\t\t\t\t\t{ __( 'Export as JSON' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t{ isCustomPattern && (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tisDestructive={ ! hasThemeFile }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetIsDeleteDialogOpen( true )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ hasThemeFile\n\t\t\t\t\t\t\t\t\t\t? __( 'Clear customizations' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Delete' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t</HStack>\n\n\t\t\t{ isDeleteDialogOpen && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tconfirmButtonText={ confirmButtonText }\n\t\t\t\t\tonConfirm={ deleteItem }\n\t\t\t\t\tonCancel={ () => setIsDeleteDialogOpen( false ) }\n\t\t\t\t>\n\t\t\t\t\t{ confirmPrompt }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nexport default memo( GridItem );\n"],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = Grid;
8
- var _react = require("react");
9
- var _gridItem = _interopRequireDefault(require("./grid-item"));
10
- /**
11
- * Internal dependencies
12
- */
13
-
14
- function Grid({
15
- categoryId,
16
- items,
17
- ...props
18
- }) {
19
- if (!items?.length) {
20
- return null;
21
- }
22
- return (0, _react.createElement)("ul", {
23
- className: "edit-site-patterns__grid",
24
- ...props
25
- }, items.map(item => (0, _react.createElement)(_gridItem.default, {
26
- key: item.name,
27
- item: item,
28
- categoryId: categoryId
29
- })));
30
- }
31
- //# sourceMappingURL=grid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_gridItem","_interopRequireDefault","require","Grid","categoryId","items","props","length","_react","createElement","className","map","item","default","key","name"],"sources":["@wordpress/edit-site/src/components/page-patterns/grid.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport GridItem from './grid-item';\n\nexport default function Grid( { categoryId, items, ...props } ) {\n\tif ( ! items?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ul className=\"edit-site-patterns__grid\" { ...props }>\n\t\t\t{ items.map( ( item ) => (\n\t\t\t\t<GridItem\n\t\t\t\t\tkey={ item.name }\n\t\t\t\t\titem={ item }\n\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</ul>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AAHA;AACA;AACA;;AAGe,SAASC,IAAIA,CAAE;EAAEC,UAAU;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAG;EAC/D,IAAK,CAAED,KAAK,EAAEE,MAAM,EAAG;IACtB,OAAO,IAAI;EACZ;EAEA,OACC,IAAAC,MAAA,CAAAC,aAAA;IAAIC,SAAS,EAAC,0BAA0B;IAAA,GAAMJ;EAAK,GAChDD,KAAK,CAACM,GAAG,CAAIC,IAAI,IAClB,IAAAJ,MAAA,CAAAC,aAAA,EAACT,SAAA,CAAAa,OAAQ;IACRC,GAAG,EAAGF,IAAI,CAACG,IAAM;IACjBH,IAAI,EAAGA,IAAM;IACbR,UAAU,EAAGA;EAAY,CACzB,CACA,CACC,CAAC;AAEP"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = NoPatterns;
7
- var _react = require("react");
8
- var _i18n = require("@wordpress/i18n");
9
- /**
10
- * WordPress dependencies
11
- */
12
-
13
- function NoPatterns() {
14
- return (0, _react.createElement)("div", {
15
- className: "edit-site-patterns__no-results"
16
- }, (0, _i18n.__)('No patterns found.'));
17
- }
18
- //# sourceMappingURL=no-patterns.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_i18n","require","NoPatterns","_react","createElement","className","__"],"sources":["@wordpress/edit-site/src/components/page-patterns/no-patterns.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport default function NoPatterns() {\n\treturn (\n\t\t<div className=\"edit-site-patterns__no-results\">\n\t\t\t{ __( 'No patterns found.' ) }\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGe,SAASC,UAAUA,CAAA,EAAG;EACpC,OACC,IAAAC,MAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAAgC,GAC5C,IAAAC,QAAE,EAAE,oBAAqB,CACvB,CAAC;AAER"}
@@ -1,168 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = PatternsList;
8
- var _react = require("react");
9
- var _element = require("@wordpress/element");
10
- var _components = require("@wordpress/components");
11
- var _i18n = require("@wordpress/i18n");
12
- var _icons = require("@wordpress/icons");
13
- var _router = require("@wordpress/router");
14
- var _compose = require("@wordpress/compose");
15
- var _header = _interopRequireDefault(require("./header"));
16
- var _grid = _interopRequireDefault(require("./grid"));
17
- var _noPatterns = _interopRequireDefault(require("./no-patterns"));
18
- var _usePatterns = _interopRequireDefault(require("./use-patterns"));
19
- var _sidebarButton = _interopRequireDefault(require("../sidebar-button"));
20
- var _lockUnlock = require("../../lock-unlock");
21
- var _constants = require("../../utils/constants");
22
- var _pagination = _interopRequireDefault(require("../pagination"));
23
- /**
24
- * WordPress dependencies
25
- */
26
-
27
- /**
28
- * Internal dependencies
29
- */
30
-
31
- const {
32
- useLocation,
33
- useHistory
34
- } = (0, _lockUnlock.unlock)(_router.privateApis);
35
- const SYNC_FILTERS = {
36
- all: (0, _i18n._x)('All', 'Option that shows all patterns'),
37
- [_constants.PATTERN_SYNC_TYPES.full]: (0, _i18n._x)('Synced', 'Option that shows all synchronized patterns'),
38
- [_constants.PATTERN_SYNC_TYPES.unsynced]: (0, _i18n._x)('Not synced', 'Option that shows all patterns that are not synchronized')
39
- };
40
- const SYNC_DESCRIPTIONS = {
41
- all: '',
42
- [_constants.PATTERN_SYNC_TYPES.full]: (0, _i18n.__)('Patterns that are kept in sync across the site.'),
43
- [_constants.PATTERN_SYNC_TYPES.unsynced]: (0, _i18n.__)('Patterns that can be changed freely without affecting the site.')
44
- };
45
- const PAGE_SIZE = 20;
46
- function PatternsList({
47
- categoryId,
48
- type
49
- }) {
50
- const location = useLocation();
51
- const history = useHistory();
52
- const isMobileViewport = (0, _compose.useViewportMatch)('medium', '<');
53
- const [filterValue, setFilterValue, delayedFilterValue] = (0, _compose.useDebouncedInput)('');
54
- const deferredFilterValue = (0, _element.useDeferredValue)(delayedFilterValue);
55
- const [syncFilter, setSyncFilter] = (0, _element.useState)('all');
56
- const [currentPage, setCurrentPage] = (0, _element.useState)(1);
57
- const deferredSyncedFilter = (0, _element.useDeferredValue)(syncFilter);
58
- const isUncategorizedThemePatterns = type === _constants.PATTERN_TYPES.theme && categoryId === 'uncategorized';
59
- const {
60
- patterns,
61
- isResolving
62
- } = (0, _usePatterns.default)(type, isUncategorizedThemePatterns ? '' : categoryId, {
63
- search: deferredFilterValue,
64
- syncStatus: deferredSyncedFilter === 'all' ? undefined : deferredSyncedFilter
65
- });
66
- const updateSearchFilter = value => {
67
- setCurrentPage(1);
68
- setFilterValue(value);
69
- };
70
- const updateSyncFilter = value => {
71
- setCurrentPage(1);
72
- setSyncFilter(value);
73
- };
74
- const id = (0, _element.useId)();
75
- const titleId = `${id}-title`;
76
- const descriptionId = `${id}-description`;
77
- const hasPatterns = patterns.length;
78
- const title = SYNC_FILTERS[syncFilter];
79
- const description = SYNC_DESCRIPTIONS[syncFilter];
80
- const totalItems = patterns.length;
81
- const pageIndex = currentPage - 1;
82
- const numPages = Math.ceil(patterns.length / PAGE_SIZE);
83
- const list = (0, _element.useMemo)(() => {
84
- return patterns.slice(pageIndex * PAGE_SIZE, pageIndex * PAGE_SIZE + PAGE_SIZE);
85
- }, [pageIndex, patterns]);
86
- const asyncList = (0, _compose.useAsyncList)(list, {
87
- step: 10
88
- });
89
- const changePage = page => {
90
- const scrollContainer = document.querySelector('.edit-site-patterns');
91
- scrollContainer?.scrollTo(0, 0);
92
- setCurrentPage(page);
93
- };
94
- return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.__experimentalVStack, {
95
- className: "edit-site-patterns__header",
96
- spacing: 6
97
- }, (0, _react.createElement)(_header.default, {
98
- categoryId: categoryId,
99
- type: type,
100
- titleId: titleId,
101
- descriptionId: descriptionId
102
- }), (0, _react.createElement)(_components.Flex, {
103
- alignment: "stretch",
104
- wrap: true
105
- }, isMobileViewport && (0, _react.createElement)(_sidebarButton.default, {
106
- icon: (0, _i18n.isRTL)() ? _icons.chevronRight : _icons.chevronLeft,
107
- label: (0, _i18n.__)('Back'),
108
- onClick: () => {
109
- // Go back in history if we came from the Patterns page.
110
- // Otherwise push a stack onto the history.
111
- if (location.state?.backPath === '/patterns') {
112
- history.back();
113
- } else {
114
- history.push({
115
- path: '/patterns'
116
- });
117
- }
118
- }
119
- }), (0, _react.createElement)(_components.FlexBlock, {
120
- className: "edit-site-patterns__search-block"
121
- }, (0, _react.createElement)(_components.SearchControl, {
122
- className: "edit-site-patterns__search",
123
- onChange: value => updateSearchFilter(value),
124
- placeholder: (0, _i18n.__)('Search patterns'),
125
- label: (0, _i18n.__)('Search patterns'),
126
- value: filterValue,
127
- __nextHasNoMarginBottom: true
128
- })), type === _constants.PATTERN_TYPES.theme && (0, _react.createElement)(_components.__experimentalToggleGroupControl, {
129
- className: "edit-site-patterns__sync-status-filter",
130
- hideLabelFromVision: true,
131
- label: (0, _i18n.__)('Filter by sync status'),
132
- value: syncFilter,
133
- isBlock: true,
134
- onChange: value => updateSyncFilter(value),
135
- __nextHasNoMarginBottom: true
136
- }, Object.entries(SYNC_FILTERS).map(([key, label]) => (0, _react.createElement)(_components.__experimentalToggleGroupControlOption, {
137
- className: "edit-site-patterns__sync-status-filter-option",
138
- key: key,
139
- value: key,
140
- label: label
141
- }))))), (0, _react.createElement)(_components.__experimentalVStack, {
142
- className: "edit-site-patterns__section",
143
- justify: "flex-start",
144
- spacing: 6
145
- }, syncFilter !== 'all' && (0, _react.createElement)(_components.__experimentalVStack, {
146
- className: "edit-site-patterns__section-header"
147
- }, (0, _react.createElement)(_components.__experimentalHeading, {
148
- as: "h3",
149
- level: 5,
150
- id: titleId
151
- }, title), description ? (0, _react.createElement)(_components.__experimentalText, {
152
- variant: "muted",
153
- as: "p",
154
- id: descriptionId
155
- }, description) : null), hasPatterns && (0, _react.createElement)(_grid.default, {
156
- categoryId: categoryId,
157
- items: asyncList,
158
- "aria-labelledby": titleId,
159
- "aria-describedby": descriptionId
160
- }), !isResolving && !hasPatterns && (0, _react.createElement)(_noPatterns.default, null)), numPages > 1 && (0, _react.createElement)(_pagination.default, {
161
- className: "edit-site-patterns__pagination",
162
- currentPage: currentPage,
163
- numPages: numPages,
164
- changePage: changePage,
165
- totalItems: totalItems
166
- }));
167
- }
168
- //# sourceMappingURL=patterns-list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_element","require","_components","_i18n","_icons","_router","_compose","_header","_interopRequireDefault","_grid","_noPatterns","_usePatterns","_sidebarButton","_lockUnlock","_constants","_pagination","useLocation","useHistory","unlock","routerPrivateApis","SYNC_FILTERS","all","_x","PATTERN_SYNC_TYPES","full","unsynced","SYNC_DESCRIPTIONS","__","PAGE_SIZE","PatternsList","categoryId","type","location","history","isMobileViewport","useViewportMatch","filterValue","setFilterValue","delayedFilterValue","useDebouncedInput","deferredFilterValue","useDeferredValue","syncFilter","setSyncFilter","useState","currentPage","setCurrentPage","deferredSyncedFilter","isUncategorizedThemePatterns","PATTERN_TYPES","theme","patterns","isResolving","usePatterns","search","syncStatus","undefined","updateSearchFilter","value","updateSyncFilter","id","useId","titleId","descriptionId","hasPatterns","length","title","description","totalItems","pageIndex","numPages","Math","ceil","list","useMemo","slice","asyncList","useAsyncList","step","changePage","page","scrollContainer","document","querySelector","scrollTo","_react","createElement","Fragment","__experimentalVStack","className","spacing","default","Flex","alignment","wrap","icon","isRTL","chevronRight","chevronLeft","label","onClick","state","backPath","back","push","path","FlexBlock","SearchControl","onChange","placeholder","__nextHasNoMarginBottom","__experimentalToggleGroupControl","hideLabelFromVision","isBlock","Object","entries","map","key","__experimentalToggleGroupControlOption","justify","__experimentalHeading","as","level","__experimentalText","variant","items"],"sources":["@wordpress/edit-site/src/components/page-patterns/patterns-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useDeferredValue, useId, useMemo } from '@wordpress/element';\nimport {\n\tSearchControl,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tFlexBlock,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport { chevronLeft, chevronRight } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tuseAsyncList,\n\tuseViewportMatch,\n\tuseDebouncedInput,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PatternsHeader from './header';\nimport Grid from './grid';\nimport NoPatterns from './no-patterns';\nimport usePatterns from './use-patterns';\nimport SidebarButton from '../sidebar-button';\nimport { unlock } from '../../lock-unlock';\nimport { PATTERN_SYNC_TYPES, PATTERN_TYPES } from '../../utils/constants';\nimport Pagination from '../pagination';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nconst SYNC_FILTERS = {\n\tall: _x( 'All', 'Option that shows all patterns' ),\n\t[ PATTERN_SYNC_TYPES.full ]: _x(\n\t\t'Synced',\n\t\t'Option that shows all synchronized patterns'\n\t),\n\t[ PATTERN_SYNC_TYPES.unsynced ]: _x(\n\t\t'Not synced',\n\t\t'Option that shows all patterns that are not synchronized'\n\t),\n};\n\nconst SYNC_DESCRIPTIONS = {\n\tall: '',\n\t[ PATTERN_SYNC_TYPES.full ]: __(\n\t\t'Patterns that are kept in sync across the site.'\n\t),\n\t[ PATTERN_SYNC_TYPES.unsynced ]: __(\n\t\t'Patterns that can be changed freely without affecting the site.'\n\t),\n};\n\nconst PAGE_SIZE = 20;\n\nexport default function PatternsList( { categoryId, type } ) {\n\tconst location = useLocation();\n\tconst history = useHistory();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst [ filterValue, setFilterValue, delayedFilterValue ] =\n\t\tuseDebouncedInput( '' );\n\tconst deferredFilterValue = useDeferredValue( delayedFilterValue );\n\n\tconst [ syncFilter, setSyncFilter ] = useState( 'all' );\n\tconst [ currentPage, setCurrentPage ] = useState( 1 );\n\n\tconst deferredSyncedFilter = useDeferredValue( syncFilter );\n\n\tconst isUncategorizedThemePatterns =\n\t\ttype === PATTERN_TYPES.theme && categoryId === 'uncategorized';\n\n\tconst { patterns, isResolving } = usePatterns(\n\t\ttype,\n\t\tisUncategorizedThemePatterns ? '' : categoryId,\n\t\t{\n\t\t\tsearch: deferredFilterValue,\n\t\t\tsyncStatus:\n\t\t\t\tdeferredSyncedFilter === 'all'\n\t\t\t\t\t? undefined\n\t\t\t\t\t: deferredSyncedFilter,\n\t\t}\n\t);\n\n\tconst updateSearchFilter = ( value ) => {\n\t\tsetCurrentPage( 1 );\n\t\tsetFilterValue( value );\n\t};\n\n\tconst updateSyncFilter = ( value ) => {\n\t\tsetCurrentPage( 1 );\n\t\tsetSyncFilter( value );\n\t};\n\n\tconst id = useId();\n\tconst titleId = `${ id }-title`;\n\tconst descriptionId = `${ id }-description`;\n\n\tconst hasPatterns = patterns.length;\n\tconst title = SYNC_FILTERS[ syncFilter ];\n\tconst description = SYNC_DESCRIPTIONS[ syncFilter ];\n\n\tconst totalItems = patterns.length;\n\tconst pageIndex = currentPage - 1;\n\tconst numPages = Math.ceil( patterns.length / PAGE_SIZE );\n\n\tconst list = useMemo( () => {\n\t\treturn patterns.slice(\n\t\t\tpageIndex * PAGE_SIZE,\n\t\t\tpageIndex * PAGE_SIZE + PAGE_SIZE\n\t\t);\n\t}, [ pageIndex, patterns ] );\n\n\tconst asyncList = useAsyncList( list, { step: 10 } );\n\n\tconst changePage = ( page ) => {\n\t\tconst scrollContainer = document.querySelector( '.edit-site-patterns' );\n\t\tscrollContainer?.scrollTo( 0, 0 );\n\n\t\tsetCurrentPage( page );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<VStack className=\"edit-site-patterns__header\" spacing={ 6 }>\n\t\t\t\t<PatternsHeader\n\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\ttitleId={ titleId }\n\t\t\t\t\tdescriptionId={ descriptionId }\n\t\t\t\t/>\n\t\t\t\t<Flex alignment=\"stretch\" wrap>\n\t\t\t\t\t{ isMobileViewport && (\n\t\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t// Go back in history if we came from the Patterns page.\n\t\t\t\t\t\t\t\t// Otherwise push a stack onto the history.\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tlocation.state?.backPath === '/patterns'\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\thistory.back();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\thistory.push( { path: '/patterns' } );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<FlexBlock className=\"edit-site-patterns__search-block\">\n\t\t\t\t\t\t<SearchControl\n\t\t\t\t\t\t\tclassName=\"edit-site-patterns__search\"\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateSearchFilter( value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplaceholder={ __( 'Search patterns' ) }\n\t\t\t\t\t\t\tlabel={ __( 'Search patterns' ) }\n\t\t\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t{ type === PATTERN_TYPES.theme && (\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\tclassName=\"edit-site-patterns__sync-status-filter\"\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tlabel={ __( 'Filter by sync status' ) }\n\t\t\t\t\t\t\tvalue={ syncFilter }\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tonChange={ ( value ) => updateSyncFilter( value ) }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ Object.entries( SYNC_FILTERS ).map(\n\t\t\t\t\t\t\t\t( [ key, label ] ) => (\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__sync-status-filter-option\"\n\t\t\t\t\t\t\t\t\t\tkey={ key }\n\t\t\t\t\t\t\t\t\t\tvalue={ key }\n\t\t\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t) }\n\t\t\t\t</Flex>\n\t\t\t</VStack>\n\t\t\t<VStack\n\t\t\t\tclassName=\"edit-site-patterns__section\"\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tspacing={ 6 }\n\t\t\t>\n\t\t\t\t{ syncFilter !== 'all' && (\n\t\t\t\t\t<VStack className=\"edit-site-patterns__section-header\">\n\t\t\t\t\t\t<Heading as=\"h3\" level={ 5 } id={ titleId }>\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t{ description ? (\n\t\t\t\t\t\t\t<Text variant=\"muted\" as=\"p\" id={ descriptionId }>\n\t\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t\t{ hasPatterns && (\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\titems={ asyncList }\n\t\t\t\t\t\taria-labelledby={ titleId }\n\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isResolving && ! hasPatterns && <NoPatterns /> }\n\t\t\t</VStack>\n\t\t\t{ numPages > 1 && (\n\t\t\t\t<Pagination\n\t\t\t\t\tclassName=\"edit-site-patterns__pagination\"\n\t\t\t\t\tcurrentPage={ currentPage }\n\t\t\t\t\tnumPages={ numPages }\n\t\t\t\t\tchangePage={ changePage }\n\t\t\t\t\ttotalItems={ totalItems }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -1,105 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = RenameMenuItem;
7
- var _react = require("react");
8
- var _components = require("@wordpress/components");
9
- var _coreData = require("@wordpress/core-data");
10
- var _data = require("@wordpress/data");
11
- var _element = require("@wordpress/element");
12
- var _i18n = require("@wordpress/i18n");
13
- var _notices = require("@wordpress/notices");
14
- var _constants = require("../../utils/constants");
15
- /**
16
- * WordPress dependencies
17
- */
18
-
19
- /**
20
- * Internal dependencies
21
- */
22
-
23
- function RenameMenuItem({
24
- item,
25
- onClose
26
- }) {
27
- const [title, setTitle] = (0, _element.useState)(() => item.title);
28
- const [isModalOpen, setIsModalOpen] = (0, _element.useState)(false);
29
- const {
30
- editEntityRecord,
31
- saveEditedEntityRecord
32
- } = (0, _data.useDispatch)(_coreData.store);
33
- const {
34
- createSuccessNotice,
35
- createErrorNotice
36
- } = (0, _data.useDispatch)(_notices.store);
37
- if (item.type === _constants.TEMPLATE_PART_POST_TYPE && !item.isCustom) {
38
- return null;
39
- }
40
- async function onRename(event) {
41
- event.preventDefault();
42
- try {
43
- await editEntityRecord('postType', item.type, item.id, {
44
- title
45
- });
46
-
47
- // Update state before saving rerenders the list.
48
- setTitle('');
49
- setIsModalOpen(false);
50
- onClose();
51
-
52
- // Persist edited entity.
53
- await saveEditedEntityRecord('postType', item.type, item.id, {
54
- throwOnError: true
55
- });
56
- createSuccessNotice(item.type === _constants.TEMPLATE_PART_POST_TYPE ? (0, _i18n.__)('Template part renamed.') : (0, _i18n.__)('Pattern renamed.'), {
57
- type: 'snackbar'
58
- });
59
- } catch (error) {
60
- const fallbackErrorMessage = item.type === _constants.TEMPLATE_PART_POST_TYPE ? (0, _i18n.__)('An error occurred while renaming the template part.') : (0, _i18n.__)('An error occurred while renaming the pattern.');
61
- const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : fallbackErrorMessage;
62
- createErrorNotice(errorMessage, {
63
- type: 'snackbar'
64
- });
65
- }
66
- }
67
- return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.MenuItem, {
68
- onClick: () => {
69
- setIsModalOpen(true);
70
- setTitle(item.title);
71
- }
72
- }, (0, _i18n.__)('Rename')), isModalOpen && (0, _react.createElement)(_components.Modal, {
73
- title: (0, _i18n.__)('Rename'),
74
- onRequestClose: () => {
75
- setIsModalOpen(false);
76
- onClose();
77
- },
78
- overlayClassName: "edit-site-list__rename-modal"
79
- }, (0, _react.createElement)("form", {
80
- onSubmit: onRename
81
- }, (0, _react.createElement)(_components.__experimentalVStack, {
82
- spacing: "5"
83
- }, (0, _react.createElement)(_components.TextControl, {
84
- __nextHasNoMarginBottom: true,
85
- __next40pxDefaultSize: true,
86
- label: (0, _i18n.__)('Name'),
87
- value: title,
88
- onChange: setTitle,
89
- required: true
90
- }), (0, _react.createElement)(_components.__experimentalHStack, {
91
- justify: "right"
92
- }, (0, _react.createElement)(_components.Button, {
93
- __next40pxDefaultSize: true,
94
- variant: "tertiary",
95
- onClick: () => {
96
- setIsModalOpen(false);
97
- onClose();
98
- }
99
- }, (0, _i18n.__)('Cancel')), (0, _react.createElement)(_components.Button, {
100
- __next40pxDefaultSize: true,
101
- variant: "primary",
102
- type: "submit"
103
- }, (0, _i18n.__)('Save')))))));
104
- }
105
- //# sourceMappingURL=rename-menu-item.js.map