@wordpress/edit-site 5.3.5 → 5.3.7

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 (196) hide show
  1. package/build/components/add-new-template/add-custom-template-modal.js +12 -3
  2. package/build/components/add-new-template/add-custom-template-modal.js.map +1 -1
  3. package/build/components/add-new-template/new-template-part.js +5 -1
  4. package/build/components/add-new-template/new-template-part.js.map +1 -1
  5. package/build/components/block-editor/editor-canvas.js +2 -1
  6. package/build/components/block-editor/editor-canvas.js.map +1 -1
  7. package/build/components/editor/index.js +3 -3
  8. package/build/components/editor/index.js.map +1 -1
  9. package/build/components/global-styles/screen-variations.js +1 -1
  10. package/build/components/global-styles/screen-variations.js.map +1 -1
  11. package/build/components/global-styles/shadow-panel.js +6 -4
  12. package/build/components/global-styles/shadow-panel.js.map +1 -1
  13. package/build/components/keyboard-shortcuts/edit-mode.js +124 -0
  14. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -0
  15. package/build/components/keyboard-shortcuts/global.js +48 -0
  16. package/build/components/keyboard-shortcuts/global.js.map +1 -0
  17. package/build/components/keyboard-shortcuts/register.js +153 -0
  18. package/build/components/keyboard-shortcuts/register.js.map +1 -0
  19. package/build/components/layout/index.js +11 -1
  20. package/build/components/layout/index.js.map +1 -1
  21. package/build/components/list/added-by.js +41 -42
  22. package/build/components/list/added-by.js.map +1 -1
  23. package/build/components/list/index.js +2 -1
  24. package/build/components/list/index.js.map +1 -1
  25. package/build/components/list/table.js +3 -1
  26. package/build/components/list/table.js.map +1 -1
  27. package/build/components/routes/link.js +4 -1
  28. package/build/components/routes/link.js.map +1 -1
  29. package/build/components/save-hub/index.js +82 -0
  30. package/build/components/save-hub/index.js.map +1 -0
  31. package/build/components/sidebar/index.js +14 -4
  32. package/build/components/sidebar/index.js.map +1 -1
  33. package/build/components/sidebar-button/index.js +30 -0
  34. package/build/components/sidebar-button/index.js.map +1 -0
  35. package/build/components/sidebar-navigation-screen/index.js +11 -5
  36. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  37. package/build/components/sidebar-navigation-screen-main/index.js +1 -0
  38. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  39. package/build/components/sidebar-navigation-screen-navigation-item/index.js +18 -18
  40. package/build/components/sidebar-navigation-screen-navigation-item/index.js.map +1 -1
  41. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +139 -11
  42. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  43. package/build/components/sidebar-navigation-screen-navigation-menus/loader.js +19 -0
  44. package/build/components/sidebar-navigation-screen-navigation-menus/loader.js.map +1 -0
  45. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +77 -0
  46. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -0
  47. package/build/components/sidebar-navigation-screen-template/index.js +25 -8
  48. package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
  49. package/build/components/sidebar-navigation-screen-templates/index.js +22 -5
  50. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  51. package/build/components/sidebar-navigation-screen-templates-browse/index.js +6 -3
  52. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  53. package/build/components/style-book/index.js +17 -2
  54. package/build/components/style-book/index.js.map +1 -1
  55. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +7 -7
  56. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  57. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +24 -8
  58. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  59. package/build/components/sync-state-with-url/use-sync-path-with-url.js +29 -29
  60. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  61. package/build/components/template-details/index.js +5 -10
  62. package/build/components/template-details/index.js.map +1 -1
  63. package/build/components/use-edited-entity-record/index.js +6 -6
  64. package/build/components/use-edited-entity-record/index.js.map +1 -1
  65. package/build/index.js +13 -22
  66. package/build/index.js.map +1 -1
  67. package/build/utils/history.js +8 -2
  68. package/build/utils/history.js.map +1 -1
  69. package/build-module/components/add-new-template/add-custom-template-modal.js +13 -4
  70. package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -1
  71. package/build-module/components/add-new-template/new-template-part.js +5 -1
  72. package/build-module/components/add-new-template/new-template-part.js.map +1 -1
  73. package/build-module/components/block-editor/editor-canvas.js +2 -1
  74. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  75. package/build-module/components/editor/index.js +3 -3
  76. package/build-module/components/editor/index.js.map +1 -1
  77. package/build-module/components/global-styles/screen-variations.js +1 -1
  78. package/build-module/components/global-styles/screen-variations.js.map +1 -1
  79. package/build-module/components/global-styles/shadow-panel.js +6 -4
  80. package/build-module/components/global-styles/shadow-panel.js.map +1 -1
  81. package/build-module/components/keyboard-shortcuts/edit-mode.js +108 -0
  82. package/build-module/components/keyboard-shortcuts/edit-mode.js.map +1 -0
  83. package/build-module/components/keyboard-shortcuts/global.js +37 -0
  84. package/build-module/components/keyboard-shortcuts/global.js.map +1 -0
  85. package/build-module/components/keyboard-shortcuts/register.js +141 -0
  86. package/build-module/components/keyboard-shortcuts/register.js.map +1 -0
  87. package/build-module/components/layout/index.js +9 -1
  88. package/build-module/components/layout/index.js.map +1 -1
  89. package/build-module/components/list/added-by.js +43 -44
  90. package/build-module/components/list/added-by.js.map +1 -1
  91. package/build-module/components/list/index.js +2 -1
  92. package/build-module/components/list/index.js.map +1 -1
  93. package/build-module/components/list/table.js +3 -1
  94. package/build-module/components/list/table.js.map +1 -1
  95. package/build-module/components/routes/link.js +5 -2
  96. package/build-module/components/routes/link.js.map +1 -1
  97. package/build-module/components/save-hub/index.js +68 -0
  98. package/build-module/components/save-hub/index.js.map +1 -0
  99. package/build-module/components/sidebar/index.js +10 -5
  100. package/build-module/components/sidebar/index.js.map +1 -1
  101. package/build-module/components/sidebar-button/index.js +18 -0
  102. package/build-module/components/sidebar-button/index.js.map +1 -0
  103. package/build-module/components/sidebar-navigation-screen/index.js +9 -6
  104. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  105. package/build-module/components/sidebar-navigation-screen-main/index.js +1 -0
  106. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  107. package/build-module/components/sidebar-navigation-screen-navigation-item/index.js +20 -22
  108. package/build-module/components/sidebar-navigation-screen-navigation-item/index.js.map +1 -1
  109. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +131 -11
  110. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  111. package/build-module/components/sidebar-navigation-screen-navigation-menus/loader.js +11 -0
  112. package/build-module/components/sidebar-navigation-screen-navigation-menus/loader.js.map +1 -0
  113. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +66 -0
  114. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -0
  115. package/build-module/components/sidebar-navigation-screen-template/index.js +25 -10
  116. package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
  117. package/build-module/components/sidebar-navigation-screen-templates/index.js +19 -5
  118. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  119. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +6 -3
  120. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  121. package/build-module/components/style-book/index.js +17 -3
  122. package/build-module/components/style-book/index.js.map +1 -1
  123. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +7 -7
  124. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  125. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +24 -8
  126. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  127. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +27 -29
  128. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  129. package/build-module/components/template-details/index.js +5 -9
  130. package/build-module/components/template-details/index.js.map +1 -1
  131. package/build-module/components/use-edited-entity-record/index.js +6 -6
  132. package/build-module/components/use-edited-entity-record/index.js.map +1 -1
  133. package/build-module/index.js +16 -23
  134. package/build-module/index.js.map +1 -1
  135. package/build-module/utils/history.js +9 -3
  136. package/build-module/utils/history.js.map +1 -1
  137. package/build-style/style-rtl.css +100 -94
  138. package/build-style/style.css +100 -94
  139. package/package.json +10 -10
  140. package/src/components/add-new-template/add-custom-template-modal.js +14 -10
  141. package/src/components/add-new-template/new-template-part.js +4 -3
  142. package/src/components/add-new-template/style.scss +0 -5
  143. package/src/components/block-editor/editor-canvas.js +2 -1
  144. package/src/components/block-editor/style.scss +1 -1
  145. package/src/components/editor/index.js +4 -3
  146. package/src/components/global-styles/screen-variations.js +0 -1
  147. package/src/components/global-styles/shadow-panel.js +4 -3
  148. package/src/components/keyboard-shortcuts/edit-mode.js +116 -0
  149. package/src/components/keyboard-shortcuts/global.js +35 -0
  150. package/src/components/keyboard-shortcuts/register.js +157 -0
  151. package/src/components/layout/index.js +18 -0
  152. package/src/components/layout/style.scss +1 -3
  153. package/src/components/list/added-by.js +48 -55
  154. package/src/components/list/index.js +3 -1
  155. package/src/components/list/style.scss +5 -13
  156. package/src/components/list/table.js +4 -1
  157. package/src/components/routes/link.js +9 -2
  158. package/src/components/save-hub/index.js +78 -0
  159. package/src/components/save-hub/style.scss +15 -0
  160. package/src/components/sidebar/index.js +11 -6
  161. package/src/components/sidebar/style.scss +4 -3
  162. package/src/components/sidebar-button/index.js +21 -0
  163. package/src/components/sidebar-button/style.scss +24 -0
  164. package/src/components/sidebar-navigation-item/style.scss +0 -20
  165. package/src/components/sidebar-navigation-screen/index.js +9 -4
  166. package/src/components/sidebar-navigation-screen/style.scss +16 -10
  167. package/src/components/sidebar-navigation-screen-main/index.js +3 -0
  168. package/src/components/sidebar-navigation-screen-navigation-item/index.js +33 -26
  169. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +141 -10
  170. package/src/components/sidebar-navigation-screen-navigation-menus/loader.js +9 -0
  171. package/src/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +78 -0
  172. package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +55 -4
  173. package/src/components/sidebar-navigation-screen-template/index.js +27 -13
  174. package/src/components/sidebar-navigation-screen-templates/index.js +23 -4
  175. package/src/components/sidebar-navigation-screen-templates/style.scss +0 -5
  176. package/src/components/sidebar-navigation-screen-templates-browse/index.js +12 -1
  177. package/src/components/style-book/index.js +25 -1
  178. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -9
  179. package/src/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +38 -8
  180. package/src/components/sync-state-with-url/use-sync-path-with-url.js +34 -35
  181. package/src/components/template-details/index.js +4 -8
  182. package/src/components/use-edited-entity-record/index.js +26 -18
  183. package/src/index.js +11 -22
  184. package/src/style.scss +2 -1
  185. package/src/utils/history.js +13 -9
  186. package/build/components/navigation-inspector/index.js +0 -190
  187. package/build/components/navigation-inspector/index.js.map +0 -1
  188. package/build/components/navigation-inspector/navigation-menu.js +0 -62
  189. package/build/components/navigation-inspector/navigation-menu.js.map +0 -1
  190. package/build-module/components/navigation-inspector/index.js +0 -173
  191. package/build-module/components/navigation-inspector/index.js.map +0 -1
  192. package/build-module/components/navigation-inspector/navigation-menu.js +0 -52
  193. package/build-module/components/navigation-inspector/navigation-menu.js.map +0 -1
  194. package/src/components/navigation-inspector/index.js +0 -223
  195. package/src/components/navigation-inspector/navigation-menu.js +0 -66
  196. package/src/components/navigation-inspector/style.scss +0 -46
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-template/index.js"],"names":["__","useDispatch","Button","SidebarNavigationScreen","useEditedEntityRecord","unlock","store","editSiteStore","SidebarNavigationScreenTemplate","setCanvasMode","getDescription","getTitle","record","description","is_custom","undefined"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,WAAT,QAA4B,iBAA5B;AACA,SAASC,MAAT,QAAuB,uBAAvB;AAEA;AACA;AACA;;AACA,OAAOC,uBAAP,MAAoC,8BAApC;AACA,OAAOC,qBAAP,MAAkC,6BAAlC;AACA,SAASC,MAAT,QAAuB,oBAAvB;AACA,SAASC,KAAK,IAAIC,aAAlB,QAAuC,aAAvC;AAEA,eAAe,SAASC,+BAAT,GAA2C;AACzD,QAAM;AAAEC,IAAAA;AAAF,MAAoBJ,MAAM,CAAEJ,WAAW,CAAEM,aAAF,CAAb,CAAhC;AACA,QAAM;AAAEG,IAAAA,cAAF;AAAkBC,IAAAA,QAAlB;AAA4BC,IAAAA;AAA5B,MAAuCR,qBAAqB,EAAlE;AACA,MAAIS,WAAW,GAAGH,cAAc,EAAhC;;AACA,MAAK,CAAEG,WAAF,IAAiBD,MAAM,CAACE,SAA7B,EAAyC;AACxCD,IAAAA,WAAW,GAAGb,EAAE,CACf,6EADe,CAAhB;AAGA;;AAED,SACC,cAAC,uBAAD;AACC,IAAA,KAAK,EAAGW,QAAQ,EADjB;AAEC,IAAA,OAAO,EACN,cAAC,MAAD;AACC,MAAA,OAAO,EAAC,SADT;AAEC,MAAA,OAAO,EAAG,MAAMF,aAAa,CAAE,MAAF;AAF9B,OAIGT,EAAE,CAAE,MAAF,CAJL,CAHF;AAUC,IAAA,OAAO,EAAGa,WAAW,GAAG,yBAAKA,WAAL,CAAH,GAA4BE;AAVlD,IADD;AAcA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { Button } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport useEditedEntityRecord from '../use-edited-entity-record';\nimport { unlock } from '../../private-apis';\nimport { store as editSiteStore } from '../../store';\n\nexport default function SidebarNavigationScreenTemplate() {\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\tconst { getDescription, getTitle, record } = useEditedEntityRecord();\n\tlet description = getDescription();\n\tif ( ! description && record.is_custom ) {\n\t\tdescription = __(\n\t\t\t'This is a custom template that can be applied manually to any Post or Page.'\n\t\t);\n\t}\n\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\ttitle={ getTitle() }\n\t\t\tactions={\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tonClick={ () => setCanvasMode( 'edit' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t\tcontent={ description ? <p>{ description }</p> : undefined }\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-template/index.js"],"names":["__","sprintf","useDispatch","pencil","__experimentalUseNavigator","useNavigator","SidebarNavigationScreen","useEditedEntityRecord","unlock","store","editSiteStore","SidebarButton","SidebarNavigationScreenTemplate","params","postType","postId","setCanvasMode","getDescription","getTitle","record","description","type","is_custom"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,WAAT,QAA4B,iBAA5B;AACA,SAASC,MAAT,QAAuB,kBAAvB;AACA,SAASC,0BAA0B,IAAIC,YAAvC,QAA2D,uBAA3D;AAEA;AACA;AACA;;AACA,OAAOC,uBAAP,MAAoC,8BAApC;AACA,OAAOC,qBAAP,MAAkC,6BAAlC;AACA,SAASC,MAAT,QAAuB,oBAAvB;AACA,SAASC,KAAK,IAAIC,aAAlB,QAAuC,aAAvC;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AAEA,eAAe,SAASC,+BAAT,GAA2C;AACzD,QAAM;AAAEC,IAAAA;AAAF,MAAaR,YAAY,EAA/B;AACA,QAAM;AAAES,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAAuBF,MAA7B;AACA,QAAM;AAAEG,IAAAA;AAAF,MAAoBR,MAAM,CAAEN,WAAW,CAAEQ,aAAF,CAAb,CAAhC;AACA,QAAM;AAAEO,IAAAA,cAAF;AAAkBC,IAAAA,QAAlB;AAA4BC,IAAAA;AAA5B,MAAuCZ,qBAAqB,CACjEO,QADiE,EAEjEC,MAFiE,CAAlE;AAIA,MAAIK,WAAW,GAAGH,cAAc,EAAhC;;AACA,MAAK,CAAEG,WAAP,EAAqB;AACpB,QAAKD,MAAM,CAACE,IAAP,KAAgB,aAAhB,IAAiCF,MAAM,CAACG,SAA7C,EAAyD;AACxDF,MAAAA,WAAW,GAAGpB,EAAE,CACf,6EADe,CAAhB;AAGA,KAJD,MAIO,IAAKmB,MAAM,CAACE,IAAP,KAAgB,kBAArB,EAA0C;AAChDD,MAAAA,WAAW,GAAGnB,OAAO,EACpB;AACAD,MAAAA,EAAE,CAAE,gCAAF,CAFkB,EAGpBkB,QAAQ,EAHY,CAArB;AAKA;AACD;;AAED,SACC,cAAC,uBAAD;AACC,IAAA,KAAK,EAAGA,QAAQ,EADjB;AAEC,IAAA,OAAO,EACN,cAAC,aAAD;AACC,MAAA,OAAO,EAAG,MAAMF,aAAa,CAAE,MAAF,CAD9B;AAEC,MAAA,KAAK,EAAGhB,EAAE,CAAE,MAAF,CAFX;AAGC,MAAA,IAAI,EAAGG;AAHR,MAHF;AASC,IAAA,WAAW,EAAGiB;AATf,IADD;AAaA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { pencil } from '@wordpress/icons';\nimport { __experimentalUseNavigator as useNavigator } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport useEditedEntityRecord from '../use-edited-entity-record';\nimport { unlock } from '../../private-apis';\nimport { store as editSiteStore } from '../../store';\nimport SidebarButton from '../sidebar-button';\n\nexport default function SidebarNavigationScreenTemplate() {\n\tconst { params } = useNavigator();\n\tconst { postType, postId } = params;\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\tconst { getDescription, getTitle, record } = useEditedEntityRecord(\n\t\tpostType,\n\t\tpostId\n\t);\n\tlet description = getDescription();\n\tif ( ! description ) {\n\t\tif ( record.type === 'wp_template' && record.is_custom ) {\n\t\t\tdescription = __(\n\t\t\t\t'This is a custom template that can be applied manually to any Post or Page.'\n\t\t\t);\n\t\t} else if ( record.type === 'wp_template_part' ) {\n\t\t\tdescription = sprintf(\n\t\t\t\t// translators: %s: template part title e.g: \"Header\".\n\t\t\t\t__( 'This is your %s template part.' ),\n\t\t\t\tgetTitle()\n\t\t\t);\n\t\t}\n\t}\n\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\ttitle={ getTitle() }\n\t\t\tactions={\n\t\t\t\t<SidebarButton\n\t\t\t\t\tonClick={ () => setCanvasMode( 'edit' ) }\n\t\t\t\t\tlabel={ __( 'Edit' ) }\n\t\t\t\t\ticon={ pencil }\n\t\t\t\t/>\n\t\t\t}\n\t\t\tdescription={ description }\n\t\t/>\n\t);\n}\n"]}
@@ -7,6 +7,7 @@ import { createElement, Fragment } from "@wordpress/element";
7
7
  import { __experimentalItemGroup as ItemGroup, __experimentalItem as Item, __experimentalUseNavigator as useNavigator } from '@wordpress/components';
8
8
  import { __ } from '@wordpress/i18n';
9
9
  import { useEntityRecords } from '@wordpress/core-data';
10
+ import { useSelect } from '@wordpress/data';
10
11
  import { decodeEntities } from '@wordpress/html-entities';
11
12
  import { useViewportMatch } from '@wordpress/compose';
12
13
  /**
@@ -17,13 +18,16 @@ import SidebarNavigationScreen from '../sidebar-navigation-screen';
17
18
  import { useLink } from '../routes/link';
18
19
  import SidebarNavigationItem from '../sidebar-navigation-item';
19
20
  import AddNewTemplate from '../add-new-template';
21
+ import { store as editSiteStore } from '../../store';
22
+ import SidebarButton from '../sidebar-button';
20
23
  const config = {
21
24
  wp_template: {
22
25
  labels: {
23
26
  title: __('Templates'),
24
27
  loading: __('Loading templates'),
25
28
  notFound: __('No templates found'),
26
- manage: __('Manage all templates')
29
+ manage: __('Manage all templates'),
30
+ description: __('Express the layout of your site with templates.')
27
31
  }
28
32
  },
29
33
  wp_template_part: {
@@ -31,7 +35,8 @@ const config = {
31
35
  title: __('Template parts'),
32
36
  loading: __('Loading template parts'),
33
37
  notFound: __('No template parts found'),
34
- manage: __('Manage all template parts')
38
+ manage: __('Manage all template parts'),
39
+ description: __('Template Parts are small pieces of a layout that can be reused across multiple templates and always appear the same way. Common template parts include the site header, footer, or sidebar.')
35
40
  }
36
41
  }
37
42
  };
@@ -56,24 +61,33 @@ export default function SidebarNavigationScreenTemplates() {
56
61
  }
57
62
  } = useNavigator();
58
63
  const isMobileViewport = useViewportMatch('medium', '<');
64
+ const isTemplatePartsMode = useSelect(select => {
65
+ const settings = select(editSiteStore).getSettings();
66
+ return !!settings.supportsTemplatePartsMode;
67
+ }, []);
59
68
  const {
60
69
  records: templates,
61
70
  isResolving: isLoading
62
71
  } = useEntityRecords('postType', postType, {
63
72
  per_page: -1
64
73
  });
74
+ const sortedTemplates = templates ? [...templates] : [];
75
+ sortedTemplates.sort((a, b) => a.slug.localeCompare(b.slug));
65
76
  const browseAllLink = useLink({
66
77
  path: '/' + postType + '/all'
67
78
  });
79
+ const canCreate = !isMobileViewport && !isTemplatePartsMode;
68
80
  return createElement(SidebarNavigationScreen, {
81
+ isRoot: isTemplatePartsMode,
69
82
  title: config[postType].labels.title,
70
- actions: !isMobileViewport && createElement(AddNewTemplate, {
83
+ description: config[postType].labels.description,
84
+ actions: canCreate && createElement(AddNewTemplate, {
71
85
  templateType: postType,
72
86
  toggleProps: {
73
- className: 'edit-site-sidebar-navigation-screen-templates__add-button'
87
+ as: SidebarButton
74
88
  }
75
89
  }),
76
- content: createElement(Fragment, null, isLoading && config[postType].labels.loading, !isLoading && createElement(ItemGroup, null, !(templates !== null && templates !== void 0 && templates.length) && createElement(Item, null, config[postType].labels.notFound), (templates !== null && templates !== void 0 ? templates : []).map(template => {
90
+ content: createElement(Fragment, null, isLoading && config[postType].labels.loading, !isLoading && createElement(ItemGroup, null, !(templates !== null && templates !== void 0 && templates.length) && createElement(Item, null, config[postType].labels.notFound), sortedTemplates.map(template => {
77
91
  var _template$title;
78
92
 
79
93
  return createElement(TemplateItem, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-templates/index.js"],"names":["__experimentalItemGroup","ItemGroup","__experimentalItem","Item","__experimentalUseNavigator","useNavigator","__","useEntityRecords","decodeEntities","useViewportMatch","SidebarNavigationScreen","useLink","SidebarNavigationItem","AddNewTemplate","config","wp_template","labels","title","loading","notFound","manage","wp_template_part","TemplateItem","postType","postId","props","linkInfo","SidebarNavigationScreenTemplates","params","isMobileViewport","records","templates","isResolving","isLoading","per_page","browseAllLink","path","className","length","map","template","id","rendered","slug"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalUseNavigator as useNavigator,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport { useLink } from '../routes/link';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport AddNewTemplate from '../add-new-template';\n\nconst config = {\n\twp_template: {\n\t\tlabels: {\n\t\t\ttitle: __( 'Templates' ),\n\t\t\tloading: __( 'Loading templates' ),\n\t\t\tnotFound: __( 'No templates found' ),\n\t\t\tmanage: __( 'Manage all templates' ),\n\t\t},\n\t},\n\twp_template_part: {\n\t\tlabels: {\n\t\t\ttitle: __( 'Template parts' ),\n\t\t\tloading: __( 'Loading template parts' ),\n\t\t\tnotFound: __( 'No template parts found' ),\n\t\t\tmanage: __( 'Manage all template parts' ),\n\t\t},\n\t},\n};\n\nconst TemplateItem = ( { postType, postId, ...props } ) => {\n\tconst linkInfo = useLink( {\n\t\tpostType,\n\t\tpostId,\n\t} );\n\treturn <SidebarNavigationItem { ...linkInfo } { ...props } />;\n};\n\nexport default function SidebarNavigationScreenTemplates() {\n\tconst {\n\t\tparams: { postType },\n\t} = useNavigator();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\n\tconst { records: templates, isResolving: isLoading } = useEntityRecords(\n\t\t'postType',\n\t\tpostType,\n\t\t{\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\n\tconst browseAllLink = useLink( {\n\t\tpath: '/' + postType + '/all',\n\t} );\n\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\ttitle={ config[ postType ].labels.title }\n\t\t\tactions={\n\t\t\t\t! isMobileViewport && (\n\t\t\t\t\t<AddNewTemplate\n\t\t\t\t\t\ttemplateType={ postType }\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\t'edit-site-sidebar-navigation-screen-templates__add-button',\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ isLoading && config[ postType ].labels.loading }\n\t\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t\t{ ! templates?.length && (\n\t\t\t\t\t\t\t\t<Item>\n\t\t\t\t\t\t\t\t\t{ config[ postType ].labels.notFound }\n\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ ( templates ?? [] ).map( ( template ) => (\n\t\t\t\t\t\t\t\t<TemplateItem\n\t\t\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\t\t\tpostId={ template.id }\n\t\t\t\t\t\t\t\t\tkey={ template.id }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\t\t\ttemplate.title?.rendered ||\n\t\t\t\t\t\t\t\t\t\t\ttemplate.slug\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</TemplateItem>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t{ ! isMobileViewport && (\n\t\t\t\t\t\t\t\t<SidebarNavigationItem\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-templates__see-all\"\n\t\t\t\t\t\t\t\t\t{ ...browseAllLink }\n\t\t\t\t\t\t\t\t\tchildren={\n\t\t\t\t\t\t\t\t\t\tconfig[ postType ].labels.manage\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</ItemGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t}\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-templates/index.js"],"names":["__experimentalItemGroup","ItemGroup","__experimentalItem","Item","__experimentalUseNavigator","useNavigator","__","useEntityRecords","useSelect","decodeEntities","useViewportMatch","SidebarNavigationScreen","useLink","SidebarNavigationItem","AddNewTemplate","store","editSiteStore","SidebarButton","config","wp_template","labels","title","loading","notFound","manage","description","wp_template_part","TemplateItem","postType","postId","props","linkInfo","SidebarNavigationScreenTemplates","params","isMobileViewport","isTemplatePartsMode","select","settings","getSettings","supportsTemplatePartsMode","records","templates","isResolving","isLoading","per_page","sortedTemplates","sort","a","b","slug","localeCompare","browseAllLink","path","canCreate","as","length","map","template","id","rendered"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalUseNavigator as useNavigator,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport { useLink } from '../routes/link';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport AddNewTemplate from '../add-new-template';\nimport { store as editSiteStore } from '../../store';\nimport SidebarButton from '../sidebar-button';\n\nconst config = {\n\twp_template: {\n\t\tlabels: {\n\t\t\ttitle: __( 'Templates' ),\n\t\t\tloading: __( 'Loading templates' ),\n\t\t\tnotFound: __( 'No templates found' ),\n\t\t\tmanage: __( 'Manage all templates' ),\n\t\t\tdescription: __(\n\t\t\t\t'Express the layout of your site with templates.'\n\t\t\t),\n\t\t},\n\t},\n\twp_template_part: {\n\t\tlabels: {\n\t\t\ttitle: __( 'Template parts' ),\n\t\t\tloading: __( 'Loading template parts' ),\n\t\t\tnotFound: __( 'No template parts found' ),\n\t\t\tmanage: __( 'Manage all template parts' ),\n\t\t\tdescription: __(\n\t\t\t\t'Template Parts are small pieces of a layout that can be reused across multiple templates and always appear the same way. Common template parts include the site header, footer, or sidebar.'\n\t\t\t),\n\t\t},\n\t},\n};\n\nconst TemplateItem = ( { postType, postId, ...props } ) => {\n\tconst linkInfo = useLink( {\n\t\tpostType,\n\t\tpostId,\n\t} );\n\treturn <SidebarNavigationItem { ...linkInfo } { ...props } />;\n};\n\nexport default function SidebarNavigationScreenTemplates() {\n\tconst {\n\t\tparams: { postType },\n\t} = useNavigator();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isTemplatePartsMode = useSelect( ( select ) => {\n\t\tconst settings = select( editSiteStore ).getSettings();\n\n\t\treturn !! settings.supportsTemplatePartsMode;\n\t}, [] );\n\n\tconst { records: templates, isResolving: isLoading } = useEntityRecords(\n\t\t'postType',\n\t\tpostType,\n\t\t{\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\tconst sortedTemplates = templates ? [ ...templates ] : [];\n\tsortedTemplates.sort( ( a, b ) => a.slug.localeCompare( b.slug ) );\n\n\tconst browseAllLink = useLink( {\n\t\tpath: '/' + postType + '/all',\n\t} );\n\n\tconst canCreate = ! isMobileViewport && ! isTemplatePartsMode;\n\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\tisRoot={ isTemplatePartsMode }\n\t\t\ttitle={ config[ postType ].labels.title }\n\t\t\tdescription={ config[ postType ].labels.description }\n\t\t\tactions={\n\t\t\t\tcanCreate && (\n\t\t\t\t\t<AddNewTemplate\n\t\t\t\t\t\ttemplateType={ postType }\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\tas: SidebarButton,\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ isLoading && config[ postType ].labels.loading }\n\t\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t\t{ ! templates?.length && (\n\t\t\t\t\t\t\t\t<Item>\n\t\t\t\t\t\t\t\t\t{ config[ postType ].labels.notFound }\n\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ sortedTemplates.map( ( template ) => (\n\t\t\t\t\t\t\t\t<TemplateItem\n\t\t\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\t\t\tpostId={ template.id }\n\t\t\t\t\t\t\t\t\tkey={ template.id }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\t\t\ttemplate.title?.rendered ||\n\t\t\t\t\t\t\t\t\t\t\ttemplate.slug\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</TemplateItem>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t{ ! isMobileViewport && (\n\t\t\t\t\t\t\t\t<SidebarNavigationItem\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-templates__see-all\"\n\t\t\t\t\t\t\t\t\t{ ...browseAllLink }\n\t\t\t\t\t\t\t\t\tchildren={\n\t\t\t\t\t\t\t\t\t\tconfig[ postType ].labels.manage\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</ItemGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t}\n\t\t/>\n\t);\n}\n"]}
@@ -12,10 +12,12 @@ import { __experimentalUseNavigator as useNavigator } from '@wordpress/component
12
12
  import SidebarNavigationScreen from '../sidebar-navigation-screen';
13
13
  const config = {
14
14
  wp_template: {
15
- title: __('All templates')
15
+ title: __('All templates'),
16
+ description: __('Create new templates, or reset any customizations made to the templates supplied by your theme.')
16
17
  },
17
18
  wp_template_part: {
18
- title: __('All template parts')
19
+ title: __('All template parts'),
20
+ description: __('Create new template parts, or reset any customisations made to the template parts supplied by your theme.')
19
21
  }
20
22
  };
21
23
  export default function SidebarNavigationScreenTemplatesBrowse() {
@@ -25,7 +27,8 @@ export default function SidebarNavigationScreenTemplatesBrowse() {
25
27
  }
26
28
  } = useNavigator();
27
29
  return createElement(SidebarNavigationScreen, {
28
- title: config[postType].title
30
+ title: config[postType].title,
31
+ description: config[postType].description
29
32
  });
30
33
  }
31
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-templates-browse/index.js"],"names":["__","__experimentalUseNavigator","useNavigator","SidebarNavigationScreen","config","wp_template","title","wp_template_part","SidebarNavigationScreenTemplatesBrowse","params","postType"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,0BAA0B,IAAIC,YAAvC,QAA2D,uBAA3D;AAEA;AACA;AACA;;AACA,OAAOC,uBAAP,MAAoC,8BAApC;AAEA,MAAMC,MAAM,GAAG;AACdC,EAAAA,WAAW,EAAE;AACZC,IAAAA,KAAK,EAAEN,EAAE,CAAE,eAAF;AADG,GADC;AAIdO,EAAAA,gBAAgB,EAAE;AACjBD,IAAAA,KAAK,EAAEN,EAAE,CAAE,oBAAF;AADQ;AAJJ,CAAf;AASA,eAAe,SAASQ,sCAAT,GAAkD;AAChE,QAAM;AACLC,IAAAA,MAAM,EAAE;AAAEC,MAAAA;AAAF;AADH,MAEFR,YAAY,EAFhB;AAGA,SAAO,cAAC,uBAAD;AAAyB,IAAA,KAAK,EAAGE,MAAM,CAAEM,QAAF,CAAN,CAAmBJ;AAApD,IAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalUseNavigator as useNavigator } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\n\nconst config = {\n\twp_template: {\n\t\ttitle: __( 'All templates' ),\n\t},\n\twp_template_part: {\n\t\ttitle: __( 'All template parts' ),\n\t},\n};\n\nexport default function SidebarNavigationScreenTemplatesBrowse() {\n\tconst {\n\t\tparams: { postType },\n\t} = useNavigator();\n\treturn <SidebarNavigationScreen title={ config[ postType ].title } />;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-templates-browse/index.js"],"names":["__","__experimentalUseNavigator","useNavigator","SidebarNavigationScreen","config","wp_template","title","description","wp_template_part","SidebarNavigationScreenTemplatesBrowse","params","postType"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,0BAA0B,IAAIC,YAAvC,QAA2D,uBAA3D;AAEA;AACA;AACA;;AACA,OAAOC,uBAAP,MAAoC,8BAApC;AAEA,MAAMC,MAAM,GAAG;AACdC,EAAAA,WAAW,EAAE;AACZC,IAAAA,KAAK,EAAEN,EAAE,CAAE,eAAF,CADG;AAEZO,IAAAA,WAAW,EAAEP,EAAE,CACd,iGADc;AAFH,GADC;AAOdQ,EAAAA,gBAAgB,EAAE;AACjBF,IAAAA,KAAK,EAAEN,EAAE,CAAE,oBAAF,CADQ;AAEjBO,IAAAA,WAAW,EAAEP,EAAE,CACd,2GADc;AAFE;AAPJ,CAAf;AAeA,eAAe,SAASS,sCAAT,GAAkD;AAChE,QAAM;AACLC,IAAAA,MAAM,EAAE;AAAEC,MAAAA;AAAF;AADH,MAEFT,YAAY,EAFhB;AAGA,SACC,cAAC,uBAAD;AACC,IAAA,KAAK,EAAGE,MAAM,CAAEO,QAAF,CAAN,CAAmBL,KAD5B;AAEC,IAAA,WAAW,EAAGF,MAAM,CAAEO,QAAF,CAAN,CAAmBJ;AAFlC,IADD;AAMA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalUseNavigator as useNavigator } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\n\nconst config = {\n\twp_template: {\n\t\ttitle: __( 'All templates' ),\n\t\tdescription: __(\n\t\t\t'Create new templates, or reset any customizations made to the templates supplied by your theme.'\n\t\t),\n\t},\n\twp_template_part: {\n\t\ttitle: __( 'All template parts' ),\n\t\tdescription: __(\n\t\t\t'Create new template parts, or reset any customisations made to the template parts supplied by your theme.'\n\t\t),\n\t},\n};\n\nexport default function SidebarNavigationScreenTemplatesBrowse() {\n\tconst {\n\t\tparams: { postType },\n\t} = useNavigator();\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\ttitle={ config[ postType ].title }\n\t\t\tdescription={ config[ postType ].description }\n\t\t/>\n\t);\n}\n"]}
@@ -13,8 +13,9 @@ import { __, sprintf } from '@wordpress/i18n';
13
13
  import { getCategories, getBlockTypes, getBlockFromExample, createBlock } from '@wordpress/blocks';
14
14
  import { BlockPreview, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
15
15
  import { closeSmall } from '@wordpress/icons';
16
- import { useResizeObserver } from '@wordpress/compose';
16
+ import { useResizeObserver, useFocusOnMount, useFocusReturn, useMergeRefs } from '@wordpress/compose';
17
17
  import { useMemo, memo } from '@wordpress/element';
18
+ import { ESCAPE } from '@wordpress/keycodes';
18
19
  /**
19
20
  * Internal dependencies
20
21
  */
@@ -76,6 +77,8 @@ function StyleBook(_ref) {
76
77
  onClose
77
78
  } = _ref;
78
79
  const [resizeObserver, sizes] = useResizeObserver();
80
+ const focusOnMountRef = useFocusOnMount('firstElement');
81
+ const sectionFocusReturnRef = useFocusReturn();
79
82
  const [textColor] = useGlobalStyle('color.text');
80
83
  const [backgroundColor] = useGlobalStyle('color.background');
81
84
  const examples = useMemo(getExamples, []);
@@ -84,6 +87,14 @@ function StyleBook(_ref) {
84
87
  title: category.title,
85
88
  icon: category.icon
86
89
  })), [examples]);
90
+
91
+ function closeOnEscape(event) {
92
+ if (event.keyCode === ESCAPE && !event.defaultPrevented) {
93
+ event.preventDefault();
94
+ onClose();
95
+ }
96
+ }
97
+
87
98
  return createElement(StyleBookFill, null, createElement("section", {
88
99
  className: classnames('edit-site-style-book', {
89
100
  'is-wide': sizes.width > 600
@@ -92,12 +103,15 @@ function StyleBook(_ref) {
92
103
  color: textColor,
93
104
  background: backgroundColor
94
105
  },
95
- "aria-label": __('Style Book')
106
+ "aria-label": __('Style Book'),
107
+ onKeyDown: closeOnEscape,
108
+ ref: useMergeRefs([sectionFocusReturnRef, focusOnMountRef])
96
109
  }, resizeObserver, createElement(Button, {
97
110
  className: "edit-site-style-book__close-button",
98
111
  icon: closeSmall,
99
112
  label: __('Close Style Book'),
100
- onClick: onClose
113
+ onClick: onClose,
114
+ showTooltip: false
101
115
  }), createElement(TabPanel, {
102
116
  className: "edit-site-style-book__tab-panel",
103
117
  tabs: tabs
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/style-book/index.js"],"names":["classnames","Button","TabPanel","createSlotFill","__experimentalUseSlotFills","useSlotFills","__","sprintf","getCategories","getBlockTypes","getBlockFromExample","createBlock","BlockPreview","privateApis","blockEditorPrivateApis","closeSmall","useResizeObserver","useMemo","memo","unlock","useGlobalStyle","SLOT_FILL_NAME","Slot","StyleBookSlot","Fill","StyleBookFill","getExamples","headingsExample","name","title","category","blocks","content","level","otherExamples","filter","blockType","example","supports","inserter","map","StyleBook","isSelected","onSelect","onClose","resizeObserver","sizes","textColor","backgroundColor","examples","tabs","some","slug","icon","width","color","background","tab","Examples","Example","onClick","css","useHasStyleBook","fills","length"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tTabPanel,\n\tcreateSlotFill,\n\t__experimentalUseSlotFills as useSlotFills,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tgetCategories,\n\tgetBlockTypes,\n\tgetBlockFromExample,\n\tcreateBlock,\n} from '@wordpress/blocks';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { closeSmall } from '@wordpress/icons';\nimport { useResizeObserver } from '@wordpress/compose';\nimport { useMemo, memo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../private-apis';\n\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nconst SLOT_FILL_NAME = 'EditSiteStyleBook';\nconst { Slot: StyleBookSlot, Fill: StyleBookFill } =\n\tcreateSlotFill( SLOT_FILL_NAME );\n\nfunction getExamples() {\n\t// Use our own example for the Heading block so that we can show multiple\n\t// heading levels.\n\tconst headingsExample = {\n\t\tname: 'core/heading',\n\t\ttitle: __( 'Headings' ),\n\t\tcategory: 'text',\n\t\tblocks: [\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 1,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 2,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 3,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 4,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 5,\n\t\t\t} ),\n\t\t],\n\t};\n\n\tconst otherExamples = getBlockTypes()\n\t\t.filter( ( blockType ) => {\n\t\t\tconst { name, example, supports } = blockType;\n\t\t\treturn (\n\t\t\t\tname !== 'core/heading' &&\n\t\t\t\t!! example &&\n\t\t\t\tsupports.inserter !== false\n\t\t\t);\n\t\t} )\n\t\t.map( ( blockType ) => ( {\n\t\t\tname: blockType.name,\n\t\t\ttitle: blockType.title,\n\t\t\tcategory: blockType.category,\n\t\t\tblocks: getBlockFromExample( blockType.name, blockType.example ),\n\t\t} ) );\n\n\treturn [ headingsExample, ...otherExamples ];\n}\n\nfunction StyleBook( { isSelected, onSelect, onClose } ) {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ textColor ] = useGlobalStyle( 'color.text' );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst examples = useMemo( getExamples, [] );\n\tconst tabs = useMemo(\n\t\t() =>\n\t\t\tgetCategories()\n\t\t\t\t.filter( ( category ) =>\n\t\t\t\t\texamples.some(\n\t\t\t\t\t\t( example ) => example.category === category.slug\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.map( ( category ) => ( {\n\t\t\t\t\tname: category.slug,\n\t\t\t\t\ttitle: category.title,\n\t\t\t\t\ticon: category.icon,\n\t\t\t\t} ) ),\n\t\t[ examples ]\n\t);\n\treturn (\n\t\t<StyleBookFill>\n\t\t\t<section\n\t\t\t\tclassName={ classnames( 'edit-site-style-book', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t} ) }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t\tbackground: backgroundColor,\n\t\t\t\t} }\n\t\t\t\taria-label={ __( 'Style Book' ) }\n\t\t\t>\n\t\t\t\t{ resizeObserver }\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"edit-site-style-book__close-button\"\n\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\tlabel={ __( 'Close Style Book' ) }\n\t\t\t\t\tonClick={ onClose }\n\t\t\t\t/>\n\t\t\t\t<TabPanel\n\t\t\t\t\tclassName=\"edit-site-style-book__tab-panel\"\n\t\t\t\t\ttabs={ tabs }\n\t\t\t\t>\n\t\t\t\t\t{ ( tab ) => (\n\t\t\t\t\t\t<Examples\n\t\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\t\tcategory={ tab.name }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TabPanel>\n\t\t\t</section>\n\t\t</StyleBookFill>\n\t);\n}\n\nconst Examples = memo( ( { examples, category, isSelected, onSelect } ) => (\n\t<div className=\"edit-site-style-book__examples\">\n\t\t{ examples\n\t\t\t.filter( ( example ) => example.category === category )\n\t\t\t.map( ( example ) => (\n\t\t\t\t<Example\n\t\t\t\t\tkey={ example.name }\n\t\t\t\t\ttitle={ example.title }\n\t\t\t\t\tblocks={ example.blocks }\n\t\t\t\t\tisSelected={ isSelected( example.name ) }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonSelect( example.name );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) ) }\n\t</div>\n) );\n\nconst Example = memo( ( { title, blocks, isSelected, onClick } ) => (\n\t<button\n\t\tclassName={ classnames( 'edit-site-style-book__example', {\n\t\t\t'is-selected': isSelected,\n\t\t} ) }\n\t\taria-label={ sprintf(\n\t\t\t// translators: %s: Title of a block, e.g. Heading.\n\t\t\t__( 'Open %s styles in Styles panel' ),\n\t\t\ttitle\n\t\t) }\n\t\tonClick={ onClick }\n\t>\n\t\t<span className=\"edit-site-style-book__example-title\">{ title }</span>\n\t\t<div className=\"edit-site-style-book__example-preview\">\n\t\t\t<BlockPreview\n\t\t\t\tblocks={ blocks }\n\t\t\t\tviewportWidth={ 0 }\n\t\t\t\tadditionalStyles={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tcss:\n\t\t\t\t\t\t\t'.wp-block:first-child { margin-top: 0; }' +\n\t\t\t\t\t\t\t'.wp-block:last-child { margin-bottom: 0; }',\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t</div>\n\t</button>\n) );\n\nfunction useHasStyleBook() {\n\tconst fills = useSlotFills( SLOT_FILL_NAME );\n\treturn !! fills?.length;\n}\n\nStyleBook.Slot = StyleBookSlot;\nexport default StyleBook;\nexport { useHasStyleBook };\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/style-book/index.js"],"names":["classnames","Button","TabPanel","createSlotFill","__experimentalUseSlotFills","useSlotFills","__","sprintf","getCategories","getBlockTypes","getBlockFromExample","createBlock","BlockPreview","privateApis","blockEditorPrivateApis","closeSmall","useResizeObserver","useFocusOnMount","useFocusReturn","useMergeRefs","useMemo","memo","ESCAPE","unlock","useGlobalStyle","SLOT_FILL_NAME","Slot","StyleBookSlot","Fill","StyleBookFill","getExamples","headingsExample","name","title","category","blocks","content","level","otherExamples","filter","blockType","example","supports","inserter","map","StyleBook","isSelected","onSelect","onClose","resizeObserver","sizes","focusOnMountRef","sectionFocusReturnRef","textColor","backgroundColor","examples","tabs","some","slug","icon","closeOnEscape","event","keyCode","defaultPrevented","preventDefault","width","color","background","tab","Examples","Example","onClick","css","useHasStyleBook","fills","length"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tTabPanel,\n\tcreateSlotFill,\n\t__experimentalUseSlotFills as useSlotFills,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tgetCategories,\n\tgetBlockTypes,\n\tgetBlockFromExample,\n\tcreateBlock,\n} from '@wordpress/blocks';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { closeSmall } from '@wordpress/icons';\nimport {\n\tuseResizeObserver,\n\tuseFocusOnMount,\n\tuseFocusReturn,\n\tuseMergeRefs,\n} from '@wordpress/compose';\nimport { useMemo, memo } from '@wordpress/element';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../private-apis';\n\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nconst SLOT_FILL_NAME = 'EditSiteStyleBook';\nconst { Slot: StyleBookSlot, Fill: StyleBookFill } =\n\tcreateSlotFill( SLOT_FILL_NAME );\n\nfunction getExamples() {\n\t// Use our own example for the Heading block so that we can show multiple\n\t// heading levels.\n\tconst headingsExample = {\n\t\tname: 'core/heading',\n\t\ttitle: __( 'Headings' ),\n\t\tcategory: 'text',\n\t\tblocks: [\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 1,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 2,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 3,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 4,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 5,\n\t\t\t} ),\n\t\t],\n\t};\n\n\tconst otherExamples = getBlockTypes()\n\t\t.filter( ( blockType ) => {\n\t\t\tconst { name, example, supports } = blockType;\n\t\t\treturn (\n\t\t\t\tname !== 'core/heading' &&\n\t\t\t\t!! example &&\n\t\t\t\tsupports.inserter !== false\n\t\t\t);\n\t\t} )\n\t\t.map( ( blockType ) => ( {\n\t\t\tname: blockType.name,\n\t\t\ttitle: blockType.title,\n\t\t\tcategory: blockType.category,\n\t\t\tblocks: getBlockFromExample( blockType.name, blockType.example ),\n\t\t} ) );\n\n\treturn [ headingsExample, ...otherExamples ];\n}\n\nfunction StyleBook( { isSelected, onSelect, onClose } ) {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst focusOnMountRef = useFocusOnMount( 'firstElement' );\n\tconst sectionFocusReturnRef = useFocusReturn();\n\n\tconst [ textColor ] = useGlobalStyle( 'color.text' );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst examples = useMemo( getExamples, [] );\n\tconst tabs = useMemo(\n\t\t() =>\n\t\t\tgetCategories()\n\t\t\t\t.filter( ( category ) =>\n\t\t\t\t\texamples.some(\n\t\t\t\t\t\t( example ) => example.category === category.slug\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.map( ( category ) => ( {\n\t\t\t\t\tname: category.slug,\n\t\t\t\t\ttitle: category.title,\n\t\t\t\t\ticon: category.icon,\n\t\t\t\t} ) ),\n\t\t[ examples ]\n\t);\n\n\tfunction closeOnEscape( event ) {\n\t\tif ( event.keyCode === ESCAPE && ! event.defaultPrevented ) {\n\t\t\tevent.preventDefault();\n\t\t\tonClose();\n\t\t}\n\t}\n\n\treturn (\n\t\t<StyleBookFill>\n\t\t\t{ /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */ }\n\t\t\t<section\n\t\t\t\tclassName={ classnames( 'edit-site-style-book', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t} ) }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t\tbackground: backgroundColor,\n\t\t\t\t} }\n\t\t\t\taria-label={ __( 'Style Book' ) }\n\t\t\t\tonKeyDown={ closeOnEscape }\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\tsectionFocusReturnRef,\n\t\t\t\t\tfocusOnMountRef,\n\t\t\t\t] ) }\n\t\t\t>\n\t\t\t\t{ resizeObserver }\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"edit-site-style-book__close-button\"\n\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\tlabel={ __( 'Close Style Book' ) }\n\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t/>\n\t\t\t\t<TabPanel\n\t\t\t\t\tclassName=\"edit-site-style-book__tab-panel\"\n\t\t\t\t\ttabs={ tabs }\n\t\t\t\t>\n\t\t\t\t\t{ ( tab ) => (\n\t\t\t\t\t\t<Examples\n\t\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\t\tcategory={ tab.name }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TabPanel>\n\t\t\t</section>\n\t\t</StyleBookFill>\n\t);\n}\n\nconst Examples = memo( ( { examples, category, isSelected, onSelect } ) => (\n\t<div className=\"edit-site-style-book__examples\">\n\t\t{ examples\n\t\t\t.filter( ( example ) => example.category === category )\n\t\t\t.map( ( example ) => (\n\t\t\t\t<Example\n\t\t\t\t\tkey={ example.name }\n\t\t\t\t\ttitle={ example.title }\n\t\t\t\t\tblocks={ example.blocks }\n\t\t\t\t\tisSelected={ isSelected( example.name ) }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonSelect( example.name );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) ) }\n\t</div>\n) );\n\nconst Example = memo( ( { title, blocks, isSelected, onClick } ) => (\n\t<button\n\t\tclassName={ classnames( 'edit-site-style-book__example', {\n\t\t\t'is-selected': isSelected,\n\t\t} ) }\n\t\taria-label={ sprintf(\n\t\t\t// translators: %s: Title of a block, e.g. Heading.\n\t\t\t__( 'Open %s styles in Styles panel' ),\n\t\t\ttitle\n\t\t) }\n\t\tonClick={ onClick }\n\t>\n\t\t<span className=\"edit-site-style-book__example-title\">{ title }</span>\n\t\t<div className=\"edit-site-style-book__example-preview\">\n\t\t\t<BlockPreview\n\t\t\t\tblocks={ blocks }\n\t\t\t\tviewportWidth={ 0 }\n\t\t\t\tadditionalStyles={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tcss:\n\t\t\t\t\t\t\t'.wp-block:first-child { margin-top: 0; }' +\n\t\t\t\t\t\t\t'.wp-block:last-child { margin-bottom: 0; }',\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t</div>\n\t</button>\n) );\n\nfunction useHasStyleBook() {\n\tconst fills = useSlotFills( SLOT_FILL_NAME );\n\treturn !! fills?.length;\n}\n\nStyleBook.Slot = StyleBookSlot;\nexport default StyleBook;\nexport { useHasStyleBook };\n"]}
@@ -19,7 +19,8 @@ export default function useInitEditedEntityFromURL() {
19
19
  } = useLocation();
20
20
  const {
21
21
  isRequestingSite,
22
- homepageId
22
+ homepageId,
23
+ url
23
24
  } = useSelect(select => {
24
25
  const {
25
26
  getSite
@@ -27,7 +28,8 @@ export default function useInitEditedEntityFromURL() {
27
28
  const siteData = getSite();
28
29
  return {
29
30
  isRequestingSite: !siteData,
30
- homepageId: (siteData === null || siteData === void 0 ? void 0 : siteData.show_on_front) === 'page' ? siteData.page_on_front : null
31
+ homepageId: (siteData === null || siteData === void 0 ? void 0 : siteData.show_on_front) === 'page' ? siteData.page_on_front : null,
32
+ url: siteData === null || siteData === void 0 ? void 0 : siteData.url
31
33
  };
32
34
  }, []);
33
35
  const {
@@ -36,9 +38,7 @@ export default function useInitEditedEntityFromURL() {
36
38
  setPage
37
39
  } = useDispatch(editSiteStore);
38
40
  useEffect(() => {
39
- if (postType && postId && // This is just a special case to support old WP versions that perform redirects.
40
- // This code should be removed when we minimum WP version becomes 6.2.
41
- postId !== 'none') {
41
+ if (postType && postId) {
42
42
  switch (postType) {
43
43
  case 'wp_template':
44
44
  setTemplate(postId);
@@ -70,9 +70,9 @@ export default function useInitEditedEntityFromURL() {
70
70
  });
71
71
  } else if (!isRequestingSite) {
72
72
  setPage({
73
- path: '/'
73
+ path: url
74
74
  });
75
75
  }
76
- }, [postId, postType, homepageId, isRequestingSite, setPage, setTemplate, setTemplatePart]);
76
+ }, [url, postId, postType, homepageId, isRequestingSite, setPage, setTemplate, setTemplatePart]);
77
77
  }
78
78
  //# sourceMappingURL=use-init-edited-entity-from-url.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/sync-state-with-url/use-init-edited-entity-from-url.js"],"names":["useEffect","useSelect","useDispatch","store","coreDataStore","useLocation","editSiteStore","useInitEditedEntityFromURL","params","postId","postType","isRequestingSite","homepageId","select","getSite","siteData","show_on_front","page_on_front","setTemplate","setTemplatePart","setPage","context","path"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,oBAA1B;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,KAAK,IAAIC,aAAlB,QAAuC,sBAAvC;AAEA;AACA;AACA;;AACA,SAASC,WAAT,QAA4B,WAA5B;AACA,SAASF,KAAK,IAAIG,aAAlB,QAAuC,aAAvC;AAEA,eAAe,SAASC,0BAAT,GAAsC;AACpD,QAAM;AAAEC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,MAAF;AAAUC,MAAAA;AAAV,QAAuB;AAAjC,MAAwCL,WAAW,EAAzD;AACA,QAAM;AAAEM,IAAAA,gBAAF;AAAoBC,IAAAA;AAApB,MAAmCX,SAAS,CAAIY,MAAF,IAAc;AACjE,UAAM;AAAEC,MAAAA;AAAF,QAAcD,MAAM,CAAET,aAAF,CAA1B;AACA,UAAMW,QAAQ,GAAGD,OAAO,EAAxB;AAEA,WAAO;AACNH,MAAAA,gBAAgB,EAAE,CAAEI,QADd;AAENH,MAAAA,UAAU,EACT,CAAAG,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEC,aAAV,MAA4B,MAA5B,GACGD,QAAQ,CAACE,aADZ,GAEG;AALE,KAAP;AAOA,GAXiD,EAW/C,EAX+C,CAAlD;AAaA,QAAM;AAAEC,IAAAA,WAAF;AAAeC,IAAAA,eAAf;AAAgCC,IAAAA;AAAhC,MACLlB,WAAW,CAAEI,aAAF,CADZ;AAGAN,EAAAA,SAAS,CAAE,MAAM;AAChB,QACCU,QAAQ,IACRD,MADA,IAEA;AACA;AACAA,IAAAA,MAAM,KAAK,MALZ,EAME;AACD,cAASC,QAAT;AACC,aAAK,aAAL;AACCQ,UAAAA,WAAW,CAAET,MAAF,CAAX;AACA;;AACD,aAAK,kBAAL;AACCU,UAAAA,eAAe,CAAEV,MAAF,CAAf;AACA;;AACD;AACCW,UAAAA,OAAO,CAAE;AACRC,YAAAA,OAAO,EAAE;AAAEX,cAAAA,QAAF;AAAYD,cAAAA;AAAZ;AADD,WAAF,CAAP;AARF;;AAaA;AACA,KAtBe,CAwBhB;;;AACA,QAAKG,UAAL,EAAkB;AACjBQ,MAAAA,OAAO,CAAE;AACRC,QAAAA,OAAO,EAAE;AAAEX,UAAAA,QAAQ,EAAE,MAAZ;AAAoBD,UAAAA,MAAM,EAAEG;AAA5B;AADD,OAAF,CAAP;AAGA,KAJD,MAIO,IAAK,CAAED,gBAAP,EAA0B;AAChCS,MAAAA,OAAO,CAAE;AACRE,QAAAA,IAAI,EAAE;AADE,OAAF,CAAP;AAGA;AACD,GAlCQ,EAkCN,CACFb,MADE,EAEFC,QAFE,EAGFE,UAHE,EAIFD,gBAJE,EAKFS,OALE,EAMFF,WANE,EAOFC,eAPE,CAlCM,CAAT;AA2CA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { useLocation } from '../routes';\nimport { store as editSiteStore } from '../../store';\n\nexport default function useInitEditedEntityFromURL() {\n\tconst { params: { postId, postType } = {} } = useLocation();\n\tconst { isRequestingSite, homepageId } = useSelect( ( select ) => {\n\t\tconst { getSite } = select( coreDataStore );\n\t\tconst siteData = getSite();\n\n\t\treturn {\n\t\t\tisRequestingSite: ! siteData,\n\t\t\thomepageId:\n\t\t\t\tsiteData?.show_on_front === 'page'\n\t\t\t\t\t? siteData.page_on_front\n\t\t\t\t\t: null,\n\t\t};\n\t}, [] );\n\n\tconst { setTemplate, setTemplatePart, setPage } =\n\t\tuseDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tpostType &&\n\t\t\tpostId &&\n\t\t\t// This is just a special case to support old WP versions that perform redirects.\n\t\t\t// This code should be removed when we minimum WP version becomes 6.2.\n\t\t\tpostId !== 'none'\n\t\t) {\n\t\t\tswitch ( postType ) {\n\t\t\t\tcase 'wp_template':\n\t\t\t\t\tsetTemplate( postId );\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'wp_template_part':\n\t\t\t\t\tsetTemplatePart( postId );\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tsetPage( {\n\t\t\t\t\t\tcontext: { postType, postId },\n\t\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// In all other cases, we need to set the home page in the site editor view.\n\t\tif ( homepageId ) {\n\t\t\tsetPage( {\n\t\t\t\tcontext: { postType: 'page', postId: homepageId },\n\t\t\t} );\n\t\t} else if ( ! isRequestingSite ) {\n\t\t\tsetPage( {\n\t\t\t\tpath: '/',\n\t\t\t} );\n\t\t}\n\t}, [\n\t\tpostId,\n\t\tpostType,\n\t\thomepageId,\n\t\tisRequestingSite,\n\t\tsetPage,\n\t\tsetTemplate,\n\t\tsetTemplatePart,\n\t] );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/sync-state-with-url/use-init-edited-entity-from-url.js"],"names":["useEffect","useSelect","useDispatch","store","coreDataStore","useLocation","editSiteStore","useInitEditedEntityFromURL","params","postId","postType","isRequestingSite","homepageId","url","select","getSite","siteData","show_on_front","page_on_front","setTemplate","setTemplatePart","setPage","context","path"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,oBAA1B;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,KAAK,IAAIC,aAAlB,QAAuC,sBAAvC;AAEA;AACA;AACA;;AACA,SAASC,WAAT,QAA4B,WAA5B;AACA,SAASF,KAAK,IAAIG,aAAlB,QAAuC,aAAvC;AAEA,eAAe,SAASC,0BAAT,GAAsC;AACpD,QAAM;AAAEC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,MAAF;AAAUC,MAAAA;AAAV,QAAuB;AAAjC,MAAwCL,WAAW,EAAzD;AACA,QAAM;AAAEM,IAAAA,gBAAF;AAAoBC,IAAAA,UAApB;AAAgCC,IAAAA;AAAhC,MAAwCZ,SAAS,CAAIa,MAAF,IAAc;AACtE,UAAM;AAAEC,MAAAA;AAAF,QAAcD,MAAM,CAAEV,aAAF,CAA1B;AACA,UAAMY,QAAQ,GAAGD,OAAO,EAAxB;AAEA,WAAO;AACNJ,MAAAA,gBAAgB,EAAE,CAAEK,QADd;AAENJ,MAAAA,UAAU,EACT,CAAAI,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEC,aAAV,MAA4B,MAA5B,GACGD,QAAQ,CAACE,aADZ,GAEG,IALE;AAMNL,MAAAA,GAAG,EAAEG,QAAF,aAAEA,QAAF,uBAAEA,QAAQ,CAAEH;AANT,KAAP;AAQA,GAZsD,EAYpD,EAZoD,CAAvD;AAcA,QAAM;AAAEM,IAAAA,WAAF;AAAeC,IAAAA,eAAf;AAAgCC,IAAAA;AAAhC,MACLnB,WAAW,CAAEI,aAAF,CADZ;AAGAN,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAKU,QAAQ,IAAID,MAAjB,EAA0B;AACzB,cAASC,QAAT;AACC,aAAK,aAAL;AACCS,UAAAA,WAAW,CAAEV,MAAF,CAAX;AACA;;AACD,aAAK,kBAAL;AACCW,UAAAA,eAAe,CAAEX,MAAF,CAAf;AACA;;AACD;AACCY,UAAAA,OAAO,CAAE;AACRC,YAAAA,OAAO,EAAE;AAAEZ,cAAAA,QAAF;AAAYD,cAAAA;AAAZ;AADD,WAAF,CAAP;AARF;;AAaA;AACA,KAhBe,CAkBhB;;;AACA,QAAKG,UAAL,EAAkB;AACjBS,MAAAA,OAAO,CAAE;AACRC,QAAAA,OAAO,EAAE;AAAEZ,UAAAA,QAAQ,EAAE,MAAZ;AAAoBD,UAAAA,MAAM,EAAEG;AAA5B;AADD,OAAF,CAAP;AAGA,KAJD,MAIO,IAAK,CAAED,gBAAP,EAA0B;AAChCU,MAAAA,OAAO,CAAE;AACRE,QAAAA,IAAI,EAAEV;AADE,OAAF,CAAP;AAGA;AACD,GA5BQ,EA4BN,CACFA,GADE,EAEFJ,MAFE,EAGFC,QAHE,EAIFE,UAJE,EAKFD,gBALE,EAMFU,OANE,EAOFF,WAPE,EAQFC,eARE,CA5BM,CAAT;AAsCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { useLocation } from '../routes';\nimport { store as editSiteStore } from '../../store';\n\nexport default function useInitEditedEntityFromURL() {\n\tconst { params: { postId, postType } = {} } = useLocation();\n\tconst { isRequestingSite, homepageId, url } = useSelect( ( select ) => {\n\t\tconst { getSite } = select( coreDataStore );\n\t\tconst siteData = getSite();\n\n\t\treturn {\n\t\t\tisRequestingSite: ! siteData,\n\t\t\thomepageId:\n\t\t\t\tsiteData?.show_on_front === 'page'\n\t\t\t\t\t? siteData.page_on_front\n\t\t\t\t\t: null,\n\t\t\turl: siteData?.url,\n\t\t};\n\t}, [] );\n\n\tconst { setTemplate, setTemplatePart, setPage } =\n\t\tuseDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif ( postType && postId ) {\n\t\t\tswitch ( postType ) {\n\t\t\t\tcase 'wp_template':\n\t\t\t\t\tsetTemplate( postId );\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'wp_template_part':\n\t\t\t\t\tsetTemplatePart( postId );\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tsetPage( {\n\t\t\t\t\t\tcontext: { postType, postId },\n\t\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// In all other cases, we need to set the home page in the site editor view.\n\t\tif ( homepageId ) {\n\t\t\tsetPage( {\n\t\t\t\tcontext: { postType: 'page', postId: homepageId },\n\t\t\t} );\n\t\t} else if ( ! isRequestingSite ) {\n\t\t\tsetPage( {\n\t\t\t\tpath: url,\n\t\t\t} );\n\t\t}\n\t}, [\n\t\turl,\n\t\tpostId,\n\t\tpostType,\n\t\thomepageId,\n\t\tisRequestingSite,\n\t\tsetPage,\n\t\tsetTemplate,\n\t\tsetTemplatePart,\n\t] );\n}\n"]}
@@ -21,24 +21,40 @@ export default function useSyncCanvasModeWithURL() {
21
21
  } = unlock(useDispatch(editSiteStore));
22
22
  const currentCanvasMode = useRef(canvasMode);
23
23
  const {
24
- canvas: canvasInUrl = 'view'
24
+ canvas: canvasInUrl
25
25
  } = params;
26
26
  const currentCanvasInUrl = useRef(canvasInUrl);
27
+ const currentUrlParams = useRef(params);
28
+ useEffect(() => {
29
+ currentUrlParams.current = params;
30
+ }, [params]);
27
31
  useEffect(() => {
28
32
  currentCanvasMode.current = canvasMode;
29
33
 
30
- if (currentCanvasMode !== currentCanvasInUrl) {
31
- history.push({ ...params,
32
- canvas: canvasMode
34
+ if (canvasMode === 'init') {
35
+ return;
36
+ }
37
+
38
+ if (canvasMode === 'edit' && currentCanvasInUrl.current !== canvasMode) {
39
+ history.push({ ...currentUrlParams.current,
40
+ canvas: 'edit'
41
+ });
42
+ }
43
+
44
+ if (canvasMode === 'view' && currentCanvasInUrl.current !== undefined) {
45
+ history.push({ ...currentUrlParams.current,
46
+ canvas: undefined
33
47
  });
34
48
  }
35
- }, [canvasMode]);
49
+ }, [canvasMode, history]);
36
50
  useEffect(() => {
37
51
  currentCanvasInUrl.current = canvasInUrl;
38
52
 
39
- if (canvasInUrl !== currentCanvasMode.current) {
40
- setCanvasMode(canvasInUrl);
53
+ if (canvasInUrl === undefined && currentCanvasMode.current !== 'view') {
54
+ setCanvasMode('view');
55
+ } else if (canvasInUrl === 'edit' && currentCanvasMode.current !== 'edit') {
56
+ setCanvasMode('edit');
41
57
  }
42
- }, [canvasInUrl]);
58
+ }, [canvasInUrl, setCanvasMode]);
43
59
  }
44
60
  //# sourceMappingURL=use-sync-canvas-mode-with-url.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/sync-state-with-url/use-sync-canvas-mode-with-url.js"],"names":["useEffect","useRef","useSelect","useDispatch","store","editSiteStore","useLocation","useHistory","unlock","useSyncCanvasModeWithURL","history","params","canvasMode","select","getCanvasMode","setCanvasMode","currentCanvasMode","canvas","canvasInUrl","currentCanvasInUrl","current","push"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,EAAoBC,MAApB,QAAkC,oBAAlC;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,aAAlB,QAAuC,aAAvC;AACA,SAASC,WAAT,EAAsBC,UAAtB,QAAwC,WAAxC;AACA,SAASC,MAAT,QAAuB,oBAAvB;AAEA,eAAe,SAASC,wBAAT,GAAoC;AAClD,QAAMC,OAAO,GAAGH,UAAU,EAA1B;AACA,QAAM;AAAEI,IAAAA;AAAF,MAAaL,WAAW,EAA9B;AACA,QAAMM,UAAU,GAAGV,SAAS,CACzBW,MAAF,IAAcL,MAAM,CAAEK,MAAM,CAAER,aAAF,CAAR,CAAN,CAAkCS,aAAlC,EADa,EAE3B,EAF2B,CAA5B;AAIA,QAAM;AAAEC,IAAAA;AAAF,MAAoBP,MAAM,CAAEL,WAAW,CAAEE,aAAF,CAAb,CAAhC;AACA,QAAMW,iBAAiB,GAAGf,MAAM,CAAEW,UAAF,CAAhC;AACA,QAAM;AAAEK,IAAAA,MAAM,EAAEC,WAAW,GAAG;AAAxB,MAAmCP,MAAzC;AACA,QAAMQ,kBAAkB,GAAGlB,MAAM,CAAEiB,WAAF,CAAjC;AACAlB,EAAAA,SAAS,CAAE,MAAM;AAChBgB,IAAAA,iBAAiB,CAACI,OAAlB,GAA4BR,UAA5B;;AACA,QAAKI,iBAAiB,KAAKG,kBAA3B,EAAgD;AAC/CT,MAAAA,OAAO,CAACW,IAAR,CAAc,EACb,GAAGV,MADU;AAEbM,QAAAA,MAAM,EAAEL;AAFK,OAAd;AAIA;AACD,GARQ,EAQN,CAAEA,UAAF,CARM,CAAT;AAUAZ,EAAAA,SAAS,CAAE,MAAM;AAChBmB,IAAAA,kBAAkB,CAACC,OAAnB,GAA6BF,WAA7B;;AACA,QAAKA,WAAW,KAAKF,iBAAiB,CAACI,OAAvC,EAAiD;AAChDL,MAAAA,aAAa,CAAEG,WAAF,CAAb;AACA;AACD,GALQ,EAKN,CAAEA,WAAF,CALM,CAAT;AAMA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { useLocation, useHistory } from '../routes';\nimport { unlock } from '../../private-apis';\n\nexport default function useSyncCanvasModeWithURL() {\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\tconst canvasMode = useSelect(\n\t\t( select ) => unlock( select( editSiteStore ) ).getCanvasMode(),\n\t\t[]\n\t);\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\tconst currentCanvasMode = useRef( canvasMode );\n\tconst { canvas: canvasInUrl = 'view' } = params;\n\tconst currentCanvasInUrl = useRef( canvasInUrl );\n\tuseEffect( () => {\n\t\tcurrentCanvasMode.current = canvasMode;\n\t\tif ( currentCanvasMode !== currentCanvasInUrl ) {\n\t\t\thistory.push( {\n\t\t\t\t...params,\n\t\t\t\tcanvas: canvasMode,\n\t\t\t} );\n\t\t}\n\t}, [ canvasMode ] );\n\n\tuseEffect( () => {\n\t\tcurrentCanvasInUrl.current = canvasInUrl;\n\t\tif ( canvasInUrl !== currentCanvasMode.current ) {\n\t\t\tsetCanvasMode( canvasInUrl );\n\t\t}\n\t}, [ canvasInUrl ] );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/sync-state-with-url/use-sync-canvas-mode-with-url.js"],"names":["useEffect","useRef","useSelect","useDispatch","store","editSiteStore","useLocation","useHistory","unlock","useSyncCanvasModeWithURL","history","params","canvasMode","select","getCanvasMode","setCanvasMode","currentCanvasMode","canvas","canvasInUrl","currentCanvasInUrl","currentUrlParams","current","push","undefined"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,EAAoBC,MAApB,QAAkC,oBAAlC;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,aAAlB,QAAuC,aAAvC;AACA,SAASC,WAAT,EAAsBC,UAAtB,QAAwC,WAAxC;AACA,SAASC,MAAT,QAAuB,oBAAvB;AAEA,eAAe,SAASC,wBAAT,GAAoC;AAClD,QAAMC,OAAO,GAAGH,UAAU,EAA1B;AACA,QAAM;AAAEI,IAAAA;AAAF,MAAaL,WAAW,EAA9B;AACA,QAAMM,UAAU,GAAGV,SAAS,CACzBW,MAAF,IAAcL,MAAM,CAAEK,MAAM,CAAER,aAAF,CAAR,CAAN,CAAkCS,aAAlC,EADa,EAE3B,EAF2B,CAA5B;AAIA,QAAM;AAAEC,IAAAA;AAAF,MAAoBP,MAAM,CAAEL,WAAW,CAAEE,aAAF,CAAb,CAAhC;AACA,QAAMW,iBAAiB,GAAGf,MAAM,CAAEW,UAAF,CAAhC;AACA,QAAM;AAAEK,IAAAA,MAAM,EAAEC;AAAV,MAA0BP,MAAhC;AACA,QAAMQ,kBAAkB,GAAGlB,MAAM,CAAEiB,WAAF,CAAjC;AACA,QAAME,gBAAgB,GAAGnB,MAAM,CAAEU,MAAF,CAA/B;AACAX,EAAAA,SAAS,CAAE,MAAM;AAChBoB,IAAAA,gBAAgB,CAACC,OAAjB,GAA2BV,MAA3B;AACA,GAFQ,EAEN,CAAEA,MAAF,CAFM,CAAT;AAIAX,EAAAA,SAAS,CAAE,MAAM;AAChBgB,IAAAA,iBAAiB,CAACK,OAAlB,GAA4BT,UAA5B;;AACA,QAAKA,UAAU,KAAK,MAApB,EAA6B;AAC5B;AACA;;AAED,QACCA,UAAU,KAAK,MAAf,IACAO,kBAAkB,CAACE,OAAnB,KAA+BT,UAFhC,EAGE;AACDF,MAAAA,OAAO,CAACY,IAAR,CAAc,EACb,GAAGF,gBAAgB,CAACC,OADP;AAEbJ,QAAAA,MAAM,EAAE;AAFK,OAAd;AAIA;;AAED,QACCL,UAAU,KAAK,MAAf,IACAO,kBAAkB,CAACE,OAAnB,KAA+BE,SAFhC,EAGE;AACDb,MAAAA,OAAO,CAACY,IAAR,CAAc,EACb,GAAGF,gBAAgB,CAACC,OADP;AAEbJ,QAAAA,MAAM,EAAEM;AAFK,OAAd;AAIA;AACD,GAzBQ,EAyBN,CAAEX,UAAF,EAAcF,OAAd,CAzBM,CAAT;AA2BAV,EAAAA,SAAS,CAAE,MAAM;AAChBmB,IAAAA,kBAAkB,CAACE,OAAnB,GAA6BH,WAA7B;;AACA,QACCA,WAAW,KAAKK,SAAhB,IACAP,iBAAiB,CAACK,OAAlB,KAA8B,MAF/B,EAGE;AACDN,MAAAA,aAAa,CAAE,MAAF,CAAb;AACA,KALD,MAKO,IACNG,WAAW,KAAK,MAAhB,IACAF,iBAAiB,CAACK,OAAlB,KAA8B,MAFxB,EAGL;AACDN,MAAAA,aAAa,CAAE,MAAF,CAAb;AACA;AACD,GAbQ,EAaN,CAAEG,WAAF,EAAeH,aAAf,CAbM,CAAT;AAcA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { useLocation, useHistory } from '../routes';\nimport { unlock } from '../../private-apis';\n\nexport default function useSyncCanvasModeWithURL() {\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\tconst canvasMode = useSelect(\n\t\t( select ) => unlock( select( editSiteStore ) ).getCanvasMode(),\n\t\t[]\n\t);\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\tconst currentCanvasMode = useRef( canvasMode );\n\tconst { canvas: canvasInUrl } = params;\n\tconst currentCanvasInUrl = useRef( canvasInUrl );\n\tconst currentUrlParams = useRef( params );\n\tuseEffect( () => {\n\t\tcurrentUrlParams.current = params;\n\t}, [ params ] );\n\n\tuseEffect( () => {\n\t\tcurrentCanvasMode.current = canvasMode;\n\t\tif ( canvasMode === 'init' ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tcanvasMode === 'edit' &&\n\t\t\tcurrentCanvasInUrl.current !== canvasMode\n\t\t) {\n\t\t\thistory.push( {\n\t\t\t\t...currentUrlParams.current,\n\t\t\t\tcanvas: 'edit',\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tcanvasMode === 'view' &&\n\t\t\tcurrentCanvasInUrl.current !== undefined\n\t\t) {\n\t\t\thistory.push( {\n\t\t\t\t...currentUrlParams.current,\n\t\t\t\tcanvas: undefined,\n\t\t\t} );\n\t\t}\n\t}, [ canvasMode, history ] );\n\n\tuseEffect( () => {\n\t\tcurrentCanvasInUrl.current = canvasInUrl;\n\t\tif (\n\t\t\tcanvasInUrl === undefined &&\n\t\t\tcurrentCanvasMode.current !== 'view'\n\t\t) {\n\t\t\tsetCanvasMode( 'view' );\n\t\t} else if (\n\t\t\tcanvasInUrl === 'edit' &&\n\t\t\tcurrentCanvasMode.current !== 'edit'\n\t\t) {\n\t\t\tsetCanvasMode( 'edit' );\n\t\t}\n\t}, [ canvasInUrl, setCanvasMode ] );\n}\n"]}
@@ -8,6 +8,25 @@ import { useEffect, useRef } from '@wordpress/element';
8
8
  */
9
9
 
10
10
  import { useLocation, useHistory } from '../routes';
11
+ export function getPathFromURL(urlParams) {
12
+ var _urlParams$path;
13
+
14
+ let path = (_urlParams$path = urlParams === null || urlParams === void 0 ? void 0 : urlParams.path) !== null && _urlParams$path !== void 0 ? _urlParams$path : '/'; // Compute the navigator path based on the URL params.
15
+
16
+ if (urlParams !== null && urlParams !== void 0 && urlParams.postType && urlParams !== null && urlParams !== void 0 && urlParams.postId) {
17
+ switch (urlParams.postType) {
18
+ case 'wp_template':
19
+ case 'wp_template_part':
20
+ path = `/${encodeURIComponent(urlParams.postType)}/${encodeURIComponent(urlParams.postId)}`;
21
+ break;
22
+
23
+ default:
24
+ path = `/navigation/${encodeURIComponent(urlParams.postType)}/${encodeURIComponent(urlParams.postId)}`;
25
+ }
26
+ }
27
+
28
+ return path;
29
+ }
11
30
  export default function useSyncPathWithURL() {
12
31
  const history = useHistory();
13
32
  const {
@@ -19,10 +38,13 @@ export default function useSyncPathWithURL() {
19
38
  goTo
20
39
  } = useNavigator();
21
40
  const currentUrlParams = useRef(urlParams);
22
- const currentPath = useRef();
41
+ const currentPath = useRef(navigatorLocation.path);
42
+ const isMounting = useRef(true);
23
43
  useEffect(() => {
24
- // Don't trust the navigator path on initial render.
25
- if (currentPath.current === null) {
44
+ // The navigatorParams are only initially filled properly when the
45
+ // navigator screens mount. so we ignore the first synchronisation.
46
+ if (isMounting.current) {
47
+ isMounting.current = false;
26
48
  return;
27
49
  }
28
50
 
@@ -47,46 +69,22 @@ export default function useSyncPathWithURL() {
47
69
  postId: navigatorParams === null || navigatorParams === void 0 ? void 0 : navigatorParams.postId,
48
70
  path: undefined
49
71
  });
50
- } else if (navigatorParams !== null && navigatorParams !== void 0 && navigatorParams.postType && !(navigatorParams !== null && navigatorParams !== void 0 && navigatorParams.postId)) {
51
- updateUrlParams({
52
- postType: navigatorParams === null || navigatorParams === void 0 ? void 0 : navigatorParams.postType,
53
- path: navigatorLocation.path,
54
- postId: undefined
55
- });
56
72
  } else {
57
73
  updateUrlParams({
58
74
  postType: undefined,
59
75
  postId: undefined,
60
- path: navigatorLocation.path
76
+ path: navigatorLocation.path === '/' ? undefined : navigatorLocation.path
61
77
  });
62
78
  }
63
79
  }, [navigatorLocation === null || navigatorLocation === void 0 ? void 0 : navigatorLocation.path, navigatorParams, history]);
64
80
  useEffect(() => {
65
- var _urlParams$path;
66
-
67
81
  currentUrlParams.current = urlParams;
68
- let path = (_urlParams$path = urlParams === null || urlParams === void 0 ? void 0 : urlParams.path) !== null && _urlParams$path !== void 0 ? _urlParams$path : '/'; // Compute the navigator path based on the URL params.
69
-
70
- if (urlParams !== null && urlParams !== void 0 && urlParams.postType && urlParams !== null && urlParams !== void 0 && urlParams.postId && // This is just a special case to support old WP versions that perform redirects.
71
- // This code should be removed when we minimum WP version becomes 6.2.
72
- (urlParams === null || urlParams === void 0 ? void 0 : urlParams.postId) !== 'none') {
73
- switch (urlParams.postType) {
74
- case 'wp_template':
75
- case 'wp_template_part':
76
- path = `/${encodeURIComponent(urlParams.postType)}/${encodeURIComponent(urlParams.postId)}`;
77
- break;
78
-
79
- default:
80
- path = `/navigation/${encodeURIComponent(urlParams.postType)}/${encodeURIComponent(urlParams.postId)}`;
81
- }
82
- }
82
+ const path = getPathFromURL(urlParams);
83
83
 
84
84
  if (currentPath.current !== path) {
85
85
  currentPath.current = path;
86
86
  goTo(path);
87
87
  }
88
-
89
- goTo(path);
90
88
  }, [urlParams, goTo]);
91
89
  }
92
90
  //# sourceMappingURL=use-sync-path-with-url.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/sync-state-with-url/use-sync-path-with-url.js"],"names":["__experimentalUseNavigator","useNavigator","useEffect","useRef","useLocation","useHistory","useSyncPathWithURL","history","params","urlParams","location","navigatorLocation","navigatorParams","goTo","currentUrlParams","currentPath","current","updateUrlParams","newUrlParams","Object","entries","every","key","value","updatedParams","push","postType","postId","path","undefined","encodeURIComponent"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalUseNavigator as useNavigator } from '@wordpress/components';\nimport { useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useLocation, useHistory } from '../routes';\n\nexport default function useSyncPathWithURL() {\n\tconst history = useHistory();\n\tconst { params: urlParams } = useLocation();\n\tconst {\n\t\tlocation: navigatorLocation,\n\t\tparams: navigatorParams,\n\t\tgoTo,\n\t} = useNavigator();\n\tconst currentUrlParams = useRef( urlParams );\n\tconst currentPath = useRef();\n\n\tuseEffect( () => {\n\t\t// Don't trust the navigator path on initial render.\n\t\tif ( currentPath.current === null ) {\n\t\t\treturn;\n\t\t}\n\t\tfunction updateUrlParams( newUrlParams ) {\n\t\t\tif (\n\t\t\t\tObject.entries( newUrlParams ).every( ( [ key, value ] ) => {\n\t\t\t\t\treturn currentUrlParams.current[ key ] === value;\n\t\t\t\t} )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst updatedParams = {\n\t\t\t\t...currentUrlParams.current,\n\t\t\t\t...newUrlParams,\n\t\t\t};\n\t\t\tcurrentUrlParams.current = updatedParams;\n\t\t\thistory.push( updatedParams );\n\t\t}\n\n\t\tif ( navigatorParams?.postType && navigatorParams?.postId ) {\n\t\t\tupdateUrlParams( {\n\t\t\t\tpostType: navigatorParams?.postType,\n\t\t\t\tpostId: navigatorParams?.postId,\n\t\t\t\tpath: undefined,\n\t\t\t} );\n\t\t} else if ( navigatorParams?.postType && ! navigatorParams?.postId ) {\n\t\t\tupdateUrlParams( {\n\t\t\t\tpostType: navigatorParams?.postType,\n\t\t\t\tpath: navigatorLocation.path,\n\t\t\t\tpostId: undefined,\n\t\t\t} );\n\t\t} else {\n\t\t\tupdateUrlParams( {\n\t\t\t\tpostType: undefined,\n\t\t\t\tpostId: undefined,\n\t\t\t\tpath: navigatorLocation.path,\n\t\t\t} );\n\t\t}\n\t}, [ navigatorLocation?.path, navigatorParams, history ] );\n\n\tuseEffect( () => {\n\t\tcurrentUrlParams.current = urlParams;\n\t\tlet path = urlParams?.path ?? '/';\n\n\t\t// Compute the navigator path based on the URL params.\n\t\tif (\n\t\t\turlParams?.postType &&\n\t\t\turlParams?.postId &&\n\t\t\t// This is just a special case to support old WP versions that perform redirects.\n\t\t\t// This code should be removed when we minimum WP version becomes 6.2.\n\t\t\turlParams?.postId !== 'none'\n\t\t) {\n\t\t\tswitch ( urlParams.postType ) {\n\t\t\t\tcase 'wp_template':\n\t\t\t\tcase 'wp_template_part':\n\t\t\t\t\tpath = `/${ encodeURIComponent(\n\t\t\t\t\t\turlParams.postType\n\t\t\t\t\t) }/${ encodeURIComponent( urlParams.postId ) }`;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tpath = `/navigation/${ encodeURIComponent(\n\t\t\t\t\t\turlParams.postType\n\t\t\t\t\t) }/${ encodeURIComponent( urlParams.postId ) }`;\n\t\t\t}\n\t\t}\n\n\t\tif ( currentPath.current !== path ) {\n\t\t\tcurrentPath.current = path;\n\t\t\tgoTo( path );\n\t\t}\n\t\tgoTo( path );\n\t}, [ urlParams, goTo ] );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/sync-state-with-url/use-sync-path-with-url.js"],"names":["__experimentalUseNavigator","useNavigator","useEffect","useRef","useLocation","useHistory","getPathFromURL","urlParams","path","postType","postId","encodeURIComponent","useSyncPathWithURL","history","params","location","navigatorLocation","navigatorParams","goTo","currentUrlParams","currentPath","isMounting","current","updateUrlParams","newUrlParams","Object","entries","every","key","value","updatedParams","push","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalUseNavigator as useNavigator } from '@wordpress/components';\nimport { useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useLocation, useHistory } from '../routes';\n\nexport function getPathFromURL( urlParams ) {\n\tlet path = urlParams?.path ?? '/';\n\n\t// Compute the navigator path based on the URL params.\n\tif ( urlParams?.postType && urlParams?.postId ) {\n\t\tswitch ( urlParams.postType ) {\n\t\t\tcase 'wp_template':\n\t\t\tcase 'wp_template_part':\n\t\t\t\tpath = `/${ encodeURIComponent(\n\t\t\t\t\turlParams.postType\n\t\t\t\t) }/${ encodeURIComponent( urlParams.postId ) }`;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tpath = `/navigation/${ encodeURIComponent(\n\t\t\t\t\turlParams.postType\n\t\t\t\t) }/${ encodeURIComponent( urlParams.postId ) }`;\n\t\t}\n\t}\n\n\treturn path;\n}\n\nexport default function useSyncPathWithURL() {\n\tconst history = useHistory();\n\tconst { params: urlParams } = useLocation();\n\tconst {\n\t\tlocation: navigatorLocation,\n\t\tparams: navigatorParams,\n\t\tgoTo,\n\t} = useNavigator();\n\tconst currentUrlParams = useRef( urlParams );\n\tconst currentPath = useRef( navigatorLocation.path );\n\tconst isMounting = useRef( true );\n\n\tuseEffect( () => {\n\t\t// The navigatorParams are only initially filled properly when the\n\t\t// navigator screens mount. so we ignore the first synchronisation.\n\t\tif ( isMounting.current ) {\n\t\t\tisMounting.current = false;\n\t\t\treturn;\n\t\t}\n\n\t\tfunction updateUrlParams( newUrlParams ) {\n\t\t\tif (\n\t\t\t\tObject.entries( newUrlParams ).every( ( [ key, value ] ) => {\n\t\t\t\t\treturn currentUrlParams.current[ key ] === value;\n\t\t\t\t} )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst updatedParams = {\n\t\t\t\t...currentUrlParams.current,\n\t\t\t\t...newUrlParams,\n\t\t\t};\n\t\t\tcurrentUrlParams.current = updatedParams;\n\t\t\thistory.push( updatedParams );\n\t\t}\n\n\t\tif ( navigatorParams?.postType && navigatorParams?.postId ) {\n\t\t\tupdateUrlParams( {\n\t\t\t\tpostType: navigatorParams?.postType,\n\t\t\t\tpostId: navigatorParams?.postId,\n\t\t\t\tpath: undefined,\n\t\t\t} );\n\t\t} else {\n\t\t\tupdateUrlParams( {\n\t\t\t\tpostType: undefined,\n\t\t\t\tpostId: undefined,\n\t\t\t\tpath:\n\t\t\t\t\tnavigatorLocation.path === '/'\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: navigatorLocation.path,\n\t\t\t} );\n\t\t}\n\t}, [ navigatorLocation?.path, navigatorParams, history ] );\n\n\tuseEffect( () => {\n\t\tcurrentUrlParams.current = urlParams;\n\t\tconst path = getPathFromURL( urlParams );\n\t\tif ( currentPath.current !== path ) {\n\t\t\tcurrentPath.current = path;\n\t\t\tgoTo( path );\n\t\t}\n\t}, [ urlParams, goTo ] );\n}\n"]}
@@ -15,7 +15,6 @@ import { decodeEntities } from '@wordpress/html-entities';
15
15
 
16
16
  import isTemplateRevertable from '../../utils/is-template-revertable';
17
17
  import { store as editSiteStore } from '../../store';
18
- import TemplateAreas from './template-areas';
19
18
  import EditTemplateTitle from './edit-template-title';
20
19
  import { useLink } from '../routes/link';
21
20
  import TemplatePartAreaSelector from './template-part-area-selector';
@@ -30,11 +29,10 @@ export default function TemplateDetails(_ref) {
30
29
  } = useSelect(select => select(editorStore).__experimentalGetTemplateInfo(template), []);
31
30
  const {
32
31
  revertTemplate
33
- } = useDispatch(editSiteStore);
32
+ } = useDispatch(editSiteStore); // TODO: We should update this to filter by template part's areas as well.
33
+
34
34
  const browseAllLinkProps = useLink({
35
- // TODO: We should update this to filter by template part's areas as well.
36
- postType: template.type,
37
- postId: undefined
35
+ path: '/' + template.type + '/all'
38
36
  });
39
37
  const isTemplatePart = template.type === 'wp_template_part'; // Only user-created and non-default templates can change the name.
40
38
  // But any user-created template part can be renamed.
@@ -70,9 +68,7 @@ export default function TemplateDetails(_ref) {
70
68
  className: "edit-site-template-details__group"
71
69
  }, createElement(TemplatePartAreaSelector, {
72
70
  id: template.id
73
- })), createElement(TemplateAreas, {
74
- closeTemplateDetailsDropdown: onClose
75
- }), isTemplateRevertable(template) && createElement(MenuGroup, {
71
+ })), isTemplateRevertable(template) && createElement(MenuGroup, {
76
72
  className: "edit-site-template-details__group edit-site-template-details__revert"
77
73
  }, createElement(MenuItem, {
78
74
  className: "edit-site-template-details__revert-button",
@@ -80,6 +76,6 @@ export default function TemplateDetails(_ref) {
80
76
  onClick: revert
81
77
  }, __('Clear customizations'))), createElement(Button, _extends({
82
78
  className: "edit-site-template-details__show-all-button"
83
- }, browseAllLinkProps), (template === null || template === void 0 ? void 0 : template.type) === 'wp_template' ? __('Browse all templates') : __('Browse all template parts')));
79
+ }, browseAllLinkProps), (template === null || template === void 0 ? void 0 : template.type) === 'wp_template' ? __('Manage all templates') : __('Manage all template parts')));
84
80
  }
85
81
  //# sourceMappingURL=index.js.map