@wordpress/edit-site 6.4.0 → 6.6.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 (234) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/add-new-pattern/index.js +6 -1
  3. package/build/components/add-new-pattern/index.js.map +1 -1
  4. package/build/components/add-new-post/index.js +2 -1
  5. package/build/components/add-new-post/index.js.map +1 -1
  6. package/build/components/add-new-template/utils.js +2 -2
  7. package/build/components/add-new-template/utils.js.map +1 -1
  8. package/build/components/editor/index.js +71 -20
  9. package/build/components/editor/index.js.map +1 -1
  10. package/build/components/global-styles/background-panel.js +1 -4
  11. package/build/components/global-styles/background-panel.js.map +1 -1
  12. package/build/components/global-styles/font-families.js +3 -4
  13. package/build/components/global-styles/font-families.js.map +1 -1
  14. package/build/components/global-styles/font-library-modal/context.js +0 -5
  15. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  16. package/build/components/global-styles/font-library-modal/font-collection.js +25 -5
  17. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/index.js +1 -8
  19. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  20. package/build/components/global-styles/font-library-modal/installed-fonts.js +23 -7
  21. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  22. package/build/components/global-styles/font-library-modal/upload-fonts.js +2 -3
  23. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  24. package/build/components/global-styles/screen-block.js +5 -7
  25. package/build/components/global-styles/screen-block.js.map +1 -1
  26. package/build/components/global-styles/screen-css.js +1 -1
  27. package/build/components/global-styles/screen-css.js.map +1 -1
  28. package/build/components/global-styles/screen-typeset.js +40 -0
  29. package/build/components/global-styles/screen-typeset.js.map +1 -0
  30. package/build/components/global-styles/screen-typography-element.js +14 -0
  31. package/build/components/global-styles/screen-typography-element.js.map +1 -1
  32. package/build/components/global-styles/screen-typography.js +4 -6
  33. package/build/components/global-styles/screen-typography.js.map +1 -1
  34. package/build/components/global-styles/shadows-edit-panel.js +51 -59
  35. package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
  36. package/build/components/global-styles/size-control/index.js +10 -5
  37. package/build/components/global-styles/size-control/index.js.map +1 -1
  38. package/build/components/global-styles/typeset-button.js +97 -0
  39. package/build/components/global-styles/typeset-button.js.map +1 -0
  40. package/build/components/global-styles/typeset.js +80 -0
  41. package/build/components/global-styles/typeset.js.map +1 -0
  42. package/build/components/global-styles/ui.js +4 -0
  43. package/build/components/global-styles/ui.js.map +1 -1
  44. package/build/components/global-styles/utils.js +10 -1
  45. package/build/components/global-styles/utils.js.map +1 -1
  46. package/build/components/page-patterns/fields.js +230 -0
  47. package/build/components/page-patterns/fields.js.map +1 -0
  48. package/build/components/page-patterns/index.js +13 -228
  49. package/build/components/page-patterns/index.js.map +1 -1
  50. package/build/components/page-patterns/use-patterns.js +29 -1
  51. package/build/components/page-patterns/use-patterns.js.map +1 -1
  52. package/build/components/page-templates/fields.js +169 -0
  53. package/build/components/page-templates/fields.js.map +1 -0
  54. package/build/components/page-templates/index.js +10 -177
  55. package/build/components/page-templates/index.js.map +1 -1
  56. package/build/components/post-edit/index.js +46 -34
  57. package/build/components/post-edit/index.js.map +1 -1
  58. package/build/components/post-fields/index.js +50 -28
  59. package/build/components/post-fields/index.js.map +1 -1
  60. package/build/components/post-list/index.js +126 -68
  61. package/build/components/post-list/index.js.map +1 -1
  62. package/build/components/sidebar-dataviews/add-new-view.js +3 -2
  63. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
  64. package/build/components/sidebar-dataviews/custom-dataviews-list.js +1 -0
  65. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  66. package/build/components/sidebar-dataviews/dataview-item.js +2 -3
  67. package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
  68. package/build/components/sidebar-dataviews/default-views.js +81 -81
  69. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  70. package/build/components/sidebar-dataviews/index.js +3 -42
  71. package/build/components/sidebar-dataviews/index.js.map +1 -1
  72. package/build/components/site-hub/index.js +6 -3
  73. package/build/components/site-hub/index.js.map +1 -1
  74. package/build/components/style-book/index.js +22 -25
  75. package/build/components/style-book/index.js.map +1 -1
  76. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
  77. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  78. package/build/hooks/push-changes-to-global-styles/index.js +3 -3
  79. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  80. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -4
  81. package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  82. package/build/index.js +0 -2
  83. package/build/index.js.map +1 -1
  84. package/build/utils/is-template-removable.js +2 -2
  85. package/build/utils/is-template-removable.js.map +1 -1
  86. package/build/utils/is-template-revertable.js +1 -1
  87. package/build/utils/is-template-revertable.js.map +1 -1
  88. package/build-module/components/add-new-pattern/index.js +6 -1
  89. package/build-module/components/add-new-pattern/index.js.map +1 -1
  90. package/build-module/components/add-new-post/index.js +2 -1
  91. package/build-module/components/add-new-post/index.js.map +1 -1
  92. package/build-module/components/add-new-template/utils.js +2 -2
  93. package/build-module/components/add-new-template/utils.js.map +1 -1
  94. package/build-module/components/editor/index.js +73 -22
  95. package/build-module/components/editor/index.js.map +1 -1
  96. package/build-module/components/global-styles/background-panel.js +1 -4
  97. package/build-module/components/global-styles/background-panel.js.map +1 -1
  98. package/build-module/components/global-styles/font-families.js +3 -4
  99. package/build-module/components/global-styles/font-families.js.map +1 -1
  100. package/build-module/components/global-styles/font-library-modal/context.js +0 -5
  101. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  102. package/build-module/components/global-styles/font-library-modal/font-collection.js +26 -6
  103. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  104. package/build-module/components/global-styles/font-library-modal/index.js +1 -8
  105. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  106. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +23 -7
  107. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  108. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +2 -3
  109. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
  110. package/build-module/components/global-styles/screen-block.js +5 -7
  111. package/build-module/components/global-styles/screen-block.js.map +1 -1
  112. package/build-module/components/global-styles/screen-css.js +1 -1
  113. package/build-module/components/global-styles/screen-css.js.map +1 -1
  114. package/build-module/components/global-styles/screen-typeset.js +34 -0
  115. package/build-module/components/global-styles/screen-typeset.js.map +1 -0
  116. package/build-module/components/global-styles/screen-typography-element.js +14 -0
  117. package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
  118. package/build-module/components/global-styles/screen-typography.js +4 -6
  119. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  120. package/build-module/components/global-styles/shadows-edit-panel.js +52 -60
  121. package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
  122. package/build-module/components/global-styles/size-control/index.js +10 -5
  123. package/build-module/components/global-styles/size-control/index.js.map +1 -1
  124. package/build-module/components/global-styles/typeset-button.js +89 -0
  125. package/build-module/components/global-styles/typeset-button.js.map +1 -0
  126. package/build-module/components/global-styles/typeset.js +71 -0
  127. package/build-module/components/global-styles/typeset.js.map +1 -0
  128. package/build-module/components/global-styles/ui.js +4 -0
  129. package/build-module/components/global-styles/ui.js.map +1 -1
  130. package/build-module/components/global-styles/utils.js +10 -1
  131. package/build-module/components/global-styles/utils.js.map +1 -1
  132. package/build-module/components/page-patterns/fields.js +223 -0
  133. package/build-module/components/page-patterns/fields.js.map +1 -0
  134. package/build-module/components/page-patterns/index.js +14 -231
  135. package/build-module/components/page-patterns/index.js.map +1 -1
  136. package/build-module/components/page-patterns/use-patterns.js +26 -0
  137. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  138. package/build-module/components/page-templates/fields.js +160 -0
  139. package/build-module/components/page-templates/fields.js.map +1 -0
  140. package/build-module/components/page-templates/index.js +12 -178
  141. package/build-module/components/page-templates/index.js.map +1 -1
  142. package/build-module/components/post-edit/index.js +49 -37
  143. package/build-module/components/post-edit/index.js.map +1 -1
  144. package/build-module/components/post-fields/index.js +50 -28
  145. package/build-module/components/post-fields/index.js.map +1 -1
  146. package/build-module/components/post-list/index.js +128 -70
  147. package/build-module/components/post-list/index.js.map +1 -1
  148. package/build-module/components/sidebar-dataviews/add-new-view.js +3 -2
  149. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
  150. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +1 -0
  151. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  152. package/build-module/components/sidebar-dataviews/dataview-item.js +2 -3
  153. package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
  154. package/build-module/components/sidebar-dataviews/default-views.js +81 -81
  155. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  156. package/build-module/components/sidebar-dataviews/index.js +3 -42
  157. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  158. package/build-module/components/site-hub/index.js +7 -4
  159. package/build-module/components/site-hub/index.js.map +1 -1
  160. package/build-module/components/style-book/index.js +23 -26
  161. package/build-module/components/style-book/index.js.map +1 -1
  162. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
  163. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  164. package/build-module/hooks/push-changes-to-global-styles/index.js +3 -3
  165. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  166. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -3
  167. package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
  168. package/build-module/index.js +0 -2
  169. package/build-module/index.js.map +1 -1
  170. package/build-module/utils/is-template-removable.js +2 -2
  171. package/build-module/utils/is-template-removable.js.map +1 -1
  172. package/build-module/utils/is-template-revertable.js +1 -1
  173. package/build-module/utils/is-template-revertable.js.map +1 -1
  174. package/build-style/posts-rtl.css +201 -25
  175. package/build-style/posts.css +201 -25
  176. package/build-style/style-rtl.css +307 -69
  177. package/build-style/style.css +307 -69
  178. package/package.json +41 -41
  179. package/src/components/add-new-pattern/index.js +8 -3
  180. package/src/components/add-new-post/index.js +2 -1
  181. package/src/components/add-new-template/style.scss +1 -1
  182. package/src/components/add-new-template/utils.js +10 -6
  183. package/src/components/editor/index.js +80 -22
  184. package/src/components/editor/style.scss +60 -2
  185. package/src/components/global-styles/background-panel.js +0 -3
  186. package/src/components/global-styles/font-families.js +3 -5
  187. package/src/components/global-styles/font-library-modal/context.js +0 -5
  188. package/src/components/global-styles/font-library-modal/font-collection.js +34 -10
  189. package/src/components/global-styles/font-library-modal/index.js +2 -7
  190. package/src/components/global-styles/font-library-modal/installed-fonts.js +26 -6
  191. package/src/components/global-styles/font-library-modal/style.scss +2 -2
  192. package/src/components/global-styles/font-library-modal/upload-fonts.js +2 -2
  193. package/src/components/global-styles/screen-block.js +2 -4
  194. package/src/components/global-styles/screen-css.js +3 -1
  195. package/src/components/global-styles/screen-typeset.js +42 -0
  196. package/src/components/global-styles/screen-typography-element.js +14 -0
  197. package/src/components/global-styles/screen-typography.js +4 -4
  198. package/src/components/global-styles/shadows-edit-panel.js +67 -73
  199. package/src/components/global-styles/size-control/index.js +9 -6
  200. package/src/components/global-styles/style.scss +4 -7
  201. package/src/components/global-styles/typeset-button.js +93 -0
  202. package/src/components/global-styles/typeset.js +73 -0
  203. package/src/components/global-styles/ui.js +5 -0
  204. package/src/components/global-styles/utils.js +13 -1
  205. package/src/components/layout/style.scss +8 -0
  206. package/src/components/page-patterns/fields.js +251 -0
  207. package/src/components/page-patterns/index.js +19 -246
  208. package/src/components/page-patterns/style.scss +82 -85
  209. package/src/components/page-patterns/use-patterns.js +33 -0
  210. package/src/components/page-templates/fields.js +157 -0
  211. package/src/components/page-templates/index.js +19 -170
  212. package/src/components/page-templates/style.scss +14 -5
  213. package/src/components/post-edit/index.js +58 -35
  214. package/src/components/post-fields/index.js +88 -25
  215. package/src/components/post-list/index.js +135 -79
  216. package/src/components/sidebar-dataviews/add-new-view.js +3 -4
  217. package/src/components/sidebar-dataviews/custom-dataviews-list.js +1 -0
  218. package/src/components/sidebar-dataviews/dataview-item.js +2 -2
  219. package/src/components/sidebar-dataviews/default-views.js +95 -95
  220. package/src/components/sidebar-dataviews/index.js +3 -37
  221. package/src/components/site-hub/index.js +11 -2
  222. package/src/components/site-icon/style.scss +4 -1
  223. package/src/components/style-book/index.js +27 -32
  224. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
  225. package/src/hooks/push-changes-to-global-styles/index.js +3 -3
  226. package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -3
  227. package/src/index.js +0 -2
  228. package/src/utils/is-template-removable.js +4 -2
  229. package/src/utils/is-template-revertable.js +2 -1
  230. package/build/utils/clone-deep.js +0 -15
  231. package/build/utils/clone-deep.js.map +0 -1
  232. package/build-module/utils/clone-deep.js +0 -9
  233. package/build-module/utils/clone-deep.js.map +0 -1
  234. package/src/utils/clone-deep.js +0 -8
@@ -1,46 +1,33 @@
1
- /**
2
- * External dependencies
3
- */
4
- import clsx from 'clsx';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
9
- import { Icon, __experimentalHStack as HStack } from '@wordpress/components';
10
4
  import { __ } from '@wordpress/i18n';
11
5
  import { useState, useMemo, useCallback, useEffect } from '@wordpress/element';
12
- import { useEntityRecords } from '@wordpress/core-data';
13
- import { decodeEntities } from '@wordpress/html-entities';
14
- import { parse } from '@wordpress/blocks';
15
- import { BlockPreview, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
6
+ import { privateApis as corePrivateApis } from '@wordpress/core-data';
16
7
  import { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';
17
8
  import { privateApis as routerPrivateApis } from '@wordpress/router';
18
- import { privateApis as editorPrivateApis, EditorProvider } from '@wordpress/editor';
9
+ import { privateApis as editorPrivateApis } from '@wordpress/editor';
19
10
 
20
11
  /**
21
12
  * Internal dependencies
22
13
  */
23
- import { Async } from '../async';
24
14
  import Page from '../page';
25
- import { default as Link, useLink } from '../routes/link';
26
15
  import AddNewTemplate from '../add-new-template';
27
- import { useAddedBy } from './hooks';
28
16
  import { TEMPLATE_POST_TYPE, OPERATOR_IS_ANY, LAYOUT_GRID, LAYOUT_TABLE, LAYOUT_LIST } from '../../utils/constants';
29
- import usePatternSettings from '../page-patterns/use-pattern-settings';
30
17
  import { unlock } from '../../lock-unlock';
31
18
  import { useEditPostAction } from '../dataviews-actions';
19
+ import { authorField, descriptionField, previewField, titleField } from './fields';
32
20
  import { jsx as _jsx } from "react/jsx-runtime";
33
- import { jsxs as _jsxs } from "react/jsx-runtime";
34
21
  const {
35
22
  usePostActions
36
23
  } = unlock(editorPrivateApis);
37
- const {
38
- useGlobalStyle
39
- } = unlock(blockEditorPrivateApis);
40
24
  const {
41
25
  useHistory,
42
26
  useLocation
43
27
  } = unlock(routerPrivateApis);
28
+ const {
29
+ useEntityRecordsWithPermissions
30
+ } = unlock(corePrivateApis);
44
31
  const EMPTY_ARRAY = [];
45
32
  const defaultLayouts = {
46
33
  [LAYOUT_TABLE]: {
@@ -59,8 +46,7 @@ const defaultLayouts = {
59
46
  minWidth: 320
60
47
  },
61
48
  preview: {
62
- minWidth: 120,
63
- maxWidth: 120
49
+ width: '1%'
64
50
  },
65
51
  author: {
66
52
  width: '1%'
@@ -97,107 +83,6 @@ const DEFAULT_VIEW = {
97
83
  layout: defaultLayouts[LAYOUT_GRID].layout,
98
84
  filters: []
99
85
  };
100
- function Title({
101
- item,
102
- viewType
103
- }) {
104
- if (viewType === LAYOUT_LIST) {
105
- return decodeEntities(item.title?.rendered) || __('(no title)');
106
- }
107
- const linkProps = {
108
- params: {
109
- postId: item.id,
110
- postType: item.type,
111
- canvas: 'edit'
112
- }
113
- };
114
- return /*#__PURE__*/_jsx(Link, {
115
- ...linkProps,
116
- children: decodeEntities(item.title?.rendered) || __('(no title)')
117
- });
118
- }
119
- function AuthorField({
120
- item
121
- }) {
122
- const [isImageLoaded, setIsImageLoaded] = useState(false);
123
- const {
124
- text,
125
- icon,
126
- imageUrl
127
- } = useAddedBy(item.type, item.id);
128
- return /*#__PURE__*/_jsxs(HStack, {
129
- alignment: "left",
130
- spacing: 0,
131
- children: [imageUrl && /*#__PURE__*/_jsx("div", {
132
- className: clsx('page-templates-author-field__avatar', {
133
- 'is-loaded': isImageLoaded
134
- }),
135
- children: /*#__PURE__*/_jsx("img", {
136
- onLoad: () => setIsImageLoaded(true),
137
- alt: "",
138
- src: imageUrl
139
- })
140
- }), !imageUrl && /*#__PURE__*/_jsx("div", {
141
- className: "page-templates-author-field__icon",
142
- children: /*#__PURE__*/_jsx(Icon, {
143
- icon: icon
144
- })
145
- }), /*#__PURE__*/_jsx("span", {
146
- className: "page-templates-author-field__name",
147
- children: text
148
- })]
149
- });
150
- }
151
- function Preview({
152
- item,
153
- viewType
154
- }) {
155
- const settings = usePatternSettings();
156
- const [backgroundColor = 'white'] = useGlobalStyle('color.background');
157
- const blocks = useMemo(() => {
158
- return parse(item.content.raw);
159
- }, [item.content.raw]);
160
- const {
161
- onClick
162
- } = useLink({
163
- postId: item.id,
164
- postType: item.type,
165
- canvas: 'edit'
166
- });
167
- const isEmpty = !blocks?.length;
168
- // Wrap everything in a block editor provider to ensure 'styles' that are needed
169
- // for the previews are synced between the site editor store and the block editor store.
170
- // Additionally we need to have the `__experimentalBlockPatterns` setting in order to
171
- // render patterns inside the previews.
172
- // TODO: Same approach is used in the patterns list and it becomes obvious that some of
173
- // the block editor settings are needed in context where we don't have the block editor.
174
- // Explore how we can solve this in a better way.
175
- return /*#__PURE__*/_jsx(EditorProvider, {
176
- post: item,
177
- settings: settings,
178
- children: /*#__PURE__*/_jsxs("div", {
179
- className: `page-templates-preview-field is-viewtype-${viewType}`,
180
- style: {
181
- backgroundColor
182
- },
183
- children: [viewType === LAYOUT_LIST && !isEmpty && /*#__PURE__*/_jsx(Async, {
184
- children: /*#__PURE__*/_jsx(BlockPreview, {
185
- blocks: blocks
186
- })
187
- }), viewType !== LAYOUT_LIST && /*#__PURE__*/_jsxs("button", {
188
- className: "page-templates-preview-field__button",
189
- type: "button",
190
- onClick: onClick,
191
- "aria-label": item.title?.rendered || item.title,
192
- children: [isEmpty && __('Empty template'), !isEmpty && /*#__PURE__*/_jsx(Async, {
193
- children: /*#__PURE__*/_jsx(BlockPreview, {
194
- blocks: blocks
195
- })
196
- })]
197
- })]
198
- })
199
- });
200
- }
201
86
  export default function PageTemplates() {
202
87
  const {
203
88
  params
@@ -236,7 +121,7 @@ export default function PageTemplates() {
236
121
  const {
237
122
  records,
238
123
  isResolving: isLoadingData
239
- } = useEntityRecords('postType', TEMPLATE_POST_TYPE, {
124
+ } = useEntityRecordsWithPermissions('postType', TEMPLATE_POST_TYPE, {
240
125
  per_page: -1
241
126
  });
242
127
  const history = useHistory();
@@ -262,61 +147,10 @@ export default function PageTemplates() {
262
147
  label: author
263
148
  }));
264
149
  }, [records]);
265
- const fields = useMemo(() => [{
266
- label: __('Preview'),
267
- id: 'preview',
268
- render: ({
269
- item
270
- }) => {
271
- return /*#__PURE__*/_jsx(Preview, {
272
- item: item,
273
- viewType: view.type
274
- });
275
- },
276
- enableSorting: false
277
- }, {
278
- label: __('Template'),
279
- id: 'title',
280
- getValue: ({
281
- item
282
- }) => item.title?.rendered,
283
- render: ({
284
- item
285
- }) => /*#__PURE__*/_jsx(Title, {
286
- item: item,
287
- viewType: view.type
288
- }),
289
- enableHiding: false,
290
- enableGlobalSearch: true
291
- }, {
292
- label: __('Description'),
293
- id: 'description',
294
- render: ({
295
- item
296
- }) => {
297
- return item.description && /*#__PURE__*/_jsx("span", {
298
- className: "page-templates-description",
299
- children: decodeEntities(item.description)
300
- });
301
- },
302
- enableSorting: false,
303
- enableGlobalSearch: true
304
- }, {
305
- label: __('Author'),
306
- id: 'author',
307
- getValue: ({
308
- item
309
- }) => item.author_text,
310
- render: ({
311
- item
312
- }) => {
313
- return /*#__PURE__*/_jsx(AuthorField, {
314
- viewType: view.type,
315
- item: item
316
- });
317
- },
150
+ const fields = useMemo(() => [previewField, titleField, descriptionField, {
151
+ ...authorField,
318
152
  elements: authors
319
- }], [authors, view.type]);
153
+ }], [authors]);
320
154
  const {
321
155
  data,
322
156
  paginationInfo
@@ -353,7 +187,7 @@ export default function PageTemplates() {
353
187
  onChangeSelection: onChangeSelection,
354
188
  selection: selection,
355
189
  defaultLayouts: defaultLayouts
356
- })
190
+ }, activeView)
357
191
  });
358
192
  }
359
193
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","Icon","__experimentalHStack","HStack","__","useState","useMemo","useCallback","useEffect","useEntityRecords","decodeEntities","parse","BlockPreview","privateApis","blockEditorPrivateApis","DataViews","filterSortAndPaginate","routerPrivateApis","editorPrivateApis","EditorProvider","Async","Page","default","Link","useLink","AddNewTemplate","useAddedBy","TEMPLATE_POST_TYPE","OPERATOR_IS_ANY","LAYOUT_GRID","LAYOUT_TABLE","LAYOUT_LIST","usePatternSettings","unlock","useEditPostAction","jsx","_jsx","jsxs","_jsxs","usePostActions","useGlobalStyle","useHistory","useLocation","EMPTY_ARRAY","defaultLayouts","fields","layout","primaryField","combinedFields","id","label","children","direction","styles","template","maxWidth","minWidth","preview","author","width","mediaField","columnFields","DEFAULT_VIEW","type","search","page","perPage","sort","field","filters","Title","item","viewType","title","rendered","linkProps","params","postId","postType","canvas","AuthorField","isImageLoaded","setIsImageLoaded","text","icon","imageUrl","alignment","spacing","className","onLoad","alt","src","Preview","settings","backgroundColor","blocks","content","raw","onClick","isEmpty","length","post","style","PageTemplates","activeView","selection","setSelection","defaultView","usedType","operator","value","view","setView","currentView","records","isResolving","isLoadingData","per_page","history","onChangeSelection","items","push","undefined","authors","authorsSet","Set","forEach","add","author_text","Array","from","map","render","enableSorting","getValue","enableHiding","enableGlobalSearch","description","elements","data","paginationInfo","postTypeActions","context","editAction","actions","onChangeView","newView","isLoading"],"sources":["@wordpress/edit-site/src/components/page-templates/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { Icon, __experimentalHStack as HStack } 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 {\n\tprivateApis as editorPrivateApis,\n\tEditorProvider,\n} from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { Async } from '../async';\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\tOPERATOR_IS_ANY,\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tLAYOUT_LIST,\n} from '../../utils/constants';\n\nimport usePatternSettings from '../page-patterns/use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\nimport { useEditPostAction } from '../dataviews-actions';\n\nconst { usePostActions } = unlock( editorPrivateApis );\n\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nconst defaultLayouts = {\n\t[ LAYOUT_TABLE ]: {\n\t\tfields: [ 'template', 'author' ],\n\t\tlayout: {\n\t\t\tprimaryField: 'title',\n\t\t\tcombinedFields: [\n\t\t\t\t{\n\t\t\t\t\tid: 'template',\n\t\t\t\t\tlabel: __( 'Template' ),\n\t\t\t\t\tchildren: [ 'title', 'description' ],\n\t\t\t\t\tdirection: 'vertical',\n\t\t\t\t},\n\t\t\t],\n\t\t\tstyles: {\n\t\t\t\ttemplate: {\n\t\t\t\t\tmaxWidth: 400,\n\t\t\t\t\tminWidth: 320,\n\t\t\t\t},\n\t\t\t\tpreview: {\n\t\t\t\t\tminWidth: 120,\n\t\t\t\t\tmaxWidth: 120,\n\t\t\t\t},\n\t\t\t\tauthor: {\n\t\t\t\t\twidth: '1%',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n\t[ LAYOUT_GRID ]: {\n\t\tfields: [ 'title', 'description', 'author' ],\n\t\tlayout: {\n\t\t\tmediaField: 'preview',\n\t\t\tprimaryField: 'title',\n\t\t\tcolumnFields: [ 'description' ],\n\t\t},\n\t},\n\t[ LAYOUT_LIST ]: {\n\t\tfields: [ 'title', 'description', 'author' ],\n\t\tlayout: {\n\t\t\tprimaryField: 'title',\n\t\t\tmediaField: 'preview',\n\t\t},\n\t},\n};\n\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_GRID,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\tsort: {\n\t\tfield: 'title',\n\t\tdirection: 'asc',\n\t},\n\tfields: defaultLayouts[ LAYOUT_GRID ].fields,\n\tlayout: defaultLayouts[ LAYOUT_GRID ].layout,\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\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 } ) {\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\tconst { text, icon, imageUrl } = useAddedBy( item.type, item.id );\n\n\treturn (\n\t\t<HStack alignment=\"left\" spacing={ 0 }>\n\t\t\t{ imageUrl && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( 'page-templates-author-field__avatar', {\n\t\t\t\t\t\t'is-loaded': isImageLoaded,\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{ ! 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<EditorProvider post={ item } 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<Async>\n\t\t\t\t\t\t<BlockPreview blocks={ blocks } />\n\t\t\t\t\t</Async>\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 && __( 'Empty template' ) }\n\t\t\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t\t\t<Async>\n\t\t\t\t\t\t\t\t<BlockPreview blocks={ blocks } />\n\t\t\t\t\t\t\t</Async>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</EditorProvider>\n\t);\n}\n\nexport default function PageTemplates() {\n\tconst { params } = useLocation();\n\tconst { activeView = 'all', layout, postId } = params;\n\tconst [ selection, setSelection ] = useState( [ postId ] );\n\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: defaultLayouts[ usedType ].layout,\n\t\t\tfields: defaultLayouts[ usedType ].fields,\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\tTEMPLATE_POST_TYPE,\n\t\t{\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\tconst history = useHistory();\n\tconst onChangeSelection = useCallback(\n\t\t( items ) => {\n\t\t\tsetSelection( 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 ] : 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\t() => [\n\t\t\t{\n\t\t\t\tlabel: __( '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\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Template' ),\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\tenableHiding: false,\n\t\t\t\tenableGlobalSearch: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Description' ),\n\t\t\t\tid: 'description',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\titem.description && (\n\t\t\t\t\t\t\t<span className=\"page-templates-description\">\n\t\t\t\t\t\t\t\t{ decodeEntities( item.description ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tenableSorting: false,\n\t\t\t\tenableGlobalSearch: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Author' ),\n\t\t\t\tid: 'author',\n\t\t\t\tgetValue: ( { item } ) => item.author_text,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn <AuthorField viewType={ view.type } item={ item } />;\n\t\t\t\t},\n\t\t\t\telements: authors,\n\t\t\t},\n\t\t],\n\t\t[ authors, view.type ]\n\t);\n\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\treturn filterSortAndPaginate( records, view, fields );\n\t}, [ records, view, fields ] );\n\n\tconst postTypeActions = usePostActions( {\n\t\tpostType: TEMPLATE_POST_TYPE,\n\t\tcontext: 'list',\n\t} );\n\tconst editAction = useEditPostAction();\n\tconst actions = useMemo(\n\t\t() => [ editAction, ...postTypeActions ],\n\t\t[ postTypeActions, editAction ]\n\t);\n\n\tconst onChangeView = useCallback(\n\t\t( newView ) => {\n\t\t\tif ( newView.type !== view.type ) {\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-templates\"\n\t\t\ttitle={ __( 'Templates' ) }\n\t\t\tactions={ <AddNewTemplate /> }\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\tonChangeSelection={ onChangeSelection }\n\t\t\t\tselection={ selection }\n\t\t\t\tdefaultLayouts={ defaultLayouts }\n\t\t\t/>\n\t\t</Page>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","useState","useMemo","useCallback","useEffect","privateApis","corePrivateApis","DataViews","filterSortAndPaginate","routerPrivateApis","editorPrivateApis","Page","AddNewTemplate","TEMPLATE_POST_TYPE","OPERATOR_IS_ANY","LAYOUT_GRID","LAYOUT_TABLE","LAYOUT_LIST","unlock","useEditPostAction","authorField","descriptionField","previewField","titleField","jsx","_jsx","usePostActions","useHistory","useLocation","useEntityRecordsWithPermissions","EMPTY_ARRAY","defaultLayouts","fields","layout","primaryField","combinedFields","id","label","children","direction","styles","template","maxWidth","minWidth","preview","width","author","mediaField","columnFields","DEFAULT_VIEW","type","search","page","perPage","sort","field","filters","PageTemplates","params","activeView","postId","selection","setSelection","defaultView","usedType","operator","value","view","setView","currentView","records","isResolving","isLoadingData","per_page","history","onChangeSelection","items","push","length","undefined","authors","authorsSet","Set","forEach","add","author_text","Array","from","map","elements","data","paginationInfo","postTypeActions","postType","context","editAction","actions","onChangeView","newView","className","title","isLoading"],"sources":["@wordpress/edit-site/src/components/page-templates/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState, useMemo, useCallback, useEffect } from '@wordpress/element';\nimport { privateApis as corePrivateApis } from '@wordpress/core-data';\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 AddNewTemplate from '../add-new-template';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tOPERATOR_IS_ANY,\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tLAYOUT_LIST,\n} from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\nimport { useEditPostAction } from '../dataviews-actions';\nimport {\n\tauthorField,\n\tdescriptionField,\n\tpreviewField,\n\ttitleField,\n} from './fields';\n\nconst { usePostActions } = unlock( editorPrivateApis );\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\nconst { useEntityRecordsWithPermissions } = unlock( corePrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nconst defaultLayouts = {\n\t[ LAYOUT_TABLE ]: {\n\t\tfields: [ 'template', 'author' ],\n\t\tlayout: {\n\t\t\tprimaryField: 'title',\n\t\t\tcombinedFields: [\n\t\t\t\t{\n\t\t\t\t\tid: 'template',\n\t\t\t\t\tlabel: __( 'Template' ),\n\t\t\t\t\tchildren: [ 'title', 'description' ],\n\t\t\t\t\tdirection: 'vertical',\n\t\t\t\t},\n\t\t\t],\n\t\t\tstyles: {\n\t\t\t\ttemplate: {\n\t\t\t\t\tmaxWidth: 400,\n\t\t\t\t\tminWidth: 320,\n\t\t\t\t},\n\t\t\t\tpreview: {\n\t\t\t\t\twidth: '1%',\n\t\t\t\t},\n\t\t\t\tauthor: {\n\t\t\t\t\twidth: '1%',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n\t[ LAYOUT_GRID ]: {\n\t\tfields: [ 'title', 'description', 'author' ],\n\t\tlayout: {\n\t\t\tmediaField: 'preview',\n\t\t\tprimaryField: 'title',\n\t\t\tcolumnFields: [ 'description' ],\n\t\t},\n\t},\n\t[ LAYOUT_LIST ]: {\n\t\tfields: [ 'title', 'description', 'author' ],\n\t\tlayout: {\n\t\t\tprimaryField: 'title',\n\t\t\tmediaField: 'preview',\n\t\t},\n\t},\n};\n\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_GRID,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\tsort: {\n\t\tfield: 'title',\n\t\tdirection: 'asc',\n\t},\n\tfields: defaultLayouts[ LAYOUT_GRID ].fields,\n\tlayout: defaultLayouts[ LAYOUT_GRID ].layout,\n\tfilters: [],\n};\n\nexport default function PageTemplates() {\n\tconst { params } = useLocation();\n\tconst { activeView = 'all', layout, postId } = params;\n\tconst [ selection, setSelection ] = useState( [ postId ] );\n\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: defaultLayouts[ usedType ].layout,\n\t\t\tfields: defaultLayouts[ usedType ].fields,\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 } =\n\t\tuseEntityRecordsWithPermissions( 'postType', TEMPLATE_POST_TYPE, {\n\t\t\tper_page: -1,\n\t\t} );\n\tconst history = useHistory();\n\tconst onChangeSelection = useCallback(\n\t\t( items ) => {\n\t\t\tsetSelection( 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 ] : 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\t() => [\n\t\t\tpreviewField,\n\t\t\ttitleField,\n\t\t\tdescriptionField,\n\t\t\t{\n\t\t\t\t...authorField,\n\t\t\t\telements: authors,\n\t\t\t},\n\t\t],\n\t\t[ authors ]\n\t);\n\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\treturn filterSortAndPaginate( records, view, fields );\n\t}, [ records, view, fields ] );\n\n\tconst postTypeActions = usePostActions( {\n\t\tpostType: TEMPLATE_POST_TYPE,\n\t\tcontext: 'list',\n\t} );\n\tconst editAction = useEditPostAction();\n\tconst actions = useMemo(\n\t\t() => [ editAction, ...postTypeActions ],\n\t\t[ postTypeActions, editAction ]\n\t);\n\n\tconst onChangeView = useCallback(\n\t\t( newView ) => {\n\t\t\tif ( newView.type !== view.type ) {\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-templates\"\n\t\t\ttitle={ __( 'Templates' ) }\n\t\t\tactions={ <AddNewTemplate /> }\n\t\t>\n\t\t\t<DataViews\n\t\t\t\tkey={ activeView }\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\tonChangeSelection={ onChangeSelection }\n\t\t\t\tselection={ selection }\n\t\t\t\tdefaultLayouts={ defaultLayouts }\n\t\t\t/>\n\t\t</Page>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -8,73 +8,85 @@ import clsx from 'clsx';
8
8
  */
9
9
  import { __ } from '@wordpress/i18n';
10
10
  import { DataForm } from '@wordpress/dataviews';
11
- import { useDispatch, useSelect, useRegistry } from '@wordpress/data';
11
+ import { useDispatch, useSelect } from '@wordpress/data';
12
12
  import { store as coreDataStore } from '@wordpress/core-data';
13
- import { Button } from '@wordpress/components';
14
- import { useState, useMemo } from '@wordpress/element';
13
+ import { __experimentalVStack as VStack } from '@wordpress/components';
14
+ import { useState, useMemo, useEffect } from '@wordpress/element';
15
+ import { privateApis as editorPrivateApis } from '@wordpress/editor';
15
16
 
16
17
  /**
17
18
  * Internal dependencies
18
19
  */
19
20
  import Page from '../page';
20
21
  import usePostFields from '../post-fields';
22
+ import { unlock } from '../../lock-unlock';
21
23
  import { jsx as _jsx } from "react/jsx-runtime";
22
24
  import { jsxs as _jsxs } from "react/jsx-runtime";
25
+ const {
26
+ PostCardPanel
27
+ } = unlock(editorPrivateApis);
23
28
  function PostEditForm({
24
29
  postType,
25
30
  postId
26
31
  }) {
27
32
  const ids = useMemo(() => postId.split(','), [postId]);
28
33
  const {
29
- initialEdits
34
+ record
30
35
  } = useSelect(select => {
31
- if (ids.length !== 1) {}
32
36
  return {
33
- initialEdits: ids.length === 1 ? select(coreDataStore).getEntityRecord('postType', postType, ids[0]) : null
37
+ record: ids.length === 1 ? select(coreDataStore).getEditedEntityRecord('postType', postType, ids[0]) : null
34
38
  };
35
39
  }, [postType, ids]);
36
- const registry = useRegistry();
40
+ const [multiEdits, setMultiEdits] = useState({});
37
41
  const {
38
- saveEntityRecord
42
+ editEntityRecord
39
43
  } = useDispatch(coreDataStore);
40
44
  const {
41
- fields
45
+ fields: _fields
42
46
  } = usePostFields();
47
+ const fields = useMemo(() => _fields?.map(field => {
48
+ if (field.id === 'status') {
49
+ return {
50
+ ...field,
51
+ elements: field.elements.filter(element => element.value !== 'trash')
52
+ };
53
+ }
54
+ return field;
55
+ }), [_fields]);
43
56
  const form = {
44
- visibleFields: ['title']
57
+ type: 'panel',
58
+ fields: ['title', 'status', 'date', 'author', 'comment_status']
45
59
  };
46
- const [edits, setEdits] = useState({});
47
- const itemWithEdits = useMemo(() => {
48
- return {
49
- ...initialEdits,
50
- ...edits
51
- };
52
- }, [initialEdits, edits]);
53
- const onSubmit = async event => {
54
- event.preventDefault();
55
- const {
56
- getEntityRecord
57
- } = registry.resolveSelect(coreDataStore);
60
+ const onChange = edits => {
58
61
  for (const id of ids) {
59
- const item = await getEntityRecord('postType', postType, id);
60
- saveEntityRecord('postType', postType, {
61
- ...item,
62
- ...edits
63
- });
62
+ if (edits.status !== 'future' && record.status === 'future' && new Date(record.date) > new Date()) {
63
+ edits.date = null;
64
+ }
65
+ if (edits.status === 'private' && record.password) {
66
+ edits.password = '';
67
+ }
68
+ editEntityRecord('postType', postType, id, edits);
69
+ if (ids.length > 1) {
70
+ setMultiEdits(prev => ({
71
+ ...prev,
72
+ ...edits
73
+ }));
74
+ }
64
75
  }
65
- setEdits({});
66
76
  };
67
- return /*#__PURE__*/_jsxs("form", {
68
- onSubmit: onSubmit,
69
- children: [/*#__PURE__*/_jsx(DataForm, {
70
- data: itemWithEdits,
77
+ useEffect(() => {
78
+ setMultiEdits({});
79
+ }, [ids]);
80
+ return /*#__PURE__*/_jsxs(VStack, {
81
+ spacing: 4,
82
+ children: [ids.length === 1 && /*#__PURE__*/_jsx(PostCardPanel, {
83
+ postType: postType,
84
+ postId: ids[0]
85
+ }), /*#__PURE__*/_jsx(DataForm, {
86
+ data: ids.length === 1 ? record : multiEdits,
71
87
  fields: fields,
72
88
  form: form,
73
- onChange: setEdits
74
- }), /*#__PURE__*/_jsx(Button, {
75
- variant: "primary",
76
- type: "submit",
77
- children: __('Update')
89
+ onChange: onChange
78
90
  })]
79
91
  });
80
92
  }
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","__","DataForm","useDispatch","useSelect","useRegistry","store","coreDataStore","Button","useState","useMemo","Page","usePostFields","jsx","_jsx","jsxs","_jsxs","PostEditForm","postType","postId","ids","split","initialEdits","select","length","getEntityRecord","registry","saveEntityRecord","fields","form","visibleFields","edits","setEdits","itemWithEdits","onSubmit","event","preventDefault","resolveSelect","id","item","children","data","onChange","variant","type","PostEdit","className","label"],"sources":["@wordpress/edit-site/src/components/post-edit/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { DataForm } from '@wordpress/dataviews';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { Button } from '@wordpress/components';\nimport { useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport usePostFields from '../post-fields';\n\nfunction PostEditForm( { postType, postId } ) {\n\tconst ids = useMemo( () => postId.split( ',' ), [ postId ] );\n\tconst { initialEdits } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ids.length !== 1 ) {\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tinitialEdits:\n\t\t\t\t\tids.length === 1\n\t\t\t\t\t\t? select( coreDataStore ).getEntityRecord(\n\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\tpostType,\n\t\t\t\t\t\t\t\tids[ 0 ]\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: null,\n\t\t\t};\n\t\t},\n\t\t[ postType, ids ]\n\t);\n\tconst registry = useRegistry();\n\tconst { saveEntityRecord } = useDispatch( coreDataStore );\n\tconst { fields } = usePostFields();\n\tconst form = {\n\t\tvisibleFields: [ 'title' ],\n\t};\n\tconst [ edits, setEdits ] = useState( {} );\n\tconst itemWithEdits = useMemo( () => {\n\t\treturn {\n\t\t\t...initialEdits,\n\t\t\t...edits,\n\t\t};\n\t}, [ initialEdits, edits ] );\n\tconst onSubmit = async ( event ) => {\n\t\tevent.preventDefault();\n\t\tconst { getEntityRecord } = registry.resolveSelect( coreDataStore );\n\t\tfor ( const id of ids ) {\n\t\t\tconst item = await getEntityRecord( 'postType', postType, id );\n\t\t\tsaveEntityRecord( 'postType', postType, {\n\t\t\t\t...item,\n\t\t\t\t...edits,\n\t\t\t} );\n\t\t}\n\t\tsetEdits( {} );\n\t};\n\n\treturn (\n\t\t<form onSubmit={ onSubmit }>\n\t\t\t<DataForm\n\t\t\t\tdata={ itemWithEdits }\n\t\t\t\tfields={ fields }\n\t\t\t\tform={ form }\n\t\t\t\tonChange={ setEdits }\n\t\t\t/>\n\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t{ __( 'Update' ) }\n\t\t\t</Button>\n\t\t</form>\n\t);\n}\n\nexport function PostEdit( { postType, postId } ) {\n\treturn (\n\t\t<Page\n\t\t\tclassName={ clsx( 'edit-site-post-edit', {\n\t\t\t\t'is-empty': ! postId,\n\t\t\t} ) }\n\t\t\tlabel={ __( 'Post Edit' ) }\n\t\t>\n\t\t\t{ postId && (\n\t\t\t\t<PostEditForm postType={ postType } postId={ postId } />\n\t\t\t) }\n\t\t\t{ ! postId && <p>{ __( 'Select a page to edit' ) }</p> }\n\t\t</Page>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","__","DataForm","useDispatch","useSelect","store","coreDataStore","__experimentalVStack","VStack","useState","useMemo","useEffect","privateApis","editorPrivateApis","Page","usePostFields","unlock","jsx","_jsx","jsxs","_jsxs","PostCardPanel","PostEditForm","postType","postId","ids","split","record","select","length","getEditedEntityRecord","multiEdits","setMultiEdits","editEntityRecord","fields","_fields","map","field","id","elements","filter","element","value","form","type","onChange","edits","status","Date","date","password","prev","spacing","children","data","PostEdit","className","label"],"sources":["@wordpress/edit-site/src/components/post-edit/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { DataForm } from '@wordpress/dataviews';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport { useState, useMemo, useEffect } from '@wordpress/element';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport usePostFields from '../post-fields';\nimport { unlock } from '../../lock-unlock';\n\nconst { PostCardPanel } = unlock( editorPrivateApis );\n\nfunction PostEditForm( { postType, postId } ) {\n\tconst ids = useMemo( () => postId.split( ',' ), [ postId ] );\n\tconst { record } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\trecord:\n\t\t\t\t\tids.length === 1\n\t\t\t\t\t\t? select( coreDataStore ).getEditedEntityRecord(\n\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\tpostType,\n\t\t\t\t\t\t\t\tids[ 0 ]\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: null,\n\t\t\t};\n\t\t},\n\t\t[ postType, ids ]\n\t);\n\tconst [ multiEdits, setMultiEdits ] = useState( {} );\n\tconst { editEntityRecord } = useDispatch( coreDataStore );\n\tconst { fields: _fields } = usePostFields();\n\tconst fields = useMemo(\n\t\t() =>\n\t\t\t_fields?.map( ( field ) => {\n\t\t\t\tif ( field.id === 'status' ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...field,\n\t\t\t\t\t\telements: field.elements.filter(\n\t\t\t\t\t\t\t( element ) => element.value !== 'trash'\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn field;\n\t\t\t} ),\n\t\t[ _fields ]\n\t);\n\tconst form = {\n\t\ttype: 'panel',\n\t\tfields: [ 'title', 'status', 'date', 'author', 'comment_status' ],\n\t};\n\tconst onChange = ( edits ) => {\n\t\tfor ( const id of ids ) {\n\t\t\tif (\n\t\t\t\tedits.status !== 'future' &&\n\t\t\t\trecord.status === 'future' &&\n\t\t\t\tnew Date( record.date ) > new Date()\n\t\t\t) {\n\t\t\t\tedits.date = null;\n\t\t\t}\n\t\t\tif ( edits.status === 'private' && record.password ) {\n\t\t\t\tedits.password = '';\n\t\t\t}\n\t\t\teditEntityRecord( 'postType', postType, id, edits );\n\t\t\tif ( ids.length > 1 ) {\n\t\t\t\tsetMultiEdits( ( prev ) => ( {\n\t\t\t\t\t...prev,\n\t\t\t\t\t...edits,\n\t\t\t\t} ) );\n\t\t\t}\n\t\t}\n\t};\n\tuseEffect( () => {\n\t\tsetMultiEdits( {} );\n\t}, [ ids ] );\n\n\treturn (\n\t\t<VStack spacing={ 4 }>\n\t\t\t{ ids.length === 1 && (\n\t\t\t\t<PostCardPanel postType={ postType } postId={ ids[ 0 ] } />\n\t\t\t) }\n\t\t\t<DataForm\n\t\t\t\tdata={ ids.length === 1 ? record : multiEdits }\n\t\t\t\tfields={ fields }\n\t\t\t\tform={ form }\n\t\t\t\tonChange={ onChange }\n\t\t\t/>\n\t\t</VStack>\n\t);\n}\n\nexport function PostEdit( { postType, postId } ) {\n\treturn (\n\t\t<Page\n\t\t\tclassName={ clsx( 'edit-site-post-edit', {\n\t\t\t\t'is-empty': ! postId,\n\t\t\t} ) }\n\t\t\tlabel={ __( 'Post Edit' ) }\n\t\t>\n\t\t\t{ postId && (\n\t\t\t\t<PostEditForm postType={ postType } postId={ postId } />\n\t\t\t) }\n\t\t\t{ ! postId && <p>{ __( 'Select a page to edit' ) }</p> }\n\t\t</Page>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}