@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 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_dataviews","_data","_coreData","_components","_element","_page","_postFields","_jsxRuntime","PostEditForm","postType","postId","ids","useMemo","split","initialEdits","useSelect","select","length","coreDataStore","getEntityRecord","registry","useRegistry","saveEntityRecord","useDispatch","fields","usePostFields","form","visibleFields","edits","setEdits","useState","itemWithEdits","onSubmit","event","preventDefault","resolveSelect","id","item","jsxs","children","jsx","DataForm","data","onChange","Button","variant","type","__","PostEdit","default","className","clsx","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","_interopRequireDefault","require","_i18n","_dataviews","_data","_coreData","_components","_element","_editor","_page","_postFields","_lockUnlock","_jsxRuntime","PostCardPanel","unlock","editorPrivateApis","PostEditForm","postType","postId","ids","useMemo","split","record","useSelect","select","length","coreDataStore","getEditedEntityRecord","multiEdits","setMultiEdits","useState","editEntityRecord","useDispatch","fields","_fields","usePostFields","map","field","id","elements","filter","element","value","form","type","onChange","edits","status","Date","date","password","prev","useEffect","jsxs","__experimentalVStack","spacing","children","jsx","DataForm","data","PostEdit","default","className","clsx","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":[]}
@@ -37,23 +37,28 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
37
37
  const STATUSES = [{
38
38
  value: 'draft',
39
39
  label: (0, _i18n.__)('Draft'),
40
- icon: _icons.drafts
40
+ icon: _icons.drafts,
41
+ description: (0, _i18n.__)('Not ready to publish.')
41
42
  }, {
42
43
  value: 'future',
43
44
  label: (0, _i18n.__)('Scheduled'),
44
- icon: _icons.scheduled
45
+ icon: _icons.scheduled,
46
+ description: (0, _i18n.__)('Publish automatically on a chosen date.')
45
47
  }, {
46
48
  value: 'pending',
47
49
  label: (0, _i18n.__)('Pending Review'),
48
- icon: _icons.pending
50
+ icon: _icons.pending,
51
+ description: (0, _i18n.__)('Waiting for review before publishing.')
49
52
  }, {
50
53
  value: 'private',
51
54
  label: (0, _i18n.__)('Private'),
52
- icon: _icons.notAllowed
55
+ icon: _icons.notAllowed,
56
+ description: (0, _i18n.__)('Only visible to site admins and editors.')
53
57
  }, {
54
58
  value: 'publish',
55
59
  label: (0, _i18n.__)('Published'),
56
- icon: _icons.published
60
+ icon: _icons.published,
61
+ description: (0, _i18n.__)('Visible to everyone.')
57
62
  }, {
58
63
  value: 'trash',
59
64
  label: (0, _i18n.__)('Trash'),
@@ -196,15 +201,16 @@ function usePostFields(viewType) {
196
201
  item
197
202
  }) => {
198
203
  const addLink = [_constants.LAYOUT_TABLE, _constants.LAYOUT_GRID].includes(viewType) && item.status !== 'trash';
204
+ const renderedTitle = typeof item.title === 'string' ? item.title : item.title?.rendered;
199
205
  const title = addLink ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_link.default, {
200
206
  params: {
201
207
  postId: item.id,
202
208
  postType: item.type,
203
209
  canvas: 'edit'
204
210
  },
205
- children: (0, _htmlEntities.decodeEntities)(item.title?.rendered) || (0, _i18n.__)('(no title)')
211
+ children: (0, _htmlEntities.decodeEntities)(renderedTitle) || (0, _i18n.__)('(no title)')
206
212
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
207
- children: (0, _htmlEntities.decodeEntities)(item.title?.rendered) || (0, _i18n.__)('(no title)')
213
+ children: (0, _htmlEntities.decodeEntities)(renderedTitle) || (0, _i18n.__)('(no title)')
208
214
  });
209
215
  let suffix = '';
210
216
  if (item.id === frontPageId) {
@@ -229,9 +235,7 @@ function usePostFields(viewType) {
229
235
  }, {
230
236
  label: (0, _i18n.__)('Author'),
231
237
  id: 'author',
232
- getValue: ({
233
- item
234
- }) => item._embedded?.author[0]?.name,
238
+ type: 'integer',
235
239
  elements: authors?.map(({
236
240
  id,
237
241
  name
@@ -239,20 +243,19 @@ function usePostFields(viewType) {
239
243
  value: id,
240
244
  label: name
241
245
  })) || [],
242
- render: PostAuthorField
246
+ render: PostAuthorField,
247
+ sort: (a, b, direction) => {
248
+ const nameA = a._embedded?.author?.[0]?.name || '';
249
+ const nameB = b._embedded?.author?.[0]?.name || '';
250
+ return direction === 'asc' ? nameA.localeCompare(nameB) : nameB.localeCompare(nameA);
251
+ }
243
252
  }, {
244
253
  label: (0, _i18n.__)('Status'),
245
254
  id: 'status',
246
- getValue: ({
247
- item
248
- }) => {
249
- var _STATUSES$find$label;
250
- return (_STATUSES$find$label = STATUSES.find(({
251
- value
252
- }) => value === item.status)?.label) !== null && _STATUSES$find$label !== void 0 ? _STATUSES$find$label : item.status;
253
- },
255
+ type: 'text',
254
256
  elements: STATUSES,
255
257
  render: PostStatusField,
258
+ Edit: 'radio',
256
259
  enableSorting: false,
257
260
  filterBy: {
258
261
  operators: [_constants.OPERATOR_IS_ANY]
@@ -260,6 +263,7 @@ function usePostFields(viewType) {
260
263
  }, {
261
264
  label: (0, _i18n.__)('Date'),
262
265
  id: 'date',
266
+ type: 'datetime',
263
267
  render: ({
264
268
  item
265
269
  }) => {
@@ -279,8 +283,16 @@ function usePostFields(viewType) {
279
283
  time: /*#__PURE__*/(0, _jsxRuntime.jsx)("time", {})
280
284
  });
281
285
  }
286
+ const isPublished = item.status === 'publish';
287
+ if (isPublished) {
288
+ return (0, _element.createInterpolateElement)((0, _i18n.sprintf)( /* translators: %s: page creation time */
289
+ (0, _i18n.__)('<span>Published: <time>%s</time></span>'), getFormattedDate(item.date)), {
290
+ span: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}),
291
+ time: /*#__PURE__*/(0, _jsxRuntime.jsx)("time", {})
292
+ });
293
+ }
282
294
 
283
- // Pending & Published posts show the modified date if it's newer.
295
+ // Pending posts show the modified date if it's newer.
284
296
  const dateToDisplay = (0, _date.getDate)(item.modified) > (0, _date.getDate)(item.date) ? item.modified : item.date;
285
297
  const isPending = item.status === 'pending';
286
298
  if (isPending) {
@@ -290,20 +302,30 @@ function usePostFields(viewType) {
290
302
  time: /*#__PURE__*/(0, _jsxRuntime.jsx)("time", {})
291
303
  });
292
304
  }
293
- const isPublished = item.status === 'publish';
294
- if (isPublished) {
295
- return (0, _element.createInterpolateElement)((0, _i18n.sprintf)( /* translators: %s: the newest of created or modified date for the page */
296
- (0, _i18n.__)('<span>Published: <time>%s</time></span>'), getFormattedDate(dateToDisplay)), {
297
- span: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}),
298
- time: /*#__PURE__*/(0, _jsxRuntime.jsx)("time", {})
299
- });
300
- }
301
305
 
302
306
  // Unknow status.
303
307
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("time", {
304
308
  children: getFormattedDate(item.date)
305
309
  });
306
310
  }
311
+ }, {
312
+ id: 'comment_status',
313
+ label: (0, _i18n.__)('Discussion'),
314
+ type: 'text',
315
+ Edit: 'radio',
316
+ enableSorting: false,
317
+ filterBy: {
318
+ operators: []
319
+ },
320
+ elements: [{
321
+ value: 'open',
322
+ label: (0, _i18n.__)('Open'),
323
+ description: (0, _i18n.__)('Visitors can add new comments and replies.')
324
+ }, {
325
+ value: 'closed',
326
+ label: (0, _i18n.__)('Closed'),
327
+ description: (0, _i18n.__)('Visitors cannot add new comments or replies. Existing comments remain visible.')
328
+ }]
307
329
  }], [authors, viewType, frontPageId, postsPageId]);
308
330
  return {
309
331
  isLoading: isLoadingAuthors,
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_htmlEntities","_element","_date","_icons","_components","_data","_coreData","_constants","_link","_interopRequireWildcard","_media","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","STATUSES","value","label","__","icon","drafts","scheduled","pending","notAllowed","published","trash","getFormattedDate","dateToDisplay","dateI18n","getSettings","formats","datetimeAbbreviated","getDate","FeaturedImage","item","viewType","isDisabled","status","onClick","useLink","postId","id","postType","type","canvas","hasMedia","featured_media","size","LAYOUT_GRID","media","jsx","className","renderButton","LAYOUT_LIST","children","title","rendered","PostStatusField","find","jsxs","__experimentalHStack","alignment","spacing","Icon","PostAuthorField","text","imageUrl","useSelect","select","getUser","coreStore","user","author","avatar_urls","name","isImageLoaded","setIsImageLoaded","useState","clsx","onLoad","alt","src","authorIcon","usePostFields","records","authors","isResolving","isLoadingAuthors","useEntityRecords","per_page","frontPageId","postsPageId","getEntityRecord","siteSettings","page_on_front","page_for_posts","fields","useMemo","getValue","render","enableSorting","raw","addLink","LAYOUT_TABLE","includes","params","decodeEntities","suffix","justify","enableHiding","_embedded","elements","map","_STATUSES$find$label","filterBy","operators","OPERATOR_IS_ANY","isDraftOrPrivate","createInterpolateElement","sprintf","date","span","time","isScheduled","modified","isPending","isPublished","isLoading","_default","exports"],"sources":["@wordpress/edit-site/src/components/post-fields/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tcreateInterpolateElement,\n\tuseMemo,\n\tuseState,\n} from '@wordpress/element';\nimport { dateI18n, getDate, getSettings } from '@wordpress/date';\nimport {\n\ttrash,\n\tdrafts,\n\tpublished,\n\tscheduled,\n\tpending,\n\tnotAllowed,\n\tcommentAuthorAvatar as authorIcon,\n} from '@wordpress/icons';\nimport { __experimentalHStack as HStack, Icon } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useEntityRecords, store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tLAYOUT_LIST,\n\tOPERATOR_IS_ANY,\n} from '../../utils/constants';\nimport { default as Link, useLink } from '../routes/link';\nimport Media from '../media';\n\n// See https://github.com/WordPress/gutenberg/issues/55886\n// We do not support custom statutes at the moment.\nconst STATUSES = [\n\t{ value: 'draft', label: __( 'Draft' ), icon: drafts },\n\t{ value: 'future', label: __( 'Scheduled' ), icon: scheduled },\n\t{ value: 'pending', label: __( 'Pending Review' ), icon: pending },\n\t{ value: 'private', label: __( 'Private' ), icon: notAllowed },\n\t{ value: 'publish', label: __( 'Published' ), icon: published },\n\t{ value: 'trash', label: __( 'Trash' ), icon: trash },\n];\n\nconst getFormattedDate = ( dateToDisplay ) =>\n\tdateI18n(\n\t\tgetSettings().formats.datetimeAbbreviated,\n\t\tgetDate( dateToDisplay )\n\t);\n\nfunction FeaturedImage( { item, viewType } ) {\n\tconst isDisabled = item.status === 'trash';\n\tconst { onClick } = useLink( {\n\t\tpostId: item.id,\n\t\tpostType: item.type,\n\t\tcanvas: 'edit',\n\t} );\n\tconst hasMedia = !! item.featured_media;\n\tconst size =\n\t\tviewType === LAYOUT_GRID\n\t\t\t? [ 'large', 'full', 'medium', 'thumbnail' ]\n\t\t\t: [ 'thumbnail', 'medium', 'large', 'full' ];\n\tconst media = hasMedia ? (\n\t\t<Media\n\t\t\tclassName=\"edit-site-post-list__featured-image\"\n\t\t\tid={ item.featured_media }\n\t\t\tsize={ size }\n\t\t/>\n\t) : null;\n\tconst renderButton = viewType !== LAYOUT_LIST && ! isDisabled;\n\treturn (\n\t\t<div\n\t\t\tclassName={ `edit-site-post-list__featured-image-wrapper is-layout-${ viewType }` }\n\t\t>\n\t\t\t{ renderButton ? (\n\t\t\t\t<button\n\t\t\t\t\tclassName=\"edit-site-post-list__featured-image-button\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\taria-label={ item.title?.rendered || __( '(no title)' ) }\n\t\t\t\t>\n\t\t\t\t\t{ media }\n\t\t\t\t</button>\n\t\t\t) : (\n\t\t\t\tmedia\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction PostStatusField( { item } ) {\n\tconst status = STATUSES.find( ( { value } ) => value === item.status );\n\tconst label = status?.label || item.status;\n\tconst icon = status?.icon;\n\treturn (\n\t\t<HStack alignment=\"left\" spacing={ 0 }>\n\t\t\t{ icon && (\n\t\t\t\t<div className=\"edit-site-post-list__status-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>{ label }</span>\n\t\t</HStack>\n\t);\n}\n\nfunction PostAuthorField( { item } ) {\n\tconst { text, imageUrl } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getUser } = select( coreStore );\n\t\t\tconst user = getUser( item.author );\n\t\t\treturn {\n\t\t\t\timageUrl: user?.avatar_urls?.[ 48 ],\n\t\t\t\ttext: user?.name,\n\t\t\t};\n\t\t},\n\t\t[ item ]\n\t);\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\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={ __( 'Author avatar' ) }\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={ authorIcon } />\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 usePostFields( viewType ) {\n\tconst { records: authors, isResolving: isLoadingAuthors } =\n\t\tuseEntityRecords( 'root', 'user', { per_page: -1 } );\n\n\tconst { frontPageId, postsPageId } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\t\treturn {\n\t\t\tfrontPageId: siteSettings?.page_on_front,\n\t\t\tpostsPageId: siteSettings?.page_for_posts,\n\t\t};\n\t}, [] );\n\n\tconst fields = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\tid: 'featured-image',\n\t\t\t\tlabel: __( 'Featured Image' ),\n\t\t\t\tgetValue: ( { item } ) => item.featured_media,\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<FeaturedImage item={ item } viewType={ viewType } />\n\t\t\t\t),\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Title' ),\n\t\t\t\tid: 'title',\n\t\t\t\ttype: 'text',\n\t\t\t\tgetValue: ( { item } ) =>\n\t\t\t\t\ttypeof item.title === 'string'\n\t\t\t\t\t\t? item.title\n\t\t\t\t\t\t: item.title?.raw,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\tconst addLink =\n\t\t\t\t\t\t[ LAYOUT_TABLE, LAYOUT_GRID ].includes( viewType ) &&\n\t\t\t\t\t\titem.status !== 'trash';\n\t\t\t\t\tconst title = addLink ? (\n\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\tparams={ {\n\t\t\t\t\t\t\t\tpostId: item.id,\n\t\t\t\t\t\t\t\tpostType: item.type,\n\t\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ decodeEntities( item.title?.rendered ) ||\n\t\t\t\t\t\t\t\t__( '(no title)' ) }\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t{ decodeEntities( item.title?.rendered ) ||\n\t\t\t\t\t\t\t\t__( '(no title)' ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t);\n\n\t\t\t\t\tlet suffix = '';\n\t\t\t\t\tif ( item.id === frontPageId ) {\n\t\t\t\t\t\tsuffix = (\n\t\t\t\t\t\t\t<span className=\"edit-site-post-list__title-badge\">\n\t\t\t\t\t\t\t\t{ __( 'Homepage' ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( item.id === postsPageId ) {\n\t\t\t\t\t\tsuffix = (\n\t\t\t\t\t\t\t<span className=\"edit-site-post-list__title-badge\">\n\t\t\t\t\t\t\t\t{ __( 'Posts Page' ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tclassName=\"edit-site-post-list__title\"\n\t\t\t\t\t\t\talignment=\"center\"\n\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t{ suffix }\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tenableHiding: false,\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._embedded?.author[ 0 ]?.name,\n\t\t\t\telements:\n\t\t\t\t\tauthors?.map( ( { id, name } ) => ( {\n\t\t\t\t\t\tvalue: id,\n\t\t\t\t\t\tlabel: name,\n\t\t\t\t\t} ) ) || [],\n\t\t\t\trender: PostAuthorField,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Status' ),\n\t\t\t\tid: 'status',\n\t\t\t\tgetValue: ( { item } ) =>\n\t\t\t\t\tSTATUSES.find( ( { value } ) => value === item.status )\n\t\t\t\t\t\t?.label ?? item.status,\n\t\t\t\telements: STATUSES,\n\t\t\t\trender: PostStatusField,\n\t\t\t\tenableSorting: false,\n\t\t\t\tfilterBy: {\n\t\t\t\t\toperators: [ OPERATOR_IS_ANY ],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Date' ),\n\t\t\t\tid: 'date',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\tconst isDraftOrPrivate = [ 'draft', 'private' ].includes(\n\t\t\t\t\t\titem.status\n\t\t\t\t\t);\n\t\t\t\t\tif ( isDraftOrPrivate ) {\n\t\t\t\t\t\treturn createInterpolateElement(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: page creation date */\n\t\t\t\t\t\t\t\t__( '<span>Modified: <time>%s</time></span>' ),\n\t\t\t\t\t\t\t\tgetFormattedDate( item.date )\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tspan: <span />,\n\t\t\t\t\t\t\t\ttime: <time />,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst isScheduled = item.status === 'future';\n\t\t\t\t\tif ( isScheduled ) {\n\t\t\t\t\t\treturn createInterpolateElement(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: page creation date */\n\t\t\t\t\t\t\t\t__( '<span>Scheduled: <time>%s</time></span>' ),\n\t\t\t\t\t\t\t\tgetFormattedDate( item.date )\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tspan: <span />,\n\t\t\t\t\t\t\t\ttime: <time />,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Pending & Published posts show the modified date if it's newer.\n\t\t\t\t\tconst dateToDisplay =\n\t\t\t\t\t\tgetDate( item.modified ) > getDate( item.date )\n\t\t\t\t\t\t\t? item.modified\n\t\t\t\t\t\t\t: item.date;\n\n\t\t\t\t\tconst isPending = item.status === 'pending';\n\t\t\t\t\tif ( isPending ) {\n\t\t\t\t\t\treturn createInterpolateElement(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: the newest of created or modified date for the page */\n\t\t\t\t\t\t\t\t__( '<span>Modified: <time>%s</time></span>' ),\n\t\t\t\t\t\t\t\tgetFormattedDate( dateToDisplay )\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tspan: <span />,\n\t\t\t\t\t\t\t\ttime: <time />,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst isPublished = item.status === 'publish';\n\t\t\t\t\tif ( isPublished ) {\n\t\t\t\t\t\treturn createInterpolateElement(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: the newest of created or modified date for the page */\n\t\t\t\t\t\t\t\t__( '<span>Published: <time>%s</time></span>' ),\n\t\t\t\t\t\t\t\tgetFormattedDate( dateToDisplay )\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tspan: <span />,\n\t\t\t\t\t\t\t\ttime: <time />,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Unknow status.\n\t\t\t\t\treturn <time>{ getFormattedDate( item.date ) }</time>;\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\t[ authors, viewType, frontPageId, postsPageId ]\n\t);\n\n\treturn {\n\t\tisLoading: isLoadingAuthors,\n\t\tfields,\n\t};\n}\n\nexport default usePostFields;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_htmlEntities","_element","_date","_icons","_components","_data","_coreData","_constants","_link","_interopRequireWildcard","_media","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","STATUSES","value","label","__","icon","drafts","description","scheduled","pending","notAllowed","published","trash","getFormattedDate","dateToDisplay","dateI18n","getSettings","formats","datetimeAbbreviated","getDate","FeaturedImage","item","viewType","isDisabled","status","onClick","useLink","postId","id","postType","type","canvas","hasMedia","featured_media","size","LAYOUT_GRID","media","jsx","className","renderButton","LAYOUT_LIST","children","title","rendered","PostStatusField","find","jsxs","__experimentalHStack","alignment","spacing","Icon","PostAuthorField","text","imageUrl","useSelect","select","getUser","coreStore","user","author","avatar_urls","name","isImageLoaded","setIsImageLoaded","useState","clsx","onLoad","alt","src","authorIcon","usePostFields","records","authors","isResolving","isLoadingAuthors","useEntityRecords","per_page","frontPageId","postsPageId","getEntityRecord","siteSettings","page_on_front","page_for_posts","fields","useMemo","getValue","render","enableSorting","raw","addLink","LAYOUT_TABLE","includes","renderedTitle","params","decodeEntities","suffix","justify","enableHiding","elements","map","sort","b","direction","nameA","_embedded","nameB","localeCompare","Edit","filterBy","operators","OPERATOR_IS_ANY","isDraftOrPrivate","createInterpolateElement","sprintf","date","span","time","isScheduled","isPublished","modified","isPending","isLoading","_default","exports"],"sources":["@wordpress/edit-site/src/components/post-fields/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tcreateInterpolateElement,\n\tuseMemo,\n\tuseState,\n} from '@wordpress/element';\nimport { dateI18n, getDate, getSettings } from '@wordpress/date';\nimport {\n\ttrash,\n\tdrafts,\n\tpublished,\n\tscheduled,\n\tpending,\n\tnotAllowed,\n\tcommentAuthorAvatar as authorIcon,\n} from '@wordpress/icons';\nimport { __experimentalHStack as HStack, Icon } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useEntityRecords, store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tLAYOUT_LIST,\n\tOPERATOR_IS_ANY,\n} from '../../utils/constants';\nimport { default as Link, useLink } from '../routes/link';\nimport Media from '../media';\n\n// See https://github.com/WordPress/gutenberg/issues/55886\n// We do not support custom statutes at the moment.\nconst STATUSES = [\n\t{\n\t\tvalue: 'draft',\n\t\tlabel: __( 'Draft' ),\n\t\ticon: drafts,\n\t\tdescription: __( 'Not ready to publish.' ),\n\t},\n\t{\n\t\tvalue: 'future',\n\t\tlabel: __( 'Scheduled' ),\n\t\ticon: scheduled,\n\t\tdescription: __( 'Publish automatically on a chosen date.' ),\n\t},\n\t{\n\t\tvalue: 'pending',\n\t\tlabel: __( 'Pending Review' ),\n\t\ticon: pending,\n\t\tdescription: __( 'Waiting for review before publishing.' ),\n\t},\n\t{\n\t\tvalue: 'private',\n\t\tlabel: __( 'Private' ),\n\t\ticon: notAllowed,\n\t\tdescription: __( 'Only visible to site admins and editors.' ),\n\t},\n\t{\n\t\tvalue: 'publish',\n\t\tlabel: __( 'Published' ),\n\t\ticon: published,\n\t\tdescription: __( 'Visible to everyone.' ),\n\t},\n\t{ value: 'trash', label: __( 'Trash' ), icon: trash },\n];\n\nconst getFormattedDate = ( dateToDisplay ) =>\n\tdateI18n(\n\t\tgetSettings().formats.datetimeAbbreviated,\n\t\tgetDate( dateToDisplay )\n\t);\n\nfunction FeaturedImage( { item, viewType } ) {\n\tconst isDisabled = item.status === 'trash';\n\tconst { onClick } = useLink( {\n\t\tpostId: item.id,\n\t\tpostType: item.type,\n\t\tcanvas: 'edit',\n\t} );\n\tconst hasMedia = !! item.featured_media;\n\tconst size =\n\t\tviewType === LAYOUT_GRID\n\t\t\t? [ 'large', 'full', 'medium', 'thumbnail' ]\n\t\t\t: [ 'thumbnail', 'medium', 'large', 'full' ];\n\tconst media = hasMedia ? (\n\t\t<Media\n\t\t\tclassName=\"edit-site-post-list__featured-image\"\n\t\t\tid={ item.featured_media }\n\t\t\tsize={ size }\n\t\t/>\n\t) : null;\n\tconst renderButton = viewType !== LAYOUT_LIST && ! isDisabled;\n\treturn (\n\t\t<div\n\t\t\tclassName={ `edit-site-post-list__featured-image-wrapper is-layout-${ viewType }` }\n\t\t>\n\t\t\t{ renderButton ? (\n\t\t\t\t<button\n\t\t\t\t\tclassName=\"edit-site-post-list__featured-image-button\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\taria-label={ item.title?.rendered || __( '(no title)' ) }\n\t\t\t\t>\n\t\t\t\t\t{ media }\n\t\t\t\t</button>\n\t\t\t) : (\n\t\t\t\tmedia\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction PostStatusField( { item } ) {\n\tconst status = STATUSES.find( ( { value } ) => value === item.status );\n\tconst label = status?.label || item.status;\n\tconst icon = status?.icon;\n\treturn (\n\t\t<HStack alignment=\"left\" spacing={ 0 }>\n\t\t\t{ icon && (\n\t\t\t\t<div className=\"edit-site-post-list__status-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>{ label }</span>\n\t\t</HStack>\n\t);\n}\n\nfunction PostAuthorField( { item } ) {\n\tconst { text, imageUrl } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getUser } = select( coreStore );\n\t\t\tconst user = getUser( item.author );\n\t\t\treturn {\n\t\t\t\timageUrl: user?.avatar_urls?.[ 48 ],\n\t\t\t\ttext: user?.name,\n\t\t\t};\n\t\t},\n\t\t[ item ]\n\t);\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\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={ __( 'Author avatar' ) }\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={ authorIcon } />\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 usePostFields( viewType ) {\n\tconst { records: authors, isResolving: isLoadingAuthors } =\n\t\tuseEntityRecords( 'root', 'user', { per_page: -1 } );\n\n\tconst { frontPageId, postsPageId } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\t\treturn {\n\t\t\tfrontPageId: siteSettings?.page_on_front,\n\t\t\tpostsPageId: siteSettings?.page_for_posts,\n\t\t};\n\t}, [] );\n\n\tconst fields = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\tid: 'featured-image',\n\t\t\t\tlabel: __( 'Featured Image' ),\n\t\t\t\tgetValue: ( { item } ) => item.featured_media,\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<FeaturedImage item={ item } viewType={ viewType } />\n\t\t\t\t),\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Title' ),\n\t\t\t\tid: 'title',\n\t\t\t\ttype: 'text',\n\t\t\t\tgetValue: ( { item } ) =>\n\t\t\t\t\ttypeof item.title === 'string'\n\t\t\t\t\t\t? item.title\n\t\t\t\t\t\t: item.title?.raw,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\tconst addLink =\n\t\t\t\t\t\t[ LAYOUT_TABLE, LAYOUT_GRID ].includes( viewType ) &&\n\t\t\t\t\t\titem.status !== 'trash';\n\t\t\t\t\tconst renderedTitle =\n\t\t\t\t\t\ttypeof item.title === 'string'\n\t\t\t\t\t\t\t? item.title\n\t\t\t\t\t\t\t: item.title?.rendered;\n\t\t\t\t\tconst title = addLink ? (\n\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\tparams={ {\n\t\t\t\t\t\t\t\tpostId: item.id,\n\t\t\t\t\t\t\t\tpostType: item.type,\n\t\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ decodeEntities( renderedTitle ) ||\n\t\t\t\t\t\t\t\t__( '(no title)' ) }\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t{ decodeEntities( renderedTitle ) ||\n\t\t\t\t\t\t\t\t__( '(no title)' ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t);\n\n\t\t\t\t\tlet suffix = '';\n\t\t\t\t\tif ( item.id === frontPageId ) {\n\t\t\t\t\t\tsuffix = (\n\t\t\t\t\t\t\t<span className=\"edit-site-post-list__title-badge\">\n\t\t\t\t\t\t\t\t{ __( 'Homepage' ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( item.id === postsPageId ) {\n\t\t\t\t\t\tsuffix = (\n\t\t\t\t\t\t\t<span className=\"edit-site-post-list__title-badge\">\n\t\t\t\t\t\t\t\t{ __( 'Posts Page' ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tclassName=\"edit-site-post-list__title\"\n\t\t\t\t\t\t\talignment=\"center\"\n\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t{ suffix }\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Author' ),\n\t\t\t\tid: 'author',\n\t\t\t\ttype: 'integer',\n\t\t\t\telements:\n\t\t\t\t\tauthors?.map( ( { id, name } ) => ( {\n\t\t\t\t\t\tvalue: id,\n\t\t\t\t\t\tlabel: name,\n\t\t\t\t\t} ) ) || [],\n\t\t\t\trender: PostAuthorField,\n\t\t\t\tsort: ( a, b, direction ) => {\n\t\t\t\t\tconst nameA = a._embedded?.author?.[ 0 ]?.name || '';\n\t\t\t\t\tconst nameB = b._embedded?.author?.[ 0 ]?.name || '';\n\n\t\t\t\t\treturn direction === 'asc'\n\t\t\t\t\t\t? nameA.localeCompare( nameB )\n\t\t\t\t\t\t: nameB.localeCompare( nameA );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Status' ),\n\t\t\t\tid: 'status',\n\t\t\t\ttype: 'text',\n\t\t\t\telements: STATUSES,\n\t\t\t\trender: PostStatusField,\n\t\t\t\tEdit: 'radio',\n\t\t\t\tenableSorting: false,\n\t\t\t\tfilterBy: {\n\t\t\t\t\toperators: [ OPERATOR_IS_ANY ],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Date' ),\n\t\t\t\tid: 'date',\n\t\t\t\ttype: 'datetime',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\tconst isDraftOrPrivate = [ 'draft', 'private' ].includes(\n\t\t\t\t\t\titem.status\n\t\t\t\t\t);\n\t\t\t\t\tif ( isDraftOrPrivate ) {\n\t\t\t\t\t\treturn createInterpolateElement(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: page creation date */\n\t\t\t\t\t\t\t\t__( '<span>Modified: <time>%s</time></span>' ),\n\t\t\t\t\t\t\t\tgetFormattedDate( item.date )\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tspan: <span />,\n\t\t\t\t\t\t\t\ttime: <time />,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst isScheduled = item.status === 'future';\n\t\t\t\t\tif ( isScheduled ) {\n\t\t\t\t\t\treturn createInterpolateElement(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: page creation date */\n\t\t\t\t\t\t\t\t__( '<span>Scheduled: <time>%s</time></span>' ),\n\t\t\t\t\t\t\t\tgetFormattedDate( item.date )\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tspan: <span />,\n\t\t\t\t\t\t\t\ttime: <time />,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst isPublished = item.status === 'publish';\n\t\t\t\t\tif ( isPublished ) {\n\t\t\t\t\t\treturn createInterpolateElement(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: page creation time */\n\t\t\t\t\t\t\t\t__( '<span>Published: <time>%s</time></span>' ),\n\t\t\t\t\t\t\t\tgetFormattedDate( item.date )\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tspan: <span />,\n\t\t\t\t\t\t\t\ttime: <time />,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Pending posts show the modified date if it's newer.\n\t\t\t\t\tconst dateToDisplay =\n\t\t\t\t\t\tgetDate( item.modified ) > getDate( item.date )\n\t\t\t\t\t\t\t? item.modified\n\t\t\t\t\t\t\t: item.date;\n\n\t\t\t\t\tconst isPending = item.status === 'pending';\n\t\t\t\t\tif ( isPending ) {\n\t\t\t\t\t\treturn createInterpolateElement(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: the newest of created or modified date for the page */\n\t\t\t\t\t\t\t\t__( '<span>Modified: <time>%s</time></span>' ),\n\t\t\t\t\t\t\t\tgetFormattedDate( dateToDisplay )\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tspan: <span />,\n\t\t\t\t\t\t\t\ttime: <time />,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Unknow status.\n\t\t\t\t\treturn <time>{ getFormattedDate( item.date ) }</time>;\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'comment_status',\n\t\t\t\tlabel: __( 'Discussion' ),\n\t\t\t\ttype: 'text',\n\t\t\t\tEdit: 'radio',\n\t\t\t\tenableSorting: false,\n\t\t\t\tfilterBy: {\n\t\t\t\t\toperators: [],\n\t\t\t\t},\n\t\t\t\telements: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'open',\n\t\t\t\t\t\tlabel: __( 'Open' ),\n\t\t\t\t\t\tdescription: __(\n\t\t\t\t\t\t\t'Visitors can add new comments and replies.'\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'closed',\n\t\t\t\t\t\tlabel: __( 'Closed' ),\n\t\t\t\t\t\tdescription: __(\n\t\t\t\t\t\t\t'Visitors cannot add new comments or replies. Existing comments remain visible.'\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t\t[ authors, viewType, frontPageId, postsPageId ]\n\t);\n\n\treturn {\n\t\tisLoading: isLoadingAuthors,\n\t\tfields,\n\t};\n}\n\nexport default usePostFields;\n"],"mappings":"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","ignoreList":[]}
@@ -38,7 +38,39 @@ const {
38
38
  useLocation,
39
39
  useHistory
40
40
  } = (0, _lockUnlock.unlock)(_router.privateApis);
41
+ const {
42
+ useEntityRecordsWithPermissions
43
+ } = (0, _lockUnlock.unlock)(_coreData.privateApis);
41
44
  const EMPTY_ARRAY = [];
45
+ const getDefaultView = (defaultViews, activeView) => {
46
+ return defaultViews.find(({
47
+ slug
48
+ }) => slug === activeView)?.view;
49
+ };
50
+ const getCustomView = editedEntityRecord => {
51
+ if (!editedEntityRecord?.content) {
52
+ return undefined;
53
+ }
54
+ const content = JSON.parse(editedEntityRecord.content);
55
+ if (!content) {
56
+ return undefined;
57
+ }
58
+ return {
59
+ ...content,
60
+ layout: _defaultViews.defaultLayouts[content.type]?.layout
61
+ };
62
+ };
63
+
64
+ /**
65
+ * This function abstracts working with default & custom views by
66
+ * providing a [ state, setState ] tuple based on the URL parameters.
67
+ *
68
+ * Consumers use the provided tuple to work with state
69
+ * and don't have to deal with the specifics of default & custom views.
70
+ *
71
+ * @param {string} postType Post type to retrieve default views for.
72
+ * @return {Array} The [ state, setState ] tuple.
73
+ */
42
74
  function useView(postType) {
43
75
  const {
44
76
  params: {
@@ -48,75 +80,87 @@ function useView(postType) {
48
80
  }
49
81
  } = useLocation();
50
82
  const history = useHistory();
51
- const DEFAULT_VIEWS = (0, _defaultViews.useDefaultViews)({
83
+ const defaultViews = (0, _defaultViews.useDefaultViews)({
52
84
  postType
53
85
  });
54
- const selectedDefaultView = (0, _element.useMemo)(() => {
55
- const defaultView = isCustom === 'false' && DEFAULT_VIEWS[postType].find(({
56
- slug
57
- }) => slug === activeView)?.view;
58
- if (isCustom === 'false' && layout) {
59
- return {
60
- ...defaultView,
61
- type: layout,
62
- layout: _defaultViews.defaultLayouts[layout]?.layout
63
- };
64
- }
65
- return defaultView;
66
- }, [isCustom, activeView, layout, postType, DEFAULT_VIEWS]);
67
- const [view, setView] = (0, _element.useState)(selectedDefaultView);
68
- (0, _element.useEffect)(() => {
69
- if (selectedDefaultView) {
70
- setView(selectedDefaultView);
71
- }
72
- }, [selectedDefaultView]);
73
- const editedViewRecord = (0, _data.useSelect)(select => {
86
+ const {
87
+ editEntityRecord
88
+ } = (0, _data.useDispatch)(_coreData.store);
89
+ const editedEntityRecord = (0, _data.useSelect)(select => {
74
90
  if (isCustom !== 'true') {
75
- return;
91
+ return undefined;
76
92
  }
77
93
  const {
78
94
  getEditedEntityRecord
79
95
  } = select(_coreData.store);
80
- const dataviewRecord = getEditedEntityRecord('postType', 'wp_dataviews', Number(activeView));
81
- return dataviewRecord;
96
+ return getEditedEntityRecord('postType', 'wp_dataviews', Number(activeView));
82
97
  }, [activeView, isCustom]);
83
- const {
84
- editEntityRecord
85
- } = (0, _data.useDispatch)(_coreData.store);
86
- const customView = (0, _element.useMemo)(() => {
87
- const storedView = editedViewRecord?.content && JSON.parse(editedViewRecord?.content);
88
- if (!storedView) {
89
- return storedView;
98
+ const [view, setView] = (0, _element.useState)(() => {
99
+ let initialView;
100
+ if (isCustom === 'true') {
101
+ var _getCustomView;
102
+ initialView = (_getCustomView = getCustomView(editedEntityRecord)) !== null && _getCustomView !== void 0 ? _getCustomView : {
103
+ type: layout !== null && layout !== void 0 ? layout : _constants.LAYOUT_LIST
104
+ };
105
+ } else {
106
+ var _getDefaultView;
107
+ initialView = (_getDefaultView = getDefaultView(defaultViews, activeView)) !== null && _getDefaultView !== void 0 ? _getDefaultView : {
108
+ type: layout !== null && layout !== void 0 ? layout : _constants.LAYOUT_LIST
109
+ };
90
110
  }
111
+ const type = layout !== null && layout !== void 0 ? layout : initialView.type;
91
112
  return {
92
- ...storedView,
93
- layout: _defaultViews.defaultLayouts[storedView?.type]?.layout
113
+ ...initialView,
114
+ type
94
115
  };
95
- }, [editedViewRecord?.content]);
96
- const setCustomView = (0, _element.useCallback)(viewToSet => {
97
- editEntityRecord('postType', 'wp_dataviews', editedViewRecord?.id, {
98
- content: JSON.stringify(viewToSet)
99
- });
100
- }, [editEntityRecord, editedViewRecord?.id]);
101
- const setDefaultViewAndUpdateUrl = (0, _element.useCallback)(viewToSet => {
102
- if (viewToSet.type !== view?.type) {
103
- const {
104
- params
105
- } = history.getLocationWithParams();
116
+ });
117
+ const setViewWithUrlUpdate = (0, _element.useCallback)(newView => {
118
+ const {
119
+ params
120
+ } = history.getLocationWithParams();
121
+ if (newView.type === _constants.LAYOUT_LIST && !params?.layout) {
122
+ // Skip updating the layout URL param if
123
+ // it is not present and the newView.type is LAYOUT_LIST.
124
+ } else if (newView.type !== params?.layout) {
106
125
  history.push({
107
126
  ...params,
108
- layout: viewToSet.type
127
+ layout: newView.type
109
128
  });
110
129
  }
111
- setView(viewToSet);
112
- }, [history, view?.type]);
113
- if (isCustom === 'false') {
114
- return [view, setDefaultViewAndUpdateUrl];
115
- } else if (isCustom === 'true' && customView) {
116
- return [customView, setCustomView];
117
- }
118
- // Loading state where no the view was not found on custom views or default views.
119
- return [DEFAULT_VIEWS[postType][0].view, setDefaultViewAndUpdateUrl];
130
+ setView(newView);
131
+ if (isCustom === 'true' && editedEntityRecord?.id) {
132
+ editEntityRecord('postType', 'wp_dataviews', editedEntityRecord?.id, {
133
+ content: JSON.stringify(newView)
134
+ });
135
+ }
136
+ }, [history, isCustom, editEntityRecord, editedEntityRecord?.id]);
137
+
138
+ // When layout URL param changes, update the view type
139
+ // without affecting any other config.
140
+ (0, _element.useEffect)(() => {
141
+ setView(prevView => ({
142
+ ...prevView,
143
+ type: layout !== null && layout !== void 0 ? layout : _constants.LAYOUT_LIST
144
+ }));
145
+ }, [layout]);
146
+
147
+ // When activeView or isCustom URL parameters change, reset the view.
148
+ (0, _element.useEffect)(() => {
149
+ let newView;
150
+ if (isCustom === 'true') {
151
+ newView = getCustomView(editedEntityRecord);
152
+ } else {
153
+ newView = getDefaultView(defaultViews, activeView);
154
+ }
155
+ if (newView) {
156
+ const type = layout !== null && layout !== void 0 ? layout : newView.type;
157
+ setView({
158
+ ...newView,
159
+ type
160
+ });
161
+ }
162
+ }, [activeView, isCustom, layout, defaultViews, editedEntityRecord]);
163
+ return [view, setViewWithUrlUpdate, setViewWithUrlUpdate];
120
164
  }
121
165
  const DEFAULT_STATUSES = 'draft,future,pending,private,publish'; // All but 'trash'.
122
166
 
@@ -126,13 +170,15 @@ function getItemId(item) {
126
170
  function PostList({
127
171
  postType
128
172
  }) {
129
- var _postId$split, _records$map, _usePrevious;
173
+ var _postId$split, _data$map, _usePrevious;
130
174
  const [view, setView] = useView(postType);
131
175
  const history = useHistory();
132
176
  const location = useLocation();
133
177
  const {
134
178
  postId,
135
- quickEdit = false
179
+ quickEdit = false,
180
+ isCustom,
181
+ activeView = 'all'
136
182
  } = location.params;
137
183
  const [selection, setSelection] = (0, _element.useState)((_postId$split = postId?.split(',')) !== null && _postId$split !== void 0 ? _postId$split : []);
138
184
  const onChangeSelection = (0, _element.useCallback)(items => {
@@ -148,9 +194,13 @@ function PostList({
148
194
  });
149
195
  }
150
196
  }, [history]);
197
+ const {
198
+ isLoading: isLoadingFields,
199
+ fields
200
+ } = (0, _postFields.default)(view.type);
151
201
  const queryArgs = (0, _element.useMemo)(() => {
152
202
  const filters = {};
153
- view.filters.forEach(filter => {
203
+ view.filters?.forEach(filter => {
154
204
  if (filter.field === 'status' && filter.operator === _constants.OPERATOR_IS_ANY) {
155
205
  filters.status = filter.value;
156
206
  }
@@ -177,11 +227,23 @@ function PostList({
177
227
  }, [view]);
178
228
  const {
179
229
  records,
180
- isResolving: isLoadingMainEntities,
230
+ isResolving: isLoadingData,
181
231
  totalItems,
182
232
  totalPages
183
- } = (0, _coreData.useEntityRecords)('postType', postType, queryArgs);
184
- const ids = (_records$map = records?.map(record => getItemId(record))) !== null && _records$map !== void 0 ? _records$map : [];
233
+ } = useEntityRecordsWithPermissions('postType', postType, queryArgs);
234
+
235
+ // The REST API sort the authors by ID, but we want to sort them by name.
236
+ const data = (0, _element.useMemo)(() => {
237
+ if (!isLoadingFields && view?.sort?.field === 'author') {
238
+ return (0, _dataviews.filterSortAndPaginate)(records, {
239
+ sort: {
240
+ ...view.sort
241
+ }
242
+ }, fields).data;
243
+ }
244
+ return records;
245
+ }, [records, fields, isLoadingFields, view?.sort]);
246
+ const ids = (_data$map = data?.map(record => getItemId(record))) !== null && _data$map !== void 0 ? _data$map : [];
185
247
  const prevIds = (_usePrevious = (0, _compose.usePrevious)(ids)) !== null && _usePrevious !== void 0 ? _usePrevious : [];
186
248
  const deletedIds = prevIds.filter(id => !ids.includes(id));
187
249
  const postIdWasDeleted = deletedIds.includes(postId);
@@ -233,10 +295,6 @@ function PostList({
233
295
  });
234
296
  closeModal();
235
297
  };
236
- const {
237
- isLoading: isLoadingFields,
238
- fields
239
- } = (0, _postFields.default)(view.type);
240
298
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_page.default, {
241
299
  title: labels?.name,
242
300
  actions: labels?.add_new_item && canCreateRecord && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
@@ -255,8 +313,8 @@ function PostList({
255
313
  paginationInfo: paginationInfo,
256
314
  fields: fields,
257
315
  actions: actions,
258
- data: records || EMPTY_ARRAY,
259
- isLoading: isLoadingMainEntities || isLoadingFields,
316
+ data: data || EMPTY_ARRAY,
317
+ isLoading: isLoadingData || isLoadingFields,
260
318
  view: view,
261
319
  onChangeView: setView,
262
320
  selection: selection,
@@ -267,7 +325,7 @@ function PostList({
267
325
  size: "compact",
268
326
  isPressed: quickEdit,
269
327
  icon: _icons.drawerRight,
270
- label: !quickEdit ? (0, _i18n.__)('Show quick edit sidebar') : (0, _i18n.__)('Close quick edit sidebar'),
328
+ label: (0, _i18n.__)('Toggle details panel'),
271
329
  onClick: () => {
272
330
  history.push({
273
331
  ...location.params,
@@ -275,7 +333,7 @@ function PostList({
275
333
  });
276
334
  }
277
335
  })
278
- })
336
+ }, activeView + isCustom)
279
337
  });
280
338
  }
281
339
  //# sourceMappingURL=index.js.map