@wordpress/edit-site 5.23.0 → 5.24.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 (320) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/actions/index.js +56 -38
  3. package/build/components/actions/index.js.map +1 -1
  4. package/build/components/block-editor/site-editor-canvas.js +7 -2
  5. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  6. package/build/components/dataviews/add-filter.js +21 -20
  7. package/build/components/dataviews/add-filter.js.map +1 -1
  8. package/build/components/dataviews/constants.js +14 -0
  9. package/build/components/dataviews/constants.js.map +1 -0
  10. package/build/components/dataviews/dataviews.js +9 -7
  11. package/build/components/dataviews/dataviews.js.map +1 -1
  12. package/build/components/dataviews/filter-summary.js +62 -0
  13. package/build/components/dataviews/filter-summary.js.map +1 -0
  14. package/build/components/dataviews/filters.js +15 -30
  15. package/build/components/dataviews/filters.js.map +1 -1
  16. package/build/components/dataviews/item-actions.js +84 -30
  17. package/build/components/dataviews/item-actions.js.map +1 -1
  18. package/build/components/dataviews/pagination.js +4 -0
  19. package/build/components/dataviews/pagination.js.map +1 -1
  20. package/build/components/dataviews/view-actions.js +24 -24
  21. package/build/components/dataviews/view-actions.js.map +1 -1
  22. package/build/components/dataviews/view-grid.js +48 -25
  23. package/build/components/dataviews/view-grid.js.map +1 -1
  24. package/build/components/dataviews/view-list.js +28 -33
  25. package/build/components/dataviews/view-list.js.map +1 -1
  26. package/build/components/editor/index.js +23 -27
  27. package/build/components/editor/index.js.map +1 -1
  28. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  29. package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
  30. package/build/components/global-styles/font-library-modal/utils/index.js +15 -2
  31. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  32. package/build/components/global-styles/header.js +4 -2
  33. package/build/components/global-styles/header.js.map +1 -1
  34. package/build/components/global-styles/screen-block-list.js +22 -16
  35. package/build/components/global-styles/screen-block-list.js.map +1 -1
  36. package/build/components/global-styles/screen-revisions/index.js +26 -5
  37. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  38. package/build/components/global-styles/screen-revisions/revisions-buttons.js +52 -24
  39. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  40. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
  41. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  42. package/build/components/global-styles/ui.js +28 -36
  43. package/build/components/global-styles/ui.js.map +1 -1
  44. package/build/components/header-edit-mode/document-actions/index.js +21 -16
  45. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  46. package/build/components/header-edit-mode/index.js +2 -1
  47. package/build/components/header-edit-mode/index.js.map +1 -1
  48. package/build/components/header-edit-mode/more-menu/index.js +1 -1
  49. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  50. package/build/components/list/added-by.js +43 -54
  51. package/build/components/list/added-by.js.map +1 -1
  52. package/build/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +9 -8
  53. package/build/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
  54. package/build/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  55. package/build/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
  56. package/build/components/page-content-focus-notifications/index.js +22 -0
  57. package/build/components/page-content-focus-notifications/index.js.map +1 -0
  58. package/build/components/page-pages/index.js +9 -15
  59. package/build/components/page-pages/index.js.map +1 -1
  60. package/build/components/page-patterns/use-patterns.js +1 -1
  61. package/build/components/page-patterns/use-patterns.js.map +1 -1
  62. package/build/components/page-templates/dataviews-templates.js +166 -51
  63. package/build/components/page-templates/dataviews-templates.js.map +1 -1
  64. package/build/components/preferences-modal/index.js +1 -1
  65. package/build/components/preferences-modal/index.js.map +1 -1
  66. package/build/components/save-button/index.js +9 -6
  67. package/build/components/save-button/index.js.map +1 -1
  68. package/build/components/save-hub/index.js +14 -0
  69. package/build/components/save-hub/index.js.map +1 -1
  70. package/build/components/sidebar-dataviews/custom-dataviews-list.js +3 -1
  71. package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  72. package/build/components/sidebar-dataviews/default-views.js +7 -2
  73. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  74. package/build/components/sidebar-edit-mode/index.js +6 -5
  75. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  76. package/build/components/sidebar-edit-mode/page-panels/edit-template.js +15 -26
  77. package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  78. package/build/components/sidebar-edit-mode/page-panels/hooks.js +22 -8
  79. package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  80. package/build/components/sidebar-edit-mode/page-panels/page-status.js +8 -5
  81. package/build/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  82. package/build/components/sidebar-edit-mode/page-panels/page-summary.js +4 -8
  83. package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  84. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +2 -2
  85. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  86. package/build/components/sidebar-edit-mode/settings-header/index.js +10 -6
  87. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  88. package/build/components/sidebar-navigation-screen-page/index.js +23 -4
  89. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  90. package/build/components/style-book/index.js +22 -12
  91. package/build/components/style-book/index.js.map +1 -1
  92. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +41 -9
  93. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  94. package/build/components/welcome-guide/page.js +2 -2
  95. package/build/components/welcome-guide/page.js.map +1 -1
  96. package/build/components/welcome-guide/template.js +6 -3
  97. package/build/components/welcome-guide/template.js.map +1 -1
  98. package/build/hooks/commands/use-edit-mode-commands.js +24 -14
  99. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  100. package/build/store/actions.js +4 -1
  101. package/build/store/actions.js.map +1 -1
  102. package/build/store/private-actions.js +2 -27
  103. package/build/store/private-actions.js.map +1 -1
  104. package/build/store/private-selectors.js +0 -23
  105. package/build/store/private-selectors.js.map +1 -1
  106. package/build/store/reducer.js +1 -40
  107. package/build/store/reducer.js.map +1 -1
  108. package/build/store/selectors.js +8 -4
  109. package/build/store/selectors.js.map +1 -1
  110. package/build/utils/constants.js +1 -12
  111. package/build/utils/constants.js.map +1 -1
  112. package/build-module/components/actions/index.js +55 -36
  113. package/build-module/components/actions/index.js.map +1 -1
  114. package/build-module/components/block-editor/site-editor-canvas.js +7 -2
  115. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  116. package/build-module/components/dataviews/add-filter.js +21 -20
  117. package/build-module/components/dataviews/add-filter.js.map +1 -1
  118. package/build-module/components/dataviews/constants.js +6 -0
  119. package/build-module/components/dataviews/constants.js.map +1 -0
  120. package/build-module/components/dataviews/dataviews.js +9 -7
  121. package/build-module/components/dataviews/dataviews.js.map +1 -1
  122. package/build-module/components/dataviews/filter-summary.js +55 -0
  123. package/build-module/components/dataviews/filter-summary.js.map +1 -0
  124. package/build-module/components/dataviews/filters.js +15 -28
  125. package/build-module/components/dataviews/filters.js.map +1 -1
  126. package/build-module/components/dataviews/item-actions.js +84 -30
  127. package/build-module/components/dataviews/item-actions.js.map +1 -1
  128. package/build-module/components/dataviews/pagination.js +4 -0
  129. package/build-module/components/dataviews/pagination.js.map +1 -1
  130. package/build-module/components/dataviews/view-actions.js +24 -24
  131. package/build-module/components/dataviews/view-actions.js.map +1 -1
  132. package/build-module/components/dataviews/view-grid.js +49 -26
  133. package/build-module/components/dataviews/view-grid.js.map +1 -1
  134. package/build-module/components/dataviews/view-list.js +28 -33
  135. package/build-module/components/dataviews/view-list.js.map +1 -1
  136. package/build-module/components/editor/index.js +26 -30
  137. package/build-module/components/editor/index.js.map +1 -1
  138. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  139. package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
  140. package/build-module/components/global-styles/font-library-modal/utils/index.js +14 -2
  141. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  142. package/build-module/components/global-styles/header.js +4 -2
  143. package/build-module/components/global-styles/header.js.map +1 -1
  144. package/build-module/components/global-styles/screen-block-list.js +23 -17
  145. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  146. package/build-module/components/global-styles/screen-revisions/index.js +27 -6
  147. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  148. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +51 -24
  149. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  150. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
  151. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  152. package/build-module/components/global-styles/ui.js +28 -36
  153. package/build-module/components/global-styles/ui.js.map +1 -1
  154. package/build-module/components/header-edit-mode/document-actions/index.js +21 -16
  155. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  156. package/build-module/components/header-edit-mode/index.js +2 -1
  157. package/build-module/components/header-edit-mode/index.js.map +1 -1
  158. package/build-module/components/header-edit-mode/more-menu/index.js +1 -1
  159. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  160. package/build-module/components/list/added-by.js +44 -55
  161. package/build-module/components/list/added-by.js.map +1 -1
  162. package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +9 -8
  163. package/build-module/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
  164. package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  165. package/build-module/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
  166. package/build-module/components/page-content-focus-notifications/index.js +14 -0
  167. package/build-module/components/page-content-focus-notifications/index.js.map +1 -0
  168. package/build-module/components/page-pages/index.js +10 -16
  169. package/build-module/components/page-pages/index.js.map +1 -1
  170. package/build-module/components/page-patterns/use-patterns.js +1 -1
  171. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  172. package/build-module/components/page-templates/dataviews-templates.js +168 -53
  173. package/build-module/components/page-templates/dataviews-templates.js.map +1 -1
  174. package/build-module/components/preferences-modal/index.js +1 -1
  175. package/build-module/components/preferences-modal/index.js.map +1 -1
  176. package/build-module/components/save-button/index.js +11 -8
  177. package/build-module/components/save-button/index.js.map +1 -1
  178. package/build-module/components/save-hub/index.js +14 -0
  179. package/build-module/components/save-hub/index.js.map +1 -1
  180. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +3 -1
  181. package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
  182. package/build-module/components/sidebar-dataviews/default-views.js +7 -2
  183. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  184. package/build-module/components/sidebar-edit-mode/index.js +6 -5
  185. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  186. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +16 -27
  187. package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
  188. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +21 -7
  189. package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
  190. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js +9 -6
  191. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  192. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +5 -9
  193. package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
  194. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +3 -3
  195. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  196. package/build-module/components/sidebar-edit-mode/settings-header/index.js +10 -6
  197. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
  198. package/build-module/components/sidebar-navigation-screen-page/index.js +23 -4
  199. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  200. package/build-module/components/style-book/index.js +22 -12
  201. package/build-module/components/style-book/index.js.map +1 -1
  202. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +41 -9
  203. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  204. package/build-module/components/welcome-guide/page.js +2 -2
  205. package/build-module/components/welcome-guide/page.js.map +1 -1
  206. package/build-module/components/welcome-guide/template.js +6 -3
  207. package/build-module/components/welcome-guide/template.js.map +1 -1
  208. package/build-module/hooks/commands/use-edit-mode-commands.js +24 -14
  209. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  210. package/build-module/store/actions.js +4 -1
  211. package/build-module/store/actions.js.map +1 -1
  212. package/build-module/store/private-actions.js +1 -25
  213. package/build-module/store/private-actions.js.map +1 -1
  214. package/build-module/store/private-selectors.js +0 -22
  215. package/build-module/store/private-selectors.js.map +1 -1
  216. package/build-module/store/reducer.js +1 -38
  217. package/build-module/store/reducer.js.map +1 -1
  218. package/build-module/store/selectors.js +8 -4
  219. package/build-module/store/selectors.js.map +1 -1
  220. package/build-module/utils/constants.js +0 -10
  221. package/build-module/utils/constants.js.map +1 -1
  222. package/build-style/style-rtl.css +152 -62
  223. package/build-style/style.css +152 -62
  224. package/package.json +41 -41
  225. package/src/components/actions/index.js +76 -48
  226. package/src/components/block-editor/site-editor-canvas.js +8 -2
  227. package/src/components/dataviews/README.md +14 -11
  228. package/src/components/dataviews/add-filter.js +21 -24
  229. package/src/components/dataviews/constants.js +5 -0
  230. package/src/components/dataviews/dataviews.js +10 -10
  231. package/src/components/dataviews/filter-summary.js +79 -0
  232. package/src/components/dataviews/filters.js +18 -35
  233. package/src/components/dataviews/item-actions.js +106 -42
  234. package/src/components/dataviews/pagination.js +4 -0
  235. package/src/components/dataviews/style.scss +84 -8
  236. package/src/components/dataviews/view-actions.js +39 -41
  237. package/src/components/dataviews/view-grid.js +63 -38
  238. package/src/components/dataviews/view-list.js +50 -57
  239. package/src/components/editor/index.js +18 -34
  240. package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
  241. package/src/components/global-styles/font-library-modal/utils/index.js +20 -9
  242. package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +46 -15
  243. package/src/components/global-styles/font-library-modal/utils/test/wpKebabCase.spec.js +28 -0
  244. package/src/components/global-styles/header.js +2 -1
  245. package/src/components/global-styles/screen-block-list.js +37 -26
  246. package/src/components/global-styles/screen-revisions/index.js +39 -10
  247. package/src/components/global-styles/screen-revisions/revisions-buttons.js +65 -45
  248. package/src/components/global-styles/screen-revisions/style.scss +52 -28
  249. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +15 -6
  250. package/src/components/global-styles/style.scss +0 -11
  251. package/src/components/global-styles/ui.js +59 -74
  252. package/src/components/header-edit-mode/document-actions/index.js +20 -18
  253. package/src/components/header-edit-mode/index.js +1 -0
  254. package/src/components/header-edit-mode/more-menu/index.js +1 -1
  255. package/src/components/list/added-by.js +23 -63
  256. package/src/components/list/style.scss +11 -13
  257. package/src/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +12 -13
  258. package/src/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
  259. package/src/components/page-content-focus-notifications/index.js +14 -0
  260. package/src/components/page-pages/index.js +15 -20
  261. package/src/components/page-patterns/use-patterns.js +1 -1
  262. package/src/components/page-templates/dataviews-templates.js +169 -48
  263. package/src/components/page-templates/style.scss +13 -0
  264. package/src/components/preferences-modal/index.js +1 -1
  265. package/src/components/save-button/index.js +37 -24
  266. package/src/components/save-hub/index.js +15 -0
  267. package/src/components/save-hub/style.scss +7 -0
  268. package/src/components/sidebar-dataviews/custom-dataviews-list.js +2 -0
  269. package/src/components/sidebar-dataviews/default-views.js +7 -2
  270. package/src/components/sidebar-dataviews/style.scss +7 -0
  271. package/src/components/sidebar-edit-mode/index.js +13 -9
  272. package/src/components/sidebar-edit-mode/page-panels/edit-template.js +33 -52
  273. package/src/components/sidebar-edit-mode/page-panels/hooks.js +20 -9
  274. package/src/components/sidebar-edit-mode/page-panels/page-status.js +6 -6
  275. package/src/components/sidebar-edit-mode/page-panels/page-summary.js +8 -9
  276. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +3 -3
  277. package/src/components/sidebar-edit-mode/page-panels/style.scss +9 -19
  278. package/src/components/sidebar-edit-mode/settings-header/index.js +8 -9
  279. package/src/components/sidebar-navigation-screen/style.scss +1 -0
  280. package/src/components/sidebar-navigation-screen-page/index.js +24 -3
  281. package/src/components/sidebar-navigation-screen-template/style.scss +6 -1
  282. package/src/components/style-book/index.js +48 -35
  283. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +69 -17
  284. package/src/components/welcome-guide/page.js +2 -2
  285. package/src/components/welcome-guide/template.js +4 -2
  286. package/src/hooks/commands/use-edit-mode-commands.js +22 -16
  287. package/src/store/actions.js +5 -1
  288. package/src/store/private-actions.js +1 -24
  289. package/src/store/private-selectors.js +0 -22
  290. package/src/store/reducer.js +0 -39
  291. package/src/store/selectors.js +12 -4
  292. package/src/store/test/actions.js +3 -32
  293. package/src/store/test/reducer.js +0 -62
  294. package/src/store/test/selectors.js +0 -35
  295. package/src/style.scss +1 -0
  296. package/src/utils/constants.js +0 -10
  297. package/build/components/dataviews/in-filter.js +0 -51
  298. package/build/components/dataviews/in-filter.js.map +0 -1
  299. package/build/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
  300. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -63
  301. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
  302. package/build/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
  303. package/build/components/page-content-focus-manager/index.js +0 -61
  304. package/build/components/page-content-focus-manager/index.js.map +0 -1
  305. package/build/components/sidebar-edit-mode/page-panels/publish-date.js +0 -87
  306. package/build/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
  307. package/build-module/components/dataviews/in-filter.js +0 -42
  308. package/build-module/components/dataviews/in-filter.js.map +0 -1
  309. package/build-module/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
  310. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -56
  311. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
  312. package/build-module/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
  313. package/build-module/components/page-content-focus-manager/index.js +0 -52
  314. package/build-module/components/page-content-focus-manager/index.js.map +0 -1
  315. package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js +0 -80
  316. package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
  317. package/src/components/dataviews/in-filter.js +0 -63
  318. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -57
  319. package/src/components/page-content-focus-manager/index.js +0 -51
  320. package/src/components/sidebar-edit-mode/page-panels/publish-date.js +0 -94
@@ -4,11 +4,11 @@ import { createElement, Fragment } from "react";
4
4
  */
5
5
  import { useSelect, useDispatch } from '@wordpress/data';
6
6
  import { decodeEntities } from '@wordpress/html-entities';
7
- import { DropdownMenu, MenuGroup, MenuItem, __experimentalHStack as HStack, __experimentalText as Text } from '@wordpress/components';
7
+ import { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';
8
8
  import { __ } from '@wordpress/i18n';
9
9
  import { store as coreStore } from '@wordpress/core-data';
10
10
  import { check } from '@wordpress/icons';
11
- import { store as blockEditorStore } from '@wordpress/block-editor';
11
+ import { privateApis as editorPrivateApis, store as editorStore } from '@wordpress/editor';
12
12
 
13
13
  /**
14
14
  * Internal dependencies
@@ -17,14 +17,15 @@ import { store as editSiteStore } from '../../../store';
17
17
  import SwapTemplateButton from './swap-template-button';
18
18
  import ResetDefaultTemplate from './reset-default-template';
19
19
  import { unlock } from '../../../lock-unlock';
20
- import { PAGE_CONTENT_BLOCK_TYPES } from '../../../utils/constants';
20
+ const {
21
+ PostPanelRow
22
+ } = unlock(editorPrivateApis);
21
23
  const POPOVER_PROPS = {
22
24
  className: 'edit-site-page-panels-edit-template__dropdown',
23
25
  placement: 'bottom-start'
24
26
  };
25
27
  export default function EditTemplate() {
26
28
  const {
27
- hasPostContentBlocks,
28
29
  hasResolved,
29
30
  template,
30
31
  isTemplateHidden
@@ -35,44 +36,32 @@ export default function EditTemplate() {
35
36
  getEditedPostId
36
37
  } = select(editSiteStore);
37
38
  const {
38
- getCanvasMode,
39
- getPageContentFocusType
40
- } = unlock(select(editSiteStore));
39
+ getRenderingMode
40
+ } = unlock(select(editorStore));
41
41
  const {
42
42
  getEditedEntityRecord,
43
43
  hasFinishedResolution
44
44
  } = select(coreStore);
45
- const {
46
- __experimentalGetGlobalBlocksByName
47
- } = select(blockEditorStore);
48
45
  const _context = getEditedPostContext();
49
46
  const _postType = getEditedPostType();
50
47
  const queryArgs = ['postType', _postType, getEditedPostId()];
51
48
  return {
52
- hasPostContentBlocks: !!__experimentalGetGlobalBlocksByName(Object.keys(PAGE_CONTENT_BLOCK_TYPES)).length,
53
49
  context: _context,
54
50
  hasResolved: hasFinishedResolution('getEditedEntityRecord', queryArgs),
55
51
  template: getEditedEntityRecord(...queryArgs),
56
- isTemplateHidden: getCanvasMode() === 'edit' && getPageContentFocusType() === 'hideTemplate',
52
+ isTemplateHidden: getRenderingMode() === 'post-only',
57
53
  postType: _postType
58
54
  };
59
55
  }, []);
60
56
  const {
61
- setHasPageContentFocus
62
- } = useDispatch(editSiteStore);
63
- // Disable reason: `useDispatch` can't be called conditionally.
64
- // eslint-disable-next-line @wordpress/no-unused-vars-before-return
65
- const {
66
- setPageContentFocusType
67
- } = unlock(useDispatch(editSiteStore));
57
+ setRenderingMode
58
+ } = useDispatch(editorStore);
68
59
  if (!hasResolved) {
69
60
  return null;
70
61
  }
71
- return createElement(HStack, {
72
- className: "edit-site-summary-field"
73
- }, createElement(Text, {
74
- className: "edit-site-summary-field__label"
75
- }, __('Template')), createElement(DropdownMenu, {
62
+ return createElement(PostPanelRow, {
63
+ label: __('Template')
64
+ }, createElement(DropdownMenu, {
76
65
  popoverProps: POPOVER_PROPS,
77
66
  focusOnMount: true,
78
67
  toggleProps: {
@@ -86,18 +75,18 @@ export default function EditTemplate() {
86
75
  onClose
87
76
  }) => createElement(Fragment, null, createElement(MenuGroup, null, createElement(MenuItem, {
88
77
  onClick: () => {
89
- setHasPageContentFocus(false);
78
+ setRenderingMode('template-only');
90
79
  onClose();
91
80
  }
92
81
  }, __('Edit template')), createElement(SwapTemplateButton, {
93
82
  onClick: onClose
94
83
  })), createElement(ResetDefaultTemplate, {
95
84
  onClick: onClose
96
- }), hasPostContentBlocks && createElement(MenuGroup, null, createElement(MenuItem, {
85
+ }), createElement(MenuGroup, null, createElement(MenuItem, {
97
86
  icon: !isTemplateHidden ? check : undefined,
98
87
  isPressed: !isTemplateHidden,
99
88
  onClick: () => {
100
- setPageContentFocusType(isTemplateHidden ? 'disableTemplate' : 'hideTemplate');
89
+ setRenderingMode(isTemplateHidden ? 'template-locked' : 'post-only');
101
90
  }
102
91
  }, __('Template preview'))))));
103
92
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","useDispatch","decodeEntities","DropdownMenu","MenuGroup","MenuItem","__experimentalHStack","HStack","__experimentalText","Text","__","store","coreStore","check","blockEditorStore","editSiteStore","SwapTemplateButton","ResetDefaultTemplate","unlock","PAGE_CONTENT_BLOCK_TYPES","POPOVER_PROPS","className","placement","EditTemplate","hasPostContentBlocks","hasResolved","template","isTemplateHidden","select","getEditedPostContext","getEditedPostType","getEditedPostId","getCanvasMode","getPageContentFocusType","getEditedEntityRecord","hasFinishedResolution","__experimentalGetGlobalBlocksByName","_context","_postType","queryArgs","Object","keys","length","context","postType","setHasPageContentFocus","setPageContentFocusType","createElement","popoverProps","focusOnMount","toggleProps","variant","label","text","title","icon","onClose","Fragment","onClick","undefined","isPressed"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/page-panels/edit-template.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { check } from '@wordpress/icons';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\nimport SwapTemplateButton from './swap-template-button';\nimport ResetDefaultTemplate from './reset-default-template';\nimport { unlock } from '../../../lock-unlock';\nimport { PAGE_CONTENT_BLOCK_TYPES } from '../../../utils/constants';\n\nconst POPOVER_PROPS = {\n\tclassName: 'edit-site-page-panels-edit-template__dropdown',\n\tplacement: 'bottom-start',\n};\n\nexport default function EditTemplate() {\n\tconst { hasPostContentBlocks, hasResolved, template, isTemplateHidden } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getEditedPostContext, getEditedPostType, getEditedPostId } =\n\t\t\t\tselect( editSiteStore );\n\t\t\tconst { getCanvasMode, getPageContentFocusType } = unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t);\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { __experimentalGetGlobalBlocksByName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst _context = getEditedPostContext();\n\t\t\tconst _postType = getEditedPostType();\n\t\t\tconst queryArgs = [ 'postType', _postType, getEditedPostId() ];\n\t\t\treturn {\n\t\t\t\thasPostContentBlocks: !! __experimentalGetGlobalBlocksByName(\n\t\t\t\t\tObject.keys( PAGE_CONTENT_BLOCK_TYPES )\n\t\t\t\t).length,\n\t\t\t\tcontext: _context,\n\t\t\t\thasResolved: hasFinishedResolution(\n\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\tqueryArgs\n\t\t\t\t),\n\t\t\t\ttemplate: getEditedEntityRecord( ...queryArgs ),\n\t\t\t\tisTemplateHidden:\n\t\t\t\t\tgetCanvasMode() === 'edit' &&\n\t\t\t\t\tgetPageContentFocusType() === 'hideTemplate',\n\t\t\t\tpostType: _postType,\n\t\t\t};\n\t\t}, [] );\n\n\tconst { setHasPageContentFocus } = useDispatch( editSiteStore );\n\t// Disable reason: `useDispatch` can't be called conditionally.\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { setPageContentFocusType } = unlock( useDispatch( editSiteStore ) );\n\n\tif ( ! hasResolved ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<HStack className=\"edit-site-summary-field\">\n\t\t\t<Text className=\"edit-site-summary-field__label\">\n\t\t\t\t{ __( 'Template' ) }\n\t\t\t</Text>\n\t\t\t<DropdownMenu\n\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\tfocusOnMount\n\t\t\t\ttoggleProps={ {\n\t\t\t\t\tvariant: 'tertiary',\n\t\t\t\t\tclassName: 'edit-site-summary-field__trigger',\n\t\t\t\t} }\n\t\t\t\tlabel={ __( 'Template options' ) }\n\t\t\t\ttext={ decodeEntities( template.title ) }\n\t\t\t\ticon={ null }\n\t\t\t>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetHasPageContentFocus( false );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Edit template' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t<SwapTemplateButton onClick={ onClose } />\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t<ResetDefaultTemplate onClick={ onClose } />\n\t\t\t\t\t\t{ hasPostContentBlocks && (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t! isTemplateHidden ? check : undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tisPressed={ ! isTemplateHidden }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetPageContentFocusType(\n\t\t\t\t\t\t\t\t\t\t\tisTemplateHidden\n\t\t\t\t\t\t\t\t\t\t\t\t? 'disableTemplate'\n\t\t\t\t\t\t\t\t\t\t\t\t: 'hideTemplate'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Template preview' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</DropdownMenu>\n\t\t</HStack>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["useSelect","useDispatch","decodeEntities","DropdownMenu","MenuGroup","MenuItem","__","store","coreStore","check","privateApis","editorPrivateApis","editorStore","editSiteStore","SwapTemplateButton","ResetDefaultTemplate","unlock","PostPanelRow","POPOVER_PROPS","className","placement","EditTemplate","hasResolved","template","isTemplateHidden","select","getEditedPostContext","getEditedPostType","getEditedPostId","getRenderingMode","getEditedEntityRecord","hasFinishedResolution","_context","_postType","queryArgs","context","postType","setRenderingMode","createElement","label","popoverProps","focusOnMount","toggleProps","variant","text","title","icon","onClose","Fragment","onClick","undefined","isPressed"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/page-panels/edit-template.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { check } from '@wordpress/icons';\nimport {\n\tprivateApis as editorPrivateApis,\n\tstore as editorStore,\n} from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\nimport SwapTemplateButton from './swap-template-button';\nimport ResetDefaultTemplate from './reset-default-template';\nimport { unlock } from '../../../lock-unlock';\n\nconst { PostPanelRow } = unlock( editorPrivateApis );\n\nconst POPOVER_PROPS = {\n\tclassName: 'edit-site-page-panels-edit-template__dropdown',\n\tplacement: 'bottom-start',\n};\n\nexport default function EditTemplate() {\n\tconst { hasResolved, template, isTemplateHidden } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostContext, getEditedPostType, getEditedPostId } =\n\t\t\t\tselect( editSiteStore );\n\t\t\tconst { getRenderingMode } = unlock( select( editorStore ) );\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _context = getEditedPostContext();\n\t\t\tconst _postType = getEditedPostType();\n\t\t\tconst queryArgs = [ 'postType', _postType, getEditedPostId() ];\n\t\t\treturn {\n\t\t\t\tcontext: _context,\n\t\t\t\thasResolved: hasFinishedResolution(\n\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\tqueryArgs\n\t\t\t\t),\n\t\t\t\ttemplate: getEditedEntityRecord( ...queryArgs ),\n\t\t\t\tisTemplateHidden: getRenderingMode() === 'post-only',\n\t\t\t\tpostType: _postType,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { setRenderingMode } = useDispatch( editorStore );\n\n\tif ( ! hasResolved ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PostPanelRow label={ __( 'Template' ) }>\n\t\t\t<DropdownMenu\n\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\tfocusOnMount\n\t\t\t\ttoggleProps={ {\n\t\t\t\t\tvariant: 'tertiary',\n\t\t\t\t\tclassName: 'edit-site-summary-field__trigger',\n\t\t\t\t} }\n\t\t\t\tlabel={ __( 'Template options' ) }\n\t\t\t\ttext={ decodeEntities( template.title ) }\n\t\t\t\ticon={ null }\n\t\t\t>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetRenderingMode( 'template-only' );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Edit template' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t<SwapTemplateButton onClick={ onClose } />\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t<ResetDefaultTemplate onClick={ onClose } />\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\ticon={ ! isTemplateHidden ? check : undefined }\n\t\t\t\t\t\t\t\tisPressed={ ! isTemplateHidden }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetRenderingMode(\n\t\t\t\t\t\t\t\t\t\tisTemplateHidden\n\t\t\t\t\t\t\t\t\t\t\t? 'template-locked'\n\t\t\t\t\t\t\t\t\t\t\t: 'post-only'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Template preview' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</DropdownMenu>\n\t\t</PostPanelRow>\n\t);\n}\n"],"mappings":"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"}
@@ -13,11 +13,27 @@ import { TEMPLATE_POST_TYPE } from '../../../utils/constants';
13
13
  export function useEditedPostContext() {
14
14
  return useSelect(select => select(editSiteStore).getEditedPostContext(), []);
15
15
  }
16
- export function useIsPostsPage() {
16
+ export function useAllowSwitchingTemplates() {
17
17
  const {
18
18
  postId
19
19
  } = useEditedPostContext();
20
- return useSelect(select => +postId === select(coreStore).getEntityRecord('root', 'site')?.page_for_posts, [postId]);
20
+ return useSelect(select => {
21
+ const {
22
+ getEntityRecord,
23
+ getEntityRecords
24
+ } = select(coreStore);
25
+ const siteSettings = getEntityRecord('root', 'site');
26
+ const templates = getEntityRecords('postType', TEMPLATE_POST_TYPE, {
27
+ per_page: -1
28
+ });
29
+ const isPostsPage = +postId === siteSettings?.page_for_posts;
30
+ // If current page is set front page or posts page, we also need
31
+ // to check if the current theme has a template for it. If not
32
+ const isFrontPage = +postId === siteSettings?.page_on_front && templates?.some(({
33
+ slug
34
+ }) => slug === 'front-page');
35
+ return !isPostsPage && !isFrontPage;
36
+ }, [postId]);
21
37
  }
22
38
  function useTemplates() {
23
39
  return useSelect(select => select(coreStore).getEntityRecords('postType', TEMPLATE_POST_TYPE, {
@@ -27,12 +43,10 @@ function useTemplates() {
27
43
  }
28
44
  export function useAvailableTemplates() {
29
45
  const currentTemplateSlug = useCurrentTemplateSlug();
30
- const isPostsPage = useIsPostsPage();
46
+ const allowSwitchingTemplate = useAllowSwitchingTemplates();
31
47
  const templates = useTemplates();
32
- return useMemo(() =>
33
- // The posts page template cannot be changed.
34
- !isPostsPage && templates?.filter(template => template.is_custom && template.slug !== currentTemplateSlug && !!template.content.raw // Skip empty templates.
35
- ), [templates, currentTemplateSlug, isPostsPage]);
48
+ return useMemo(() => allowSwitchingTemplate && templates?.filter(template => template.is_custom && template.slug !== currentTemplateSlug && !!template.content.raw // Skip empty templates.
49
+ ), [templates, currentTemplateSlug, allowSwitchingTemplate]);
36
50
  }
37
51
  export function useCurrentTemplateSlug() {
38
52
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","useMemo","store","coreStore","editSiteStore","TEMPLATE_POST_TYPE","useEditedPostContext","select","getEditedPostContext","useIsPostsPage","postId","getEntityRecord","page_for_posts","useTemplates","getEntityRecords","per_page","post_type","useAvailableTemplates","currentTemplateSlug","useCurrentTemplateSlug","isPostsPage","templates","filter","template","is_custom","slug","content","raw","postType","entityTemplate","post","getEditedEntityRecord","find"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/page-panels/hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\nimport { TEMPLATE_POST_TYPE } from '../../../utils/constants';\n\nexport function useEditedPostContext() {\n\treturn useSelect(\n\t\t( select ) => select( editSiteStore ).getEditedPostContext(),\n\t\t[]\n\t);\n}\n\nexport function useIsPostsPage() {\n\tconst { postId } = useEditedPostContext();\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\t+postId ===\n\t\t\tselect( coreStore ).getEntityRecord( 'root', 'site' )\n\t\t\t\t?.page_for_posts,\n\t\t[ postId ]\n\t);\n}\n\nfunction useTemplates() {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tper_page: -1,\n\t\t\t\t\tpost_type: 'page',\n\t\t\t\t}\n\t\t\t),\n\t\t[]\n\t);\n}\n\nexport function useAvailableTemplates() {\n\tconst currentTemplateSlug = useCurrentTemplateSlug();\n\tconst isPostsPage = useIsPostsPage();\n\tconst templates = useTemplates();\n\treturn useMemo(\n\t\t() =>\n\t\t\t// The posts page template cannot be changed.\n\t\t\t! isPostsPage &&\n\t\t\ttemplates?.filter(\n\t\t\t\t( template ) =>\n\t\t\t\t\ttemplate.is_custom &&\n\t\t\t\t\ttemplate.slug !== currentTemplateSlug &&\n\t\t\t\t\t!! template.content.raw // Skip empty templates.\n\t\t\t),\n\t\t[ templates, currentTemplateSlug, isPostsPage ]\n\t);\n}\n\nexport function useCurrentTemplateSlug() {\n\tconst { postType, postId } = useEditedPostContext();\n\tconst templates = useTemplates();\n\tconst entityTemplate = useSelect(\n\t\t( select ) => {\n\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\treturn post?.template;\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tif ( ! entityTemplate ) {\n\t\treturn;\n\t}\n\t// If a page has a `template` set and is not included in the list\n\t// of the theme's templates, do not return it, in order to resolve\n\t// to the current theme's default template.\n\treturn templates?.find( ( template ) => template.slug === entityTemplate )\n\t\t?.slug;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SAASD,KAAK,IAAIE,aAAa,QAAQ,gBAAgB;AACvD,SAASC,kBAAkB,QAAQ,0BAA0B;AAE7D,OAAO,SAASC,oBAAoBA,CAAA,EAAG;EACtC,OAAON,SAAS,CACbO,MAAM,IAAMA,MAAM,CAAEH,aAAc,CAAC,CAACI,oBAAoB,CAAC,CAAC,EAC5D,EACD,CAAC;AACF;AAEA,OAAO,SAASC,cAAcA,CAAA,EAAG;EAChC,MAAM;IAAEC;EAAO,CAAC,GAAGJ,oBAAoB,CAAC,CAAC;EACzC,OAAON,SAAS,CACbO,MAAM,IACP,CAACG,MAAM,KACPH,MAAM,CAAEJ,SAAU,CAAC,CAACQ,eAAe,CAAE,MAAM,EAAE,MAAO,CAAC,EAClDC,cAAc,EAClB,CAAEF,MAAM,CACT,CAAC;AACF;AAEA,SAASG,YAAYA,CAAA,EAAG;EACvB,OAAOb,SAAS,CACbO,MAAM,IACPA,MAAM,CAAEJ,SAAU,CAAC,CAACW,gBAAgB,CACnC,UAAU,EACVT,kBAAkB,EAClB;IACCU,QAAQ,EAAE,CAAC,CAAC;IACZC,SAAS,EAAE;EACZ,CACD,CAAC,EACF,EACD,CAAC;AACF;AAEA,OAAO,SAASC,qBAAqBA,CAAA,EAAG;EACvC,MAAMC,mBAAmB,GAAGC,sBAAsB,CAAC,CAAC;EACpD,MAAMC,WAAW,GAAGX,cAAc,CAAC,CAAC;EACpC,MAAMY,SAAS,GAAGR,YAAY,CAAC,CAAC;EAChC,OAAOZ,OAAO,CACb;EACC;EACA,CAAEmB,WAAW,IACbC,SAAS,EAAEC,MAAM,CACdC,QAAQ,IACTA,QAAQ,CAACC,SAAS,IAClBD,QAAQ,CAACE,IAAI,KAAKP,mBAAmB,IACrC,CAAC,CAAEK,QAAQ,CAACG,OAAO,CAACC,GAAG,CAAC;EAC1B,CAAC,EACF,CAAEN,SAAS,EAAEH,mBAAmB,EAAEE,WAAW,CAC9C,CAAC;AACF;AAEA,OAAO,SAASD,sBAAsBA,CAAA,EAAG;EACxC,MAAM;IAAES,QAAQ;IAAElB;EAAO,CAAC,GAAGJ,oBAAoB,CAAC,CAAC;EACnD,MAAMe,SAAS,GAAGR,YAAY,CAAC,CAAC;EAChC,MAAMgB,cAAc,GAAG7B,SAAS,CAC7BO,MAAM,IAAM;IACb,MAAMuB,IAAI,GAAGvB,MAAM,CAAEJ,SAAU,CAAC,CAAC4B,qBAAqB,CACrD,UAAU,EACVH,QAAQ,EACRlB,MACD,CAAC;IACD,OAAOoB,IAAI,EAAEP,QAAQ;EACtB,CAAC,EACD,CAAEK,QAAQ,EAAElB,MAAM,CACnB,CAAC;EAED,IAAK,CAAEmB,cAAc,EAAG;IACvB;EACD;EACA;EACA;EACA;EACA,OAAOR,SAAS,EAAEW,IAAI,CAAIT,QAAQ,IAAMA,QAAQ,CAACE,IAAI,KAAKI,cAAe,CAAC,EACvEJ,IAAI;AACR"}
1
+ {"version":3,"names":["useSelect","useMemo","store","coreStore","editSiteStore","TEMPLATE_POST_TYPE","useEditedPostContext","select","getEditedPostContext","useAllowSwitchingTemplates","postId","getEntityRecord","getEntityRecords","siteSettings","templates","per_page","isPostsPage","page_for_posts","isFrontPage","page_on_front","some","slug","useTemplates","post_type","useAvailableTemplates","currentTemplateSlug","useCurrentTemplateSlug","allowSwitchingTemplate","filter","template","is_custom","content","raw","postType","entityTemplate","post","getEditedEntityRecord","find"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/page-panels/hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\nimport { TEMPLATE_POST_TYPE } from '../../../utils/constants';\n\nexport function useEditedPostContext() {\n\treturn useSelect(\n\t\t( select ) => select( editSiteStore ).getEditedPostContext(),\n\t\t[]\n\t);\n}\n\nexport function useAllowSwitchingTemplates() {\n\tconst { postId } = useEditedPostContext();\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord, getEntityRecords } = select( coreStore );\n\t\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\t\t\tconst templates = getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{ per_page: -1 }\n\t\t\t);\n\t\t\tconst isPostsPage = +postId === siteSettings?.page_for_posts;\n\t\t\t// If current page is set front page or posts page, we also need\n\t\t\t// to check if the current theme has a template for it. If not\n\t\t\tconst isFrontPage =\n\t\t\t\t+postId === siteSettings?.page_on_front &&\n\t\t\t\ttemplates?.some( ( { slug } ) => slug === 'front-page' );\n\t\t\treturn ! isPostsPage && ! isFrontPage;\n\t\t},\n\t\t[ postId ]\n\t);\n}\n\nfunction useTemplates() {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tper_page: -1,\n\t\t\t\t\tpost_type: 'page',\n\t\t\t\t}\n\t\t\t),\n\t\t[]\n\t);\n}\n\nexport function useAvailableTemplates() {\n\tconst currentTemplateSlug = useCurrentTemplateSlug();\n\tconst allowSwitchingTemplate = useAllowSwitchingTemplates();\n\tconst templates = useTemplates();\n\treturn useMemo(\n\t\t() =>\n\t\t\tallowSwitchingTemplate &&\n\t\t\ttemplates?.filter(\n\t\t\t\t( template ) =>\n\t\t\t\t\ttemplate.is_custom &&\n\t\t\t\t\ttemplate.slug !== currentTemplateSlug &&\n\t\t\t\t\t!! template.content.raw // Skip empty templates.\n\t\t\t),\n\t\t[ templates, currentTemplateSlug, allowSwitchingTemplate ]\n\t);\n}\n\nexport function useCurrentTemplateSlug() {\n\tconst { postType, postId } = useEditedPostContext();\n\tconst templates = useTemplates();\n\tconst entityTemplate = useSelect(\n\t\t( select ) => {\n\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\treturn post?.template;\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tif ( ! entityTemplate ) {\n\t\treturn;\n\t}\n\t// If a page has a `template` set and is not included in the list\n\t// of the theme's templates, do not return it, in order to resolve\n\t// to the current theme's default template.\n\treturn templates?.find( ( template ) => template.slug === entityTemplate )\n\t\t?.slug;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SAASD,KAAK,IAAIE,aAAa,QAAQ,gBAAgB;AACvD,SAASC,kBAAkB,QAAQ,0BAA0B;AAE7D,OAAO,SAASC,oBAAoBA,CAAA,EAAG;EACtC,OAAON,SAAS,CACbO,MAAM,IAAMA,MAAM,CAAEH,aAAc,CAAC,CAACI,oBAAoB,CAAC,CAAC,EAC5D,EACD,CAAC;AACF;AAEA,OAAO,SAASC,0BAA0BA,CAAA,EAAG;EAC5C,MAAM;IAAEC;EAAO,CAAC,GAAGJ,oBAAoB,CAAC,CAAC;EACzC,OAAON,SAAS,CACbO,MAAM,IAAM;IACb,MAAM;MAAEI,eAAe;MAAEC;IAAiB,CAAC,GAAGL,MAAM,CAAEJ,SAAU,CAAC;IACjE,MAAMU,YAAY,GAAGF,eAAe,CAAE,MAAM,EAAE,MAAO,CAAC;IACtD,MAAMG,SAAS,GAAGF,gBAAgB,CACjC,UAAU,EACVP,kBAAkB,EAClB;MAAEU,QAAQ,EAAE,CAAC;IAAE,CAChB,CAAC;IACD,MAAMC,WAAW,GAAG,CAACN,MAAM,KAAKG,YAAY,EAAEI,cAAc;IAC5D;IACA;IACA,MAAMC,WAAW,GAChB,CAACR,MAAM,KAAKG,YAAY,EAAEM,aAAa,IACvCL,SAAS,EAAEM,IAAI,CAAE,CAAE;MAAEC;IAAK,CAAC,KAAMA,IAAI,KAAK,YAAa,CAAC;IACzD,OAAO,CAAEL,WAAW,IAAI,CAAEE,WAAW;EACtC,CAAC,EACD,CAAER,MAAM,CACT,CAAC;AACF;AAEA,SAASY,YAAYA,CAAA,EAAG;EACvB,OAAOtB,SAAS,CACbO,MAAM,IACPA,MAAM,CAAEJ,SAAU,CAAC,CAACS,gBAAgB,CACnC,UAAU,EACVP,kBAAkB,EAClB;IACCU,QAAQ,EAAE,CAAC,CAAC;IACZQ,SAAS,EAAE;EACZ,CACD,CAAC,EACF,EACD,CAAC;AACF;AAEA,OAAO,SAASC,qBAAqBA,CAAA,EAAG;EACvC,MAAMC,mBAAmB,GAAGC,sBAAsB,CAAC,CAAC;EACpD,MAAMC,sBAAsB,GAAGlB,0BAA0B,CAAC,CAAC;EAC3D,MAAMK,SAAS,GAAGQ,YAAY,CAAC,CAAC;EAChC,OAAOrB,OAAO,CACb,MACC0B,sBAAsB,IACtBb,SAAS,EAAEc,MAAM,CACdC,QAAQ,IACTA,QAAQ,CAACC,SAAS,IAClBD,QAAQ,CAACR,IAAI,KAAKI,mBAAmB,IACrC,CAAC,CAAEI,QAAQ,CAACE,OAAO,CAACC,GAAG,CAAC;EAC1B,CAAC,EACF,CAAElB,SAAS,EAAEW,mBAAmB,EAAEE,sBAAsB,CACzD,CAAC;AACF;AAEA,OAAO,SAASD,sBAAsBA,CAAA,EAAG;EACxC,MAAM;IAAEO,QAAQ;IAAEvB;EAAO,CAAC,GAAGJ,oBAAoB,CAAC,CAAC;EACnD,MAAMQ,SAAS,GAAGQ,YAAY,CAAC,CAAC;EAChC,MAAMY,cAAc,GAAGlC,SAAS,CAC7BO,MAAM,IAAM;IACb,MAAM4B,IAAI,GAAG5B,MAAM,CAAEJ,SAAU,CAAC,CAACiC,qBAAqB,CACrD,UAAU,EACVH,QAAQ,EACRvB,MACD,CAAC;IACD,OAAOyB,IAAI,EAAEN,QAAQ;EACtB,CAAC,EACD,CAAEI,QAAQ,EAAEvB,MAAM,CACnB,CAAC;EAED,IAAK,CAAEwB,cAAc,EAAG;IACvB;EACD;EACA;EACA;EACA;EACA,OAAOpB,SAAS,EAAEuB,IAAI,CAAIR,QAAQ,IAAMA,QAAQ,CAACR,IAAI,KAAKa,cAAe,CAAC,EACvEb,IAAI;AACR"}
@@ -2,7 +2,7 @@ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * WordPress dependencies
4
4
  */
5
- import { Button, ToggleControl, Dropdown, __experimentalText as Text, __experimentalHStack as HStack, __experimentalVStack as VStack, TextControl, RadioControl, VisuallyHidden } from '@wordpress/components';
5
+ import { Button, ToggleControl, Dropdown, __experimentalText as Text, __experimentalVStack as VStack, TextControl, RadioControl, VisuallyHidden } from '@wordpress/components';
6
6
  import { __ } from '@wordpress/i18n';
7
7
  import { useDispatch } from '@wordpress/data';
8
8
  import { useState, useMemo } from '@wordpress/element';
@@ -10,11 +10,16 @@ import { store as coreStore } from '@wordpress/core-data';
10
10
  import { store as noticesStore } from '@wordpress/notices';
11
11
  import { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';
12
12
  import { useInstanceId } from '@wordpress/compose';
13
+ import { privateApis as editorPrivateApis } from '@wordpress/editor';
13
14
 
14
15
  /**
15
16
  * Internal dependencies
16
17
  */
17
18
  import StatusLabel from '../../sidebar-navigation-screen-page/status-label';
19
+ import { unlock } from '../../../lock-unlock';
20
+ const {
21
+ PostPanelRow
22
+ } = unlock(editorPrivateApis);
18
23
  const STATUS_OPTIONS = [{
19
24
  label: createElement(Fragment, null, __('Draft'), createElement(Text, {
20
25
  variant: "muted"
@@ -113,11 +118,9 @@ export default function PageStatus({
113
118
  password: newPassword
114
119
  });
115
120
  };
116
- return createElement(HStack, {
117
- className: "edit-site-summary-field"
118
- }, createElement(Text, {
119
- className: "edit-site-summary-field__label"
120
- }, __('Status')), createElement(Dropdown, {
121
+ return createElement(PostPanelRow, {
122
+ label: __('Status')
123
+ }, createElement(Dropdown, {
121
124
  contentClassName: "edit-site-change-status__content",
122
125
  popoverProps: popoverProps,
123
126
  focusOnMount: true,
@@ -1 +1 @@
1
- {"version":3,"names":["Button","ToggleControl","Dropdown","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","TextControl","RadioControl","VisuallyHidden","__","useDispatch","useState","useMemo","store","coreStore","noticesStore","__experimentalInspectorPopoverHeader","InspectorPopoverHeader","useInstanceId","StatusLabel","STATUS_OPTIONS","label","createElement","Fragment","variant","value","PageStatus","postType","postId","status","password","date","showPassword","setShowPassword","instanceId","editEntityRecord","createErrorNotice","popoverAnchor","setPopoverAnchor","popoverProps","anchor","placement","saveStatus","newStatus","newPassword","newDate","error","errorMessage","message","code","type","handleTogglePassword","handleStatus","Date","setDate","getDate","className","contentClassName","focusOnMount","ref","renderToggle","onToggle","onClick","renderContent","onClose","title","spacing","hideLabelFromVision","options","onChange","selected","as","size","lineHeight","weight","upperCase","checked","htmlFor","placeholder","id"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/page-panels/page-status.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tToggleControl,\n\tDropdown,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tTextControl,\n\tRadioControl,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport StatusLabel from '../../sidebar-navigation-screen-page/status-label';\n\nconst STATUS_OPTIONS = [\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Draft' ) }\n\t\t\t\t<Text variant=\"muted\">{ __( 'Not ready to publish.' ) }</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'draft',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Pending' ) }\n\t\t\t\t<Text variant=\"muted\">\n\t\t\t\t\t{ __( 'Waiting for review before publishing.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'pending',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Private' ) }\n\t\t\t\t<Text variant=\"muted\">\n\t\t\t\t\t{ __( 'Only visible to site admins and editors.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'private',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Scheduled' ) }\n\t\t\t\t<Text variant=\"muted\">\n\t\t\t\t\t{ __( 'Publish automatically on a chosen date.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'future',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Published' ) }\n\t\t\t\t<Text variant=\"muted\">{ __( 'Visible to everyone.' ) }</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'publish',\n\t},\n];\n\nexport default function PageStatus( {\n\tpostType,\n\tpostId,\n\tstatus,\n\tpassword,\n\tdate,\n} ) {\n\tconst [ showPassword, setShowPassword ] = useState( !! password );\n\tconst instanceId = useInstanceId( PageStatus );\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\t'aria-label': __( 'Change status' ),\n\t\t\tplacement: 'bottom-end',\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst saveStatus = async ( {\n\t\tstatus: newStatus = status,\n\t\tpassword: newPassword = password,\n\t\tdate: newDate = date,\n\t} ) => {\n\t\ttry {\n\t\t\tawait editEntityRecord( 'postType', postType, postId, {\n\t\t\t\tstatus: newStatus,\n\t\t\t\tdate: newDate,\n\t\t\t\tpassword: newPassword,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while updating the status' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleTogglePassword = ( value ) => {\n\t\tsetShowPassword( value );\n\t\tif ( ! value ) {\n\t\t\tsaveStatus( { password: '' } );\n\t\t}\n\t};\n\n\tconst handleStatus = ( value ) => {\n\t\tlet newDate = date;\n\t\tlet newPassword = password;\n\t\tif ( value === 'publish' ) {\n\t\t\tif ( new Date( date ) > new Date() ) {\n\t\t\t\tnewDate = null;\n\t\t\t}\n\t\t} else if ( value === 'future' ) {\n\t\t\tif ( ! date || new Date( date ) < new Date() ) {\n\t\t\t\tnewDate = new Date();\n\t\t\t\tnewDate.setDate( newDate.getDate() + 7 );\n\t\t\t}\n\t\t} else if ( value === 'private' && password ) {\n\t\t\tsetShowPassword( false );\n\t\t\tnewPassword = '';\n\t\t}\n\t\tsaveStatus( {\n\t\t\tstatus: value,\n\t\t\tdate: newDate,\n\t\t\tpassword: newPassword,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<HStack className=\"edit-site-summary-field\">\n\t\t\t<Text className=\"edit-site-summary-field__label\">\n\t\t\t\t{ __( 'Status' ) }\n\t\t\t</Text>\n\t\t\t<Dropdown\n\t\t\t\tcontentClassName=\"edit-site-change-status__content\"\n\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\tfocusOnMount\n\t\t\t\tref={ setPopoverAnchor }\n\t\t\t\trenderToggle={ ( { onToggle } ) => (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"edit-site-summary-field__trigger\"\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t>\n\t\t\t\t\t\t<StatusLabel\n\t\t\t\t\t\t\tstatus={ password ? 'protected' : status }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorPopoverHeader\n\t\t\t\t\t\t\ttitle={ __( 'Status' ) }\n\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<form>\n\t\t\t\t\t\t\t<VStack spacing={ 5 }>\n\t\t\t\t\t\t\t\t<RadioControl\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-change-status__options\"\n\t\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Status' ) }\n\t\t\t\t\t\t\t\t\toptions={ STATUS_OPTIONS }\n\t\t\t\t\t\t\t\t\tonChange={ handleStatus }\n\t\t\t\t\t\t\t\t\tselected={ status }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ status !== 'private' && (\n\t\t\t\t\t\t\t\t\t<fieldset className=\"edit-site-change-status__password-fieldset\">\n\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\tas=\"legend\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-change-status__password-legend\"\n\t\t\t\t\t\t\t\t\t\t\tsize=\"11\"\n\t\t\t\t\t\t\t\t\t\t\tlineHeight={ 1.4 }\n\t\t\t\t\t\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\t\t\t\t\t\tupperCase={ true }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Password' ) }\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Hide this page behind a password'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tchecked={ showPassword }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ handleTogglePassword }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{ showPassword && (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"edit-site-change-status__password-input\">\n\t\t\t\t\t\t\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\t\t\t\t\t\t\tas=\"label\"\n\t\t\t\t\t\t\t\t\t\t\t\t\thtmlFor={ `edit-site-change-status__password-input-${ instanceId }` }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Create password' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsaveStatus( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpassword: value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={ password }\n\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Use a secure password'\n\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid={ `edit-site-change-status__password-input-${ instanceId }` }\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</fieldset>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t/>\n\t\t</HStack>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,MAAM,EACNC,aAAa,EACbC,QAAQ,EACRC,kBAAkB,IAAIC,IAAI,EAC1BC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,EAC9BC,WAAW,EACXC,YAAY,EACZC,cAAc,QACR,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,QAAQ,EAAEC,OAAO,QAAQ,oBAAoB;AACtD,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASD,KAAK,IAAIE,YAAY,QAAQ,oBAAoB;AAC1D,SAASC,oCAAoC,IAAIC,sBAAsB,QAAQ,yBAAyB;AACxG,SAASC,aAAa,QAAQ,oBAAoB;;AAElD;AACA;AACA;AACA,OAAOC,WAAW,MAAM,mDAAmD;AAE3E,MAAMC,cAAc,GAAG,CACtB;EACCC,KAAK,EACJC,aAAA,CAAAC,QAAA,QACGd,EAAE,CAAE,OAAQ,CAAC,EACfa,aAAA,CAACrB,IAAI;IAACuB,OAAO,EAAC;EAAO,GAAGf,EAAE,CAAE,uBAAwB,CAAS,CAC5D,CACF;EACDgB,KAAK,EAAE;AACR,CAAC,EACD;EACCJ,KAAK,EACJC,aAAA,CAAAC,QAAA,QACGd,EAAE,CAAE,SAAU,CAAC,EACjBa,aAAA,CAACrB,IAAI;IAACuB,OAAO,EAAC;EAAO,GAClBf,EAAE,CAAE,uCAAwC,CACzC,CACL,CACF;EACDgB,KAAK,EAAE;AACR,CAAC,EACD;EACCJ,KAAK,EACJC,aAAA,CAAAC,QAAA,QACGd,EAAE,CAAE,SAAU,CAAC,EACjBa,aAAA,CAACrB,IAAI;IAACuB,OAAO,EAAC;EAAO,GAClBf,EAAE,CAAE,0CAA2C,CAC5C,CACL,CACF;EACDgB,KAAK,EAAE;AACR,CAAC,EACD;EACCJ,KAAK,EACJC,aAAA,CAAAC,QAAA,QACGd,EAAE,CAAE,WAAY,CAAC,EACnBa,aAAA,CAACrB,IAAI;IAACuB,OAAO,EAAC;EAAO,GAClBf,EAAE,CAAE,yCAA0C,CAC3C,CACL,CACF;EACDgB,KAAK,EAAE;AACR,CAAC,EACD;EACCJ,KAAK,EACJC,aAAA,CAAAC,QAAA,QACGd,EAAE,CAAE,WAAY,CAAC,EACnBa,aAAA,CAACrB,IAAI;IAACuB,OAAO,EAAC;EAAO,GAAGf,EAAE,CAAE,sBAAuB,CAAS,CAC3D,CACF;EACDgB,KAAK,EAAE;AACR,CAAC,CACD;AAED,eAAe,SAASC,UAAUA,CAAE;EACnCC,QAAQ;EACRC,MAAM;EACNC,MAAM;EACNC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM,CAAEC,YAAY,EAAEC,eAAe,CAAE,GAAGtB,QAAQ,CAAE,CAAC,CAAEmB,QAAS,CAAC;EACjE,MAAMI,UAAU,GAAGhB,aAAa,CAAEQ,UAAW,CAAC;EAE9C,MAAM;IAAES;EAAiB,CAAC,GAAGzB,WAAW,CAAEI,SAAU,CAAC;EACrD,MAAM;IAAEsB;EAAkB,CAAC,GAAG1B,WAAW,CAAEK,YAAa,CAAC;EAEzD,MAAM,CAAEsB,aAAa,EAAEC,gBAAgB,CAAE,GAAG3B,QAAQ,CAAE,IAAK,CAAC;EAC5D;EACA,MAAM4B,YAAY,GAAG3B,OAAO,CAC3B,OAAQ;IACP;IACA;IACA4B,MAAM,EAAEH,aAAa;IACrB,YAAY,EAAE5B,EAAE,CAAE,eAAgB,CAAC;IACnCgC,SAAS,EAAE;EACZ,CAAC,CAAE,EACH,CAAEJ,aAAa,CAChB,CAAC;EAED,MAAMK,UAAU,GAAG,MAAAA,CAAQ;IAC1Bb,MAAM,EAAEc,SAAS,GAAGd,MAAM;IAC1BC,QAAQ,EAAEc,WAAW,GAAGd,QAAQ;IAChCC,IAAI,EAAEc,OAAO,GAAGd;EACjB,CAAC,KAAM;IACN,IAAI;MACH,MAAMI,gBAAgB,CAAE,UAAU,EAAER,QAAQ,EAAEC,MAAM,EAAE;QACrDC,MAAM,EAAEc,SAAS;QACjBZ,IAAI,EAAEc,OAAO;QACbf,QAAQ,EAAEc;MACX,CAAE,CAAC;IACJ,CAAC,CAAC,OAAQE,KAAK,EAAG;MACjB,MAAMC,YAAY,GACjBD,KAAK,CAACE,OAAO,IAAIF,KAAK,CAACG,IAAI,KAAK,eAAe,GAC5CH,KAAK,CAACE,OAAO,GACbvC,EAAE,CAAE,6CAA8C,CAAC;MAEvD2B,iBAAiB,CAAEW,YAAY,EAAE;QAChCG,IAAI,EAAE;MACP,CAAE,CAAC;IACJ;EACD,CAAC;EAED,MAAMC,oBAAoB,GAAK1B,KAAK,IAAM;IACzCQ,eAAe,CAAER,KAAM,CAAC;IACxB,IAAK,CAAEA,KAAK,EAAG;MACdiB,UAAU,CAAE;QAAEZ,QAAQ,EAAE;MAAG,CAAE,CAAC;IAC/B;EACD,CAAC;EAED,MAAMsB,YAAY,GAAK3B,KAAK,IAAM;IACjC,IAAIoB,OAAO,GAAGd,IAAI;IAClB,IAAIa,WAAW,GAAGd,QAAQ;IAC1B,IAAKL,KAAK,KAAK,SAAS,EAAG;MAC1B,IAAK,IAAI4B,IAAI,CAAEtB,IAAK,CAAC,GAAG,IAAIsB,IAAI,CAAC,CAAC,EAAG;QACpCR,OAAO,GAAG,IAAI;MACf;IACD,CAAC,MAAM,IAAKpB,KAAK,KAAK,QAAQ,EAAG;MAChC,IAAK,CAAEM,IAAI,IAAI,IAAIsB,IAAI,CAAEtB,IAAK,CAAC,GAAG,IAAIsB,IAAI,CAAC,CAAC,EAAG;QAC9CR,OAAO,GAAG,IAAIQ,IAAI,CAAC,CAAC;QACpBR,OAAO,CAACS,OAAO,CAAET,OAAO,CAACU,OAAO,CAAC,CAAC,GAAG,CAAE,CAAC;MACzC;IACD,CAAC,MAAM,IAAK9B,KAAK,KAAK,SAAS,IAAIK,QAAQ,EAAG;MAC7CG,eAAe,CAAE,KAAM,CAAC;MACxBW,WAAW,GAAG,EAAE;IACjB;IACAF,UAAU,CAAE;MACXb,MAAM,EAAEJ,KAAK;MACbM,IAAI,EAAEc,OAAO;MACbf,QAAQ,EAAEc;IACX,CAAE,CAAC;EACJ,CAAC;EAED,OACCtB,aAAA,CAACnB,MAAM;IAACqD,SAAS,EAAC;EAAyB,GAC1ClC,aAAA,CAACrB,IAAI;IAACuD,SAAS,EAAC;EAAgC,GAC7C/C,EAAE,CAAE,QAAS,CACV,CAAC,EACPa,aAAA,CAACvB,QAAQ;IACR0D,gBAAgB,EAAC,kCAAkC;IACnDlB,YAAY,EAAGA,YAAc;IAC7BmB,YAAY;IACZC,GAAG,EAAGrB,gBAAkB;IACxBsB,YAAY,EAAGA,CAAE;MAAEC;IAAS,CAAC,KAC5BvC,aAAA,CAACzB,MAAM;MACN2D,SAAS,EAAC,kCAAkC;MAC5ChC,OAAO,EAAC,UAAU;MAClBsC,OAAO,EAAGD;IAAU,GAEpBvC,aAAA,CAACH,WAAW;MACXU,MAAM,EAAGC,QAAQ,GAAG,WAAW,GAAGD;IAAQ,CAC1C,CACM,CACN;IACHkC,aAAa,EAAGA,CAAE;MAAEC;IAAQ,CAAC,KAC5B1C,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACL,sBAAsB;MACtBgD,KAAK,EAAGxD,EAAE,CAAE,QAAS,CAAG;MACxBuD,OAAO,EAAGA;IAAS,CACnB,CAAC,EACF1C,aAAA,eACCA,aAAA,CAACjB,MAAM;MAAC6D,OAAO,EAAG;IAAG,GACpB5C,aAAA,CAACf,YAAY;MACZiD,SAAS,EAAC,kCAAkC;MAC5CW,mBAAmB;MACnB9C,KAAK,EAAGZ,EAAE,CAAE,QAAS,CAAG;MACxB2D,OAAO,EAAGhD,cAAgB;MAC1BiD,QAAQ,EAAGjB,YAAc;MACzBkB,QAAQ,EAAGzC;IAAQ,CACnB,CAAC,EACAA,MAAM,KAAK,SAAS,IACrBP,aAAA;MAAUkC,SAAS,EAAC;IAA4C,GAC/DlC,aAAA,CAACrB,IAAI;MACJsE,EAAE,EAAC,QAAQ;MACXf,SAAS,EAAC,0CAA0C;MACpDgB,IAAI,EAAC,IAAI;MACTC,UAAU,EAAG,GAAK;MAClBC,MAAM,EAAG,GAAK;MACdC,SAAS,EAAG;IAAM,GAEhBlE,EAAE,CAAE,UAAW,CACZ,CAAC,EACPa,aAAA,CAACxB,aAAa;MACbuB,KAAK,EAAGZ,EAAE,CACT,kCACD,CAAG;MACHmE,OAAO,EAAG5C,YAAc;MACxBqC,QAAQ,EAAGlB;IAAsB,CACjC,CAAC,EACAnB,YAAY,IACbV,aAAA;MAAKkC,SAAS,EAAC;IAAyC,GACvDlC,aAAA,CAACd,cAAc;MACd+D,EAAE,EAAC,OAAO;MACVM,OAAO,EAAI,2CAA2C3C,UAAY;IAAG,GAEnEzB,EAAE,CAAE,iBAAkB,CACT,CAAC,EACjBa,aAAA,CAAChB,WAAW;MACX+D,QAAQ,EAAK5C,KAAK,IACjBiB,UAAU,CAAE;QACXZ,QAAQ,EAAEL;MACX,CAAE,CACF;MACDA,KAAK,EAAGK,QAAU;MAClBgD,WAAW,EAAGrE,EAAE,CACf,uBACD,CAAG;MACHyC,IAAI,EAAC,MAAM;MACX6B,EAAE,EAAI,2CAA2C7C,UAAY;IAAG,CAChE,CACG,CAEG,CAEJ,CACH,CACL;EACA,CACH,CACM,CAAC;AAEX"}
1
+ {"version":3,"names":["Button","ToggleControl","Dropdown","__experimentalText","Text","__experimentalVStack","VStack","TextControl","RadioControl","VisuallyHidden","__","useDispatch","useState","useMemo","store","coreStore","noticesStore","__experimentalInspectorPopoverHeader","InspectorPopoverHeader","useInstanceId","privateApis","editorPrivateApis","StatusLabel","unlock","PostPanelRow","STATUS_OPTIONS","label","createElement","Fragment","variant","value","PageStatus","postType","postId","status","password","date","showPassword","setShowPassword","instanceId","editEntityRecord","createErrorNotice","popoverAnchor","setPopoverAnchor","popoverProps","anchor","placement","saveStatus","newStatus","newPassword","newDate","error","errorMessage","message","code","type","handleTogglePassword","handleStatus","Date","setDate","getDate","contentClassName","focusOnMount","ref","renderToggle","onToggle","className","onClick","renderContent","onClose","title","spacing","hideLabelFromVision","options","onChange","selected","as","size","lineHeight","weight","upperCase","checked","htmlFor","placeholder","id"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/page-panels/page-status.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tToggleControl,\n\tDropdown,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tTextControl,\n\tRadioControl,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { useInstanceId } from '@wordpress/compose';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport StatusLabel from '../../sidebar-navigation-screen-page/status-label';\nimport { unlock } from '../../../lock-unlock';\n\nconst { PostPanelRow } = unlock( editorPrivateApis );\n\nconst STATUS_OPTIONS = [\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Draft' ) }\n\t\t\t\t<Text variant=\"muted\">{ __( 'Not ready to publish.' ) }</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'draft',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Pending' ) }\n\t\t\t\t<Text variant=\"muted\">\n\t\t\t\t\t{ __( 'Waiting for review before publishing.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'pending',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Private' ) }\n\t\t\t\t<Text variant=\"muted\">\n\t\t\t\t\t{ __( 'Only visible to site admins and editors.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'private',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Scheduled' ) }\n\t\t\t\t<Text variant=\"muted\">\n\t\t\t\t\t{ __( 'Publish automatically on a chosen date.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'future',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Published' ) }\n\t\t\t\t<Text variant=\"muted\">{ __( 'Visible to everyone.' ) }</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'publish',\n\t},\n];\n\nexport default function PageStatus( {\n\tpostType,\n\tpostId,\n\tstatus,\n\tpassword,\n\tdate,\n} ) {\n\tconst [ showPassword, setShowPassword ] = useState( !! password );\n\tconst instanceId = useInstanceId( PageStatus );\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\t'aria-label': __( 'Change status' ),\n\t\t\tplacement: 'bottom-end',\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst saveStatus = async ( {\n\t\tstatus: newStatus = status,\n\t\tpassword: newPassword = password,\n\t\tdate: newDate = date,\n\t} ) => {\n\t\ttry {\n\t\t\tawait editEntityRecord( 'postType', postType, postId, {\n\t\t\t\tstatus: newStatus,\n\t\t\t\tdate: newDate,\n\t\t\t\tpassword: newPassword,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while updating the status' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleTogglePassword = ( value ) => {\n\t\tsetShowPassword( value );\n\t\tif ( ! value ) {\n\t\t\tsaveStatus( { password: '' } );\n\t\t}\n\t};\n\n\tconst handleStatus = ( value ) => {\n\t\tlet newDate = date;\n\t\tlet newPassword = password;\n\t\tif ( value === 'publish' ) {\n\t\t\tif ( new Date( date ) > new Date() ) {\n\t\t\t\tnewDate = null;\n\t\t\t}\n\t\t} else if ( value === 'future' ) {\n\t\t\tif ( ! date || new Date( date ) < new Date() ) {\n\t\t\t\tnewDate = new Date();\n\t\t\t\tnewDate.setDate( newDate.getDate() + 7 );\n\t\t\t}\n\t\t} else if ( value === 'private' && password ) {\n\t\t\tsetShowPassword( false );\n\t\t\tnewPassword = '';\n\t\t}\n\t\tsaveStatus( {\n\t\t\tstatus: value,\n\t\t\tdate: newDate,\n\t\t\tpassword: newPassword,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<PostPanelRow label={ __( 'Status' ) }>\n\t\t\t<Dropdown\n\t\t\t\tcontentClassName=\"edit-site-change-status__content\"\n\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\tfocusOnMount\n\t\t\t\tref={ setPopoverAnchor }\n\t\t\t\trenderToggle={ ( { onToggle } ) => (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"edit-site-summary-field__trigger\"\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t>\n\t\t\t\t\t\t<StatusLabel\n\t\t\t\t\t\t\tstatus={ password ? 'protected' : status }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorPopoverHeader\n\t\t\t\t\t\t\ttitle={ __( 'Status' ) }\n\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<form>\n\t\t\t\t\t\t\t<VStack spacing={ 5 }>\n\t\t\t\t\t\t\t\t<RadioControl\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-change-status__options\"\n\t\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Status' ) }\n\t\t\t\t\t\t\t\t\toptions={ STATUS_OPTIONS }\n\t\t\t\t\t\t\t\t\tonChange={ handleStatus }\n\t\t\t\t\t\t\t\t\tselected={ status }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ status !== 'private' && (\n\t\t\t\t\t\t\t\t\t<fieldset className=\"edit-site-change-status__password-fieldset\">\n\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\tas=\"legend\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-change-status__password-legend\"\n\t\t\t\t\t\t\t\t\t\t\tsize=\"11\"\n\t\t\t\t\t\t\t\t\t\t\tlineHeight={ 1.4 }\n\t\t\t\t\t\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\t\t\t\t\t\tupperCase={ true }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Password' ) }\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Hide this page behind a password'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tchecked={ showPassword }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ handleTogglePassword }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{ showPassword && (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"edit-site-change-status__password-input\">\n\t\t\t\t\t\t\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\t\t\t\t\t\t\tas=\"label\"\n\t\t\t\t\t\t\t\t\t\t\t\t\thtmlFor={ `edit-site-change-status__password-input-${ instanceId }` }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Create password' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsaveStatus( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpassword: value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={ password }\n\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Use a secure password'\n\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid={ `edit-site-change-status__password-input-${ instanceId }` }\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</fieldset>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t/>\n\t\t</PostPanelRow>\n\t);\n}\n"],"mappings":"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"}
@@ -3,13 +3,12 @@ import { createElement } from "react";
3
3
  * WordPress dependencies
4
4
  */
5
5
  import { __experimentalVStack as VStack } from '@wordpress/components';
6
- import { PostURLPanel } from '@wordpress/editor';
6
+ import { PostAuthorPanel, PostURLPanel, PostSchedulePanel } from '@wordpress/editor';
7
7
 
8
8
  /**
9
9
  * Internal dependencies
10
10
  */
11
11
  import PageStatus from './page-status';
12
- import PublishDate from './publish-date';
13
12
  import EditTemplate from './edit-template';
14
13
  export default function PageSummary({
15
14
  status,
@@ -18,17 +17,14 @@ export default function PageSummary({
18
17
  postId,
19
18
  postType
20
19
  }) {
21
- return createElement(VStack, null, createElement(PageStatus, {
20
+ return createElement(VStack, {
21
+ spacing: 0
22
+ }, createElement(PageStatus, {
22
23
  status: status,
23
24
  date: date,
24
25
  password: password,
25
26
  postId: postId,
26
27
  postType: postType
27
- }), createElement(PublishDate, {
28
- status: status,
29
- date: date,
30
- postId: postId,
31
- postType: postType
32
- }), createElement(EditTemplate, null), createElement(PostURLPanel, null));
28
+ }), createElement(PostSchedulePanel, null), createElement(EditTemplate, null), createElement(PostURLPanel, null), createElement(PostAuthorPanel, null));
33
29
  }
34
30
  //# sourceMappingURL=page-summary.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalVStack","VStack","PostURLPanel","PageStatus","PublishDate","EditTemplate","PageSummary","status","date","password","postId","postType","createElement"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/page-panels/page-summary.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport { PostURLPanel } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport PageStatus from './page-status';\nimport PublishDate from './publish-date';\nimport EditTemplate from './edit-template';\n\nexport default function PageSummary( {\n\tstatus,\n\tdate,\n\tpassword,\n\tpostId,\n\tpostType,\n} ) {\n\treturn (\n\t\t<VStack>\n\t\t\t<PageStatus\n\t\t\t\tstatus={ status }\n\t\t\t\tdate={ date }\n\t\t\t\tpassword={ password }\n\t\t\t\tpostId={ postId }\n\t\t\t\tpostType={ postType }\n\t\t\t/>\n\t\t\t<PublishDate\n\t\t\t\tstatus={ status }\n\t\t\t\tdate={ date }\n\t\t\t\tpostId={ postId }\n\t\t\t\tpostType={ postType }\n\t\t\t/>\n\t\t\t<EditTemplate />\n\t\t\t<PostURLPanel />\n\t\t</VStack>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,oBAAoB,IAAIC,MAAM,QAAQ,uBAAuB;AACtE,SAASC,YAAY,QAAQ,mBAAmB;;AAEhD;AACA;AACA;AACA,OAAOC,UAAU,MAAM,eAAe;AACtC,OAAOC,WAAW,MAAM,gBAAgB;AACxC,OAAOC,YAAY,MAAM,iBAAiB;AAE1C,eAAe,SAASC,WAAWA,CAAE;EACpCC,MAAM;EACNC,IAAI;EACJC,QAAQ;EACRC,MAAM;EACNC;AACD,CAAC,EAAG;EACH,OACCC,aAAA,CAACX,MAAM,QACNW,aAAA,CAACT,UAAU;IACVI,MAAM,EAAGA,MAAQ;IACjBC,IAAI,EAAGA,IAAM;IACbC,QAAQ,EAAGA,QAAU;IACrBC,MAAM,EAAGA,MAAQ;IACjBC,QAAQ,EAAGA;EAAU,CACrB,CAAC,EACFC,aAAA,CAACR,WAAW;IACXG,MAAM,EAAGA,MAAQ;IACjBC,IAAI,EAAGA,IAAM;IACbE,MAAM,EAAGA,MAAQ;IACjBC,QAAQ,EAAGA;EAAU,CACrB,CAAC,EACFC,aAAA,CAACP,YAAY,MAAE,CAAC,EAChBO,aAAA,CAACV,YAAY,MAAE,CACR,CAAC;AAEX"}
1
+ {"version":3,"names":["__experimentalVStack","VStack","PostAuthorPanel","PostURLPanel","PostSchedulePanel","PageStatus","EditTemplate","PageSummary","status","date","password","postId","postType","createElement","spacing"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/page-panels/page-summary.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport {\n\tPostAuthorPanel,\n\tPostURLPanel,\n\tPostSchedulePanel,\n} from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport PageStatus from './page-status';\nimport EditTemplate from './edit-template';\n\nexport default function PageSummary( {\n\tstatus,\n\tdate,\n\tpassword,\n\tpostId,\n\tpostType,\n} ) {\n\treturn (\n\t\t<VStack spacing={ 0 }>\n\t\t\t<PageStatus\n\t\t\t\tstatus={ status }\n\t\t\t\tdate={ date }\n\t\t\t\tpassword={ password }\n\t\t\t\tpostId={ postId }\n\t\t\t\tpostType={ postType }\n\t\t\t/>\n\t\t\t<PostSchedulePanel />\n\t\t\t<EditTemplate />\n\t\t\t<PostURLPanel />\n\t\t\t<PostAuthorPanel />\n\t\t</VStack>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,oBAAoB,IAAIC,MAAM,QAAQ,uBAAuB;AACtE,SACCC,eAAe,EACfC,YAAY,EACZC,iBAAiB,QACX,mBAAmB;;AAE1B;AACA;AACA;AACA,OAAOC,UAAU,MAAM,eAAe;AACtC,OAAOC,YAAY,MAAM,iBAAiB;AAE1C,eAAe,SAASC,WAAWA,CAAE;EACpCC,MAAM;EACNC,IAAI;EACJC,QAAQ;EACRC,MAAM;EACNC;AACD,CAAC,EAAG;EACH,OACCC,aAAA,CAACZ,MAAM;IAACa,OAAO,EAAG;EAAG,GACpBD,aAAA,CAACR,UAAU;IACVG,MAAM,EAAGA,MAAQ;IACjBC,IAAI,EAAGA,IAAM;IACbC,QAAQ,EAAGA,QAAU;IACrBC,MAAM,EAAGA,MAAQ;IACjBC,QAAQ,EAAGA;EAAU,CACrB,CAAC,EACFC,aAAA,CAACT,iBAAiB,MAAE,CAAC,EACrBS,aAAA,CAACP,YAAY,MAAE,CAAC,EAChBO,aAAA,CAACV,YAAY,MAAE,CAAC,EAChBU,aAAA,CAACX,eAAe,MAAE,CACX,CAAC;AAEX"}
@@ -10,12 +10,12 @@ import { store as coreStore } from '@wordpress/core-data';
10
10
  /**
11
11
  * Internal dependencies
12
12
  */
13
- import { useCurrentTemplateSlug, useEditedPostContext, useIsPostsPage } from './hooks';
13
+ import { useAllowSwitchingTemplates, useCurrentTemplateSlug, useEditedPostContext } from './hooks';
14
14
  export default function ResetDefaultTemplate({
15
15
  onClick
16
16
  }) {
17
17
  const currentTemplateSlug = useCurrentTemplateSlug();
18
- const isPostsPage = useIsPostsPage();
18
+ const allowSwitchingTemplate = useAllowSwitchingTemplates();
19
19
  const {
20
20
  postType,
21
21
  postId
@@ -24,7 +24,7 @@ export default function ResetDefaultTemplate({
24
24
  editEntityRecord
25
25
  } = useDispatch(coreStore);
26
26
  // The default template in a post is indicated by an empty string.
27
- if (!currentTemplateSlug || isPostsPage) {
27
+ if (!currentTemplateSlug || !allowSwitchingTemplate) {
28
28
  return null;
29
29
  }
30
30
  return createElement(MenuGroup, null, createElement(MenuItem, {
@@ -1 +1 @@
1
- {"version":3,"names":["MenuGroup","MenuItem","__","useDispatch","store","coreStore","useCurrentTemplateSlug","useEditedPostContext","useIsPostsPage","ResetDefaultTemplate","onClick","currentTemplateSlug","isPostsPage","postType","postId","editEntityRecord","createElement","template","undoIgnore"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/page-panels/reset-default-template.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseCurrentTemplateSlug,\n\tuseEditedPostContext,\n\tuseIsPostsPage,\n} from './hooks';\n\nexport default function ResetDefaultTemplate( { onClick } ) {\n\tconst currentTemplateSlug = useCurrentTemplateSlug();\n\tconst isPostsPage = useIsPostsPage();\n\tconst { postType, postId } = useEditedPostContext();\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\t// The default template in a post is indicated by an empty string.\n\tif ( ! currentTemplateSlug || isPostsPage ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<MenuGroup>\n\t\t\t<MenuItem\n\t\t\t\tonClick={ async () => {\n\t\t\t\t\teditEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tpostType,\n\t\t\t\t\t\tpostId,\n\t\t\t\t\t\t{ template: '' },\n\t\t\t\t\t\t{ undoIgnore: true }\n\t\t\t\t\t);\n\t\t\t\t\tonClick();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Use default template' ) }\n\t\t\t</MenuItem>\n\t\t</MenuGroup>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,uBAAuB;AAC3D,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SACCC,sBAAsB,EACtBC,oBAAoB,EACpBC,cAAc,QACR,SAAS;AAEhB,eAAe,SAASC,oBAAoBA,CAAE;EAAEC;AAAQ,CAAC,EAAG;EAC3D,MAAMC,mBAAmB,GAAGL,sBAAsB,CAAC,CAAC;EACpD,MAAMM,WAAW,GAAGJ,cAAc,CAAC,CAAC;EACpC,MAAM;IAAEK,QAAQ;IAAEC;EAAO,CAAC,GAAGP,oBAAoB,CAAC,CAAC;EACnD,MAAM;IAAEQ;EAAiB,CAAC,GAAGZ,WAAW,CAAEE,SAAU,CAAC;EACrD;EACA,IAAK,CAAEM,mBAAmB,IAAIC,WAAW,EAAG;IAC3C,OAAO,IAAI;EACZ;EACA,OACCI,aAAA,CAAChB,SAAS,QACTgB,aAAA,CAACf,QAAQ;IACRS,OAAO,EAAG,MAAAA,CAAA,KAAY;MACrBK,gBAAgB,CACf,UAAU,EACVF,QAAQ,EACRC,MAAM,EACN;QAAEG,QAAQ,EAAE;MAAG,CAAC,EAChB;QAAEC,UAAU,EAAE;MAAK,CACpB,CAAC;MACDR,OAAO,CAAC,CAAC;IACV;EAAG,GAEDR,EAAE,CAAE,sBAAuB,CACpB,CACA,CAAC;AAEd"}
1
+ {"version":3,"names":["MenuGroup","MenuItem","__","useDispatch","store","coreStore","useAllowSwitchingTemplates","useCurrentTemplateSlug","useEditedPostContext","ResetDefaultTemplate","onClick","currentTemplateSlug","allowSwitchingTemplate","postType","postId","editEntityRecord","createElement","template","undoIgnore"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/page-panels/reset-default-template.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseAllowSwitchingTemplates,\n\tuseCurrentTemplateSlug,\n\tuseEditedPostContext,\n} from './hooks';\n\nexport default function ResetDefaultTemplate( { onClick } ) {\n\tconst currentTemplateSlug = useCurrentTemplateSlug();\n\tconst allowSwitchingTemplate = useAllowSwitchingTemplates();\n\tconst { postType, postId } = useEditedPostContext();\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\t// The default template in a post is indicated by an empty string.\n\tif ( ! currentTemplateSlug || ! allowSwitchingTemplate ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<MenuGroup>\n\t\t\t<MenuItem\n\t\t\t\tonClick={ async () => {\n\t\t\t\t\teditEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tpostType,\n\t\t\t\t\t\tpostId,\n\t\t\t\t\t\t{ template: '' },\n\t\t\t\t\t\t{ undoIgnore: true }\n\t\t\t\t\t);\n\t\t\t\t\tonClick();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Use default template' ) }\n\t\t\t</MenuItem>\n\t\t</MenuGroup>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,uBAAuB;AAC3D,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SACCC,0BAA0B,EAC1BC,sBAAsB,EACtBC,oBAAoB,QACd,SAAS;AAEhB,eAAe,SAASC,oBAAoBA,CAAE;EAAEC;AAAQ,CAAC,EAAG;EAC3D,MAAMC,mBAAmB,GAAGJ,sBAAsB,CAAC,CAAC;EACpD,MAAMK,sBAAsB,GAAGN,0BAA0B,CAAC,CAAC;EAC3D,MAAM;IAAEO,QAAQ;IAAEC;EAAO,CAAC,GAAGN,oBAAoB,CAAC,CAAC;EACnD,MAAM;IAAEO;EAAiB,CAAC,GAAGZ,WAAW,CAAEE,SAAU,CAAC;EACrD;EACA,IAAK,CAAEM,mBAAmB,IAAI,CAAEC,sBAAsB,EAAG;IACxD,OAAO,IAAI;EACZ;EACA,OACCI,aAAA,CAAChB,SAAS,QACTgB,aAAA,CAACf,QAAQ;IACRS,OAAO,EAAG,MAAAA,CAAA,KAAY;MACrBK,gBAAgB,CACf,UAAU,EACVF,QAAQ,EACRC,MAAM,EACN;QAAEG,QAAQ,EAAE;MAAG,CAAC,EAChB;QAAEC,UAAU,EAAE;MAAK,CACpB,CAAC;MACDR,OAAO,CAAC,CAAC;IACV;EAAG,GAEDR,EAAE,CAAE,sBAAuB,CACpB,CACA,CAAC;AAEd"}
@@ -11,6 +11,7 @@ import { Button } from '@wordpress/components';
11
11
  import { __, sprintf } from '@wordpress/i18n';
12
12
  import { useSelect, useDispatch } from '@wordpress/data';
13
13
  import { store as interfaceStore } from '@wordpress/interface';
14
+ import { store as editorStore } from '@wordpress/editor';
14
15
 
15
16
  /**
16
17
  * Internal dependencies
@@ -23,15 +24,18 @@ const SettingsHeader = ({
23
24
  sidebarName
24
25
  }) => {
25
26
  const {
26
- hasPageContentFocus,
27
+ isEditingPage,
27
28
  entityType
28
29
  } = useSelect(select => {
29
30
  const {
30
31
  getEditedPostType,
31
- hasPageContentFocus: _hasPageContentFocus
32
+ isPage
32
33
  } = select(editSiteStore);
34
+ const {
35
+ getRenderingMode
36
+ } = select(editorStore);
33
37
  return {
34
- hasPageContentFocus: _hasPageContentFocus(),
38
+ isEditingPage: isPage() && getRenderingMode() !== 'template-only',
35
39
  entityType: getEditedPostType()
36
40
  };
37
41
  });
@@ -42,7 +46,7 @@ const SettingsHeader = ({
42
46
  const openTemplateSettings = () => enableComplementaryArea(STORE_NAME, SIDEBAR_TEMPLATE);
43
47
  const openBlockSettings = () => enableComplementaryArea(STORE_NAME, SIDEBAR_BLOCK);
44
48
  let templateAriaLabel;
45
- if (hasPageContentFocus) {
49
+ if (isEditingPage) {
46
50
  templateAriaLabel = sidebarName === SIDEBAR_TEMPLATE ?
47
51
  // translators: ARIA label for the Template sidebar tab, selected.
48
52
  __('Page (selected)') :
@@ -63,8 +67,8 @@ const SettingsHeader = ({
63
67
  'is-active': sidebarName === SIDEBAR_TEMPLATE
64
68
  }),
65
69
  "aria-label": templateAriaLabel,
66
- "data-label": hasPageContentFocus ? __('Page') : entityLabel
67
- }, hasPageContentFocus ? __('Page') : entityLabel)), createElement("li", null, createElement(Button, {
70
+ "data-label": isEditingPage ? __('Page') : entityLabel
71
+ }, isEditingPage ? __('Page') : entityLabel)), createElement("li", null, createElement(Button, {
68
72
  onClick: openBlockSettings,
69
73
  className: classnames('edit-site-sidebar-edit-mode__panel-tab', {
70
74
  'is-active': sidebarName === SIDEBAR_BLOCK
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","Button","__","sprintf","useSelect","useDispatch","store","interfaceStore","STORE_NAME","SIDEBAR_BLOCK","SIDEBAR_TEMPLATE","editSiteStore","POST_TYPE_LABELS","TEMPLATE_POST_TYPE","SettingsHeader","sidebarName","hasPageContentFocus","entityType","select","getEditedPostType","_hasPageContentFocus","entityLabel","enableComplementaryArea","openTemplateSettings","openBlockSettings","templateAriaLabel","createElement","onClick","className"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/settings-header/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME } from '../../../store/constants';\nimport { SIDEBAR_BLOCK, SIDEBAR_TEMPLATE } from '../constants';\nimport { store as editSiteStore } from '../../../store';\nimport { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../../utils/constants';\n\nconst SettingsHeader = ( { sidebarName } ) => {\n\tconst { hasPageContentFocus, entityType } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, hasPageContentFocus: _hasPageContentFocus } =\n\t\t\tselect( editSiteStore );\n\n\t\treturn {\n\t\t\thasPageContentFocus: _hasPageContentFocus(),\n\t\t\tentityType: getEditedPostType(),\n\t\t};\n\t} );\n\n\tconst entityLabel =\n\t\tPOST_TYPE_LABELS[ entityType ] ||\n\t\tPOST_TYPE_LABELS[ TEMPLATE_POST_TYPE ];\n\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\tconst openTemplateSettings = () =>\n\t\tenableComplementaryArea( STORE_NAME, SIDEBAR_TEMPLATE );\n\tconst openBlockSettings = () =>\n\t\tenableComplementaryArea( STORE_NAME, SIDEBAR_BLOCK );\n\n\tlet templateAriaLabel;\n\tif ( hasPageContentFocus ) {\n\t\ttemplateAriaLabel =\n\t\t\tsidebarName === SIDEBAR_TEMPLATE\n\t\t\t\t? // translators: ARIA label for the Template sidebar tab, selected.\n\t\t\t\t __( 'Page (selected)' )\n\t\t\t\t: // translators: ARIA label for the Template Settings Sidebar tab, not selected.\n\t\t\t\t __( 'Page' );\n\t} else {\n\t\ttemplateAriaLabel =\n\t\t\tsidebarName === SIDEBAR_TEMPLATE\n\t\t\t\t? // translators: ARIA label for the Template sidebar tab, selected.\n\t\t\t\t sprintf( __( '%s (selected)' ), entityLabel )\n\t\t\t\t: // translators: ARIA label for the Template Settings Sidebar tab, not selected.\n\t\t\t\t entityLabel;\n\t}\n\n\t/* Use a list so screen readers will announce how many tabs there are. */\n\treturn (\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<Button\n\t\t\t\t\tonClick={ openTemplateSettings }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'edit-site-sidebar-edit-mode__panel-tab',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-active': sidebarName === SIDEBAR_TEMPLATE,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ templateAriaLabel }\n\t\t\t\t\tdata-label={\n\t\t\t\t\t\thasPageContentFocus ? __( 'Page' ) : entityLabel\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ hasPageContentFocus ? __( 'Page' ) : entityLabel }\n\t\t\t\t</Button>\n\t\t\t</li>\n\t\t\t<li>\n\t\t\t\t<Button\n\t\t\t\t\tonClick={ openBlockSettings }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'edit-site-sidebar-edit-mode__panel-tab',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-active': sidebarName === SIDEBAR_BLOCK,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={\n\t\t\t\t\t\tsidebarName === SIDEBAR_BLOCK\n\t\t\t\t\t\t\t? // translators: ARIA label for the Block Settings Sidebar tab, selected.\n\t\t\t\t\t\t\t __( 'Block (selected)' )\n\t\t\t\t\t\t\t: // translators: ARIA label for the Block Settings Sidebar tab, not selected.\n\t\t\t\t\t\t\t __( 'Block' )\n\t\t\t\t\t}\n\t\t\t\t\tdata-label={ __( 'Block' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Block' ) }\n\t\t\t\t</Button>\n\t\t\t</li>\n\t\t</ul>\n\t);\n};\n\nexport default SettingsHeader;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,cAAc,QAAQ,sBAAsB;;AAE9D;AACA;AACA;AACA,SAASC,UAAU,QAAQ,0BAA0B;AACrD,SAASC,aAAa,EAAEC,gBAAgB,QAAQ,cAAc;AAC9D,SAASJ,KAAK,IAAIK,aAAa,QAAQ,gBAAgB;AACvD,SAASC,gBAAgB,EAAEC,kBAAkB,QAAQ,0BAA0B;AAE/E,MAAMC,cAAc,GAAGA,CAAE;EAAEC;AAAY,CAAC,KAAM;EAC7C,MAAM;IAAEC,mBAAmB;IAAEC;EAAW,CAAC,GAAGb,SAAS,CAAIc,MAAM,IAAM;IACpE,MAAM;MAAEC,iBAAiB;MAAEH,mBAAmB,EAAEI;IAAqB,CAAC,GACrEF,MAAM,CAAEP,aAAc,CAAC;IAExB,OAAO;MACNK,mBAAmB,EAAEI,oBAAoB,CAAC,CAAC;MAC3CH,UAAU,EAAEE,iBAAiB,CAAC;IAC/B,CAAC;EACF,CAAE,CAAC;EAEH,MAAME,WAAW,GAChBT,gBAAgB,CAAEK,UAAU,CAAE,IAC9BL,gBAAgB,CAAEC,kBAAkB,CAAE;EAEvC,MAAM;IAAES;EAAwB,CAAC,GAAGjB,WAAW,CAAEE,cAAe,CAAC;EACjE,MAAMgB,oBAAoB,GAAGA,CAAA,KAC5BD,uBAAuB,CAAEd,UAAU,EAAEE,gBAAiB,CAAC;EACxD,MAAMc,iBAAiB,GAAGA,CAAA,KACzBF,uBAAuB,CAAEd,UAAU,EAAEC,aAAc,CAAC;EAErD,IAAIgB,iBAAiB;EACrB,IAAKT,mBAAmB,EAAG;IAC1BS,iBAAiB,GAChBV,WAAW,KAAKL,gBAAgB;IAC7B;IACAR,EAAE,CAAE,iBAAkB,CAAC;IACvB;IACAA,EAAE,CAAE,MAAO,CAAC;EACjB,CAAC,MAAM;IACNuB,iBAAiB,GAChBV,WAAW,KAAKL,gBAAgB;IAC7B;IACAP,OAAO,CAAED,EAAE,CAAE,eAAgB,CAAC,EAAEmB,WAAY,CAAC;IAC7C;IACAA,WAAW;EAChB;;EAEA;EACA,OACCK,aAAA,aACCA,aAAA,aACCA,aAAA,CAACzB,MAAM;IACN0B,OAAO,EAAGJ,oBAAsB;IAChCK,SAAS,EAAG5B,UAAU,CACrB,wCAAwC,EACxC;MACC,WAAW,EAAEe,WAAW,KAAKL;IAC9B,CACD,CAAG;IACH,cAAae,iBAAmB;IAChC,cACCT,mBAAmB,GAAGd,EAAE,CAAE,MAAO,CAAC,GAAGmB;EACrC,GAECL,mBAAmB,GAAGd,EAAE,CAAE,MAAO,CAAC,GAAGmB,WAChC,CACL,CAAC,EACLK,aAAA,aACCA,aAAA,CAACzB,MAAM;IACN0B,OAAO,EAAGH,iBAAmB;IAC7BI,SAAS,EAAG5B,UAAU,CACrB,wCAAwC,EACxC;MACC,WAAW,EAAEe,WAAW,KAAKN;IAC9B,CACD,CAAG;IACH,cACCM,WAAW,KAAKN,aAAa;IAC1B;IACAP,EAAE,CAAE,kBAAmB,CAAC;IACxB;IACAA,EAAE,CAAE,OAAQ,CACf;IACD,cAAaA,EAAE,CAAE,OAAQ;EAAG,GAE1BA,EAAE,CAAE,OAAQ,CACP,CACL,CACD,CAAC;AAEP,CAAC;AAED,eAAeY,cAAc"}
1
+ {"version":3,"names":["classnames","Button","__","sprintf","useSelect","useDispatch","store","interfaceStore","editorStore","STORE_NAME","SIDEBAR_BLOCK","SIDEBAR_TEMPLATE","editSiteStore","POST_TYPE_LABELS","TEMPLATE_POST_TYPE","SettingsHeader","sidebarName","isEditingPage","entityType","select","getEditedPostType","isPage","getRenderingMode","entityLabel","enableComplementaryArea","openTemplateSettings","openBlockSettings","templateAriaLabel","createElement","onClick","className"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/settings-header/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME } from '../../../store/constants';\nimport { SIDEBAR_BLOCK, SIDEBAR_TEMPLATE } from '../constants';\nimport { store as editSiteStore } from '../../../store';\nimport { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../../utils/constants';\n\nconst SettingsHeader = ( { sidebarName } ) => {\n\tconst { isEditingPage, entityType } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, isPage } = select( editSiteStore );\n\t\tconst { getRenderingMode } = select( editorStore );\n\n\t\treturn {\n\t\t\tisEditingPage: isPage() && getRenderingMode() !== 'template-only',\n\t\t\tentityType: getEditedPostType(),\n\t\t};\n\t} );\n\n\tconst entityLabel =\n\t\tPOST_TYPE_LABELS[ entityType ] ||\n\t\tPOST_TYPE_LABELS[ TEMPLATE_POST_TYPE ];\n\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\tconst openTemplateSettings = () =>\n\t\tenableComplementaryArea( STORE_NAME, SIDEBAR_TEMPLATE );\n\tconst openBlockSettings = () =>\n\t\tenableComplementaryArea( STORE_NAME, SIDEBAR_BLOCK );\n\n\tlet templateAriaLabel;\n\tif ( isEditingPage ) {\n\t\ttemplateAriaLabel =\n\t\t\tsidebarName === SIDEBAR_TEMPLATE\n\t\t\t\t? // translators: ARIA label for the Template sidebar tab, selected.\n\t\t\t\t __( 'Page (selected)' )\n\t\t\t\t: // translators: ARIA label for the Template Settings Sidebar tab, not selected.\n\t\t\t\t __( 'Page' );\n\t} else {\n\t\ttemplateAriaLabel =\n\t\t\tsidebarName === SIDEBAR_TEMPLATE\n\t\t\t\t? // translators: ARIA label for the Template sidebar tab, selected.\n\t\t\t\t sprintf( __( '%s (selected)' ), entityLabel )\n\t\t\t\t: // translators: ARIA label for the Template Settings Sidebar tab, not selected.\n\t\t\t\t entityLabel;\n\t}\n\n\t/* Use a list so screen readers will announce how many tabs there are. */\n\treturn (\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<Button\n\t\t\t\t\tonClick={ openTemplateSettings }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'edit-site-sidebar-edit-mode__panel-tab',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-active': sidebarName === SIDEBAR_TEMPLATE,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ templateAriaLabel }\n\t\t\t\t\tdata-label={ isEditingPage ? __( 'Page' ) : entityLabel }\n\t\t\t\t>\n\t\t\t\t\t{ isEditingPage ? __( 'Page' ) : entityLabel }\n\t\t\t\t</Button>\n\t\t\t</li>\n\t\t\t<li>\n\t\t\t\t<Button\n\t\t\t\t\tonClick={ openBlockSettings }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'edit-site-sidebar-edit-mode__panel-tab',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-active': sidebarName === SIDEBAR_BLOCK,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={\n\t\t\t\t\t\tsidebarName === SIDEBAR_BLOCK\n\t\t\t\t\t\t\t? // translators: ARIA label for the Block Settings Sidebar tab, selected.\n\t\t\t\t\t\t\t __( 'Block (selected)' )\n\t\t\t\t\t\t\t: // translators: ARIA label for the Block Settings Sidebar tab, not selected.\n\t\t\t\t\t\t\t __( 'Block' )\n\t\t\t\t\t}\n\t\t\t\t\tdata-label={ __( 'Block' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Block' ) }\n\t\t\t\t</Button>\n\t\t\t</li>\n\t\t</ul>\n\t);\n};\n\nexport default SettingsHeader;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,cAAc,QAAQ,sBAAsB;AAC9D,SAASD,KAAK,IAAIE,WAAW,QAAQ,mBAAmB;;AAExD;AACA;AACA;AACA,SAASC,UAAU,QAAQ,0BAA0B;AACrD,SAASC,aAAa,EAAEC,gBAAgB,QAAQ,cAAc;AAC9D,SAASL,KAAK,IAAIM,aAAa,QAAQ,gBAAgB;AACvD,SAASC,gBAAgB,EAAEC,kBAAkB,QAAQ,0BAA0B;AAE/E,MAAMC,cAAc,GAAGA,CAAE;EAAEC;AAAY,CAAC,KAAM;EAC7C,MAAM;IAAEC,aAAa;IAAEC;EAAW,CAAC,GAAGd,SAAS,CAAIe,MAAM,IAAM;IAC9D,MAAM;MAAEC,iBAAiB;MAAEC;IAAO,CAAC,GAAGF,MAAM,CAAEP,aAAc,CAAC;IAC7D,MAAM;MAAEU;IAAiB,CAAC,GAAGH,MAAM,CAAEX,WAAY,CAAC;IAElD,OAAO;MACNS,aAAa,EAAEI,MAAM,CAAC,CAAC,IAAIC,gBAAgB,CAAC,CAAC,KAAK,eAAe;MACjEJ,UAAU,EAAEE,iBAAiB,CAAC;IAC/B,CAAC;EACF,CAAE,CAAC;EAEH,MAAMG,WAAW,GAChBV,gBAAgB,CAAEK,UAAU,CAAE,IAC9BL,gBAAgB,CAAEC,kBAAkB,CAAE;EAEvC,MAAM;IAAEU;EAAwB,CAAC,GAAGnB,WAAW,CAAEE,cAAe,CAAC;EACjE,MAAMkB,oBAAoB,GAAGA,CAAA,KAC5BD,uBAAuB,CAAEf,UAAU,EAAEE,gBAAiB,CAAC;EACxD,MAAMe,iBAAiB,GAAGA,CAAA,KACzBF,uBAAuB,CAAEf,UAAU,EAAEC,aAAc,CAAC;EAErD,IAAIiB,iBAAiB;EACrB,IAAKV,aAAa,EAAG;IACpBU,iBAAiB,GAChBX,WAAW,KAAKL,gBAAgB;IAC7B;IACAT,EAAE,CAAE,iBAAkB,CAAC;IACvB;IACAA,EAAE,CAAE,MAAO,CAAC;EACjB,CAAC,MAAM;IACNyB,iBAAiB,GAChBX,WAAW,KAAKL,gBAAgB;IAC7B;IACAR,OAAO,CAAED,EAAE,CAAE,eAAgB,CAAC,EAAEqB,WAAY,CAAC;IAC7C;IACAA,WAAW;EAChB;;EAEA;EACA,OACCK,aAAA,aACCA,aAAA,aACCA,aAAA,CAAC3B,MAAM;IACN4B,OAAO,EAAGJ,oBAAsB;IAChCK,SAAS,EAAG9B,UAAU,CACrB,wCAAwC,EACxC;MACC,WAAW,EAAEgB,WAAW,KAAKL;IAC9B,CACD,CAAG;IACH,cAAagB,iBAAmB;IAChC,cAAaV,aAAa,GAAGf,EAAE,CAAE,MAAO,CAAC,GAAGqB;EAAa,GAEvDN,aAAa,GAAGf,EAAE,CAAE,MAAO,CAAC,GAAGqB,WAC1B,CACL,CAAC,EACLK,aAAA,aACCA,aAAA,CAAC3B,MAAM;IACN4B,OAAO,EAAGH,iBAAmB;IAC7BI,SAAS,EAAG9B,UAAU,CACrB,wCAAwC,EACxC;MACC,WAAW,EAAEgB,WAAW,KAAKN;IAC9B,CACD,CAAG;IACH,cACCM,WAAW,KAAKN,aAAa;IAC1B;IACAR,EAAE,CAAE,kBAAmB,CAAC;IACxB;IACAA,EAAE,CAAE,OAAQ,CACf;IACD,cAAaA,EAAE,CAAE,OAAQ;EAAG,GAE1BA,EAAE,CAAE,OAAQ,CACP,CACL,CACD,CAAC;AAEP,CAAC;AAED,eAAea,cAAc"}
@@ -11,6 +11,8 @@ import { pencil } from '@wordpress/icons';
11
11
  import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
12
12
  import { escapeAttribute } from '@wordpress/escape-html';
13
13
  import { safeDecodeURIComponent, filterURLForDisplay } from '@wordpress/url';
14
+ import { useEffect } from '@wordpress/element';
15
+ import { privateApis as routerPrivateApis } from '@wordpress/router';
14
16
 
15
17
  /**
16
18
  * Internal dependencies
@@ -22,18 +24,23 @@ import SidebarButton from '../sidebar-button';
22
24
  import PageDetails from './page-details';
23
25
  import PageActions from '../page-actions';
24
26
  import SidebarNavigationScreenDetailsFooter from '../sidebar-navigation-screen-details-footer';
27
+ const {
28
+ useHistory
29
+ } = unlock(routerPrivateApis);
25
30
  export default function SidebarNavigationScreenPage() {
26
- const navigator = useNavigator();
27
31
  const {
28
32
  setCanvasMode
29
33
  } = unlock(useDispatch(editSiteStore));
34
+ const history = useHistory();
30
35
  const {
31
36
  params: {
32
37
  postId
33
- }
38
+ },
39
+ goTo
34
40
  } = useNavigator();
35
41
  const {
36
- record
42
+ record,
43
+ hasResolved
37
44
  } = useEntityRecord('postType', 'page', postId);
38
45
  const {
39
46
  featuredMediaAltText,
@@ -49,6 +56,18 @@ export default function SidebarNavigationScreenPage() {
49
56
  featuredMediaAltText: escapeAttribute(attachedMedia?.alt_text || attachedMedia?.description?.raw || '')
50
57
  };
51
58
  }, [record]);
59
+
60
+ // Redirect to the main pages navigation screen if the page is not found or has been deleted.
61
+ useEffect(() => {
62
+ if (hasResolved && !record) {
63
+ history.push({
64
+ path: '/page',
65
+ postId: undefined,
66
+ postType: undefined,
67
+ canvas: 'view'
68
+ });
69
+ }
70
+ }, [hasResolved, history]);
52
71
  const featureImageAltText = featuredMediaAltText ? decodeEntities(featuredMediaAltText) : decodeEntities(record?.title?.rendered || __('Featured image'));
53
72
  return record ? createElement(SidebarNavigationScreen, {
54
73
  title: decodeEntities(record?.title?.rendered || __('(no title)')),
@@ -58,7 +77,7 @@ export default function SidebarNavigationScreenPage() {
58
77
  as: SidebarButton
59
78
  },
60
79
  onRemove: () => {
61
- navigator.goTo('/page');
80
+ goTo('/page');
62
81
  }
63
82
  }), createElement(SidebarButton, {
64
83
  onClick: () => setCanvasMode('edit'),