@wordpress/edit-site 5.23.0 → 5.24.1

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
@@ -14,6 +14,7 @@ import {
14
14
  * WordPress dependencies
15
15
  */
16
16
  import { __ } from '@wordpress/i18n';
17
+ import { useAsyncList } from '@wordpress/compose';
17
18
  import {
18
19
  chevronDown,
19
20
  chevronUp,
@@ -36,14 +37,15 @@ import { useMemo, Children, Fragment } from '@wordpress/element';
36
37
  */
37
38
  import { unlock } from '../../lock-unlock';
38
39
  import ItemActions from './item-actions';
40
+ import { ENUMERATION_TYPE, OPERATOR_IN } from './constants';
39
41
 
40
42
  const {
41
- DropdownMenuV2,
42
- DropdownMenuGroupV2,
43
- DropdownMenuItemV2,
44
- DropdownMenuSeparatorV2,
45
- DropdownSubMenuV2,
46
- DropdownSubMenuTriggerV2,
43
+ DropdownMenuV2: DropdownMenu,
44
+ DropdownMenuGroupV2: DropdownMenuGroup,
45
+ DropdownMenuItemV2: DropdownMenuItem,
46
+ DropdownMenuSeparatorV2: DropdownMenuSeparator,
47
+ DropdownSubMenuV2: DropdownSubMenu,
48
+ DropdownSubMenuTriggerV2: DropdownSubMenuTrigger,
47
49
  } = unlock( componentsPrivateApis );
48
50
 
49
51
  const EMPTY_OBJECT = {};
@@ -52,6 +54,7 @@ const sortingItemsInfo = {
52
54
  desc: { icon: arrowDown, label: __( 'Sort descending' ) },
53
55
  };
54
56
  const sortIcons = { asc: chevronUp, desc: chevronDown };
57
+
55
58
  function HeaderMenu( { dataView, header } ) {
56
59
  if ( header.isPlaceholder ) {
57
60
  return null;
@@ -68,27 +71,16 @@ function HeaderMenu( { dataView, header } ) {
68
71
  const sortedDirection = header.column.getIsSorted();
69
72
 
70
73
  let filter;
71
- if (
72
- header.column.columnDef.filters?.length > 0 &&
73
- header.column.columnDef.filters.some(
74
- ( f ) => 'string' === typeof f && f === 'in'
75
- )
76
- ) {
74
+ if ( header.column.columnDef.type === ENUMERATION_TYPE ) {
77
75
  filter = {
78
76
  field: header.column.columnDef.id,
79
- elements: [
80
- {
81
- value: '',
82
- label: __( 'All' ),
83
- },
84
- ...( header.column.columnDef.elements || [] ),
85
- ],
77
+ elements: header.column.columnDef.elements || [],
86
78
  };
87
79
  }
88
80
  const isFilterable = !! filter;
89
81
 
90
82
  return (
91
- <DropdownMenuV2
83
+ <DropdownMenu
92
84
  align="start"
93
85
  trigger={
94
86
  <Button
@@ -101,10 +93,10 @@ function HeaderMenu( { dataView, header } ) {
101
93
  >
102
94
  <WithSeparators>
103
95
  { isSortable && (
104
- <DropdownMenuGroupV2>
96
+ <DropdownMenuGroup>
105
97
  { Object.entries( sortingItemsInfo ).map(
106
98
  ( [ direction, info ] ) => (
107
- <DropdownMenuItemV2
99
+ <DropdownMenuItem
108
100
  key={ direction }
109
101
  prefix={ <Icon icon={ info.icon } /> }
110
102
  suffix={
@@ -127,13 +119,13 @@ function HeaderMenu( { dataView, header } ) {
127
119
  } }
128
120
  >
129
121
  { info.label }
130
- </DropdownMenuItemV2>
122
+ </DropdownMenuItem>
131
123
  )
132
124
  ) }
133
- </DropdownMenuGroupV2>
125
+ </DropdownMenuGroup>
134
126
  ) }
135
127
  { isHidable && (
136
- <DropdownMenuItemV2
128
+ <DropdownMenuItem
137
129
  prefix={ <Icon icon={ unseen } /> }
138
130
  onSelect={ ( event ) => {
139
131
  event.preventDefault();
@@ -141,21 +133,21 @@ function HeaderMenu( { dataView, header } ) {
141
133
  } }
142
134
  >
143
135
  { __( 'Hide' ) }
144
- </DropdownMenuItemV2>
136
+ </DropdownMenuItem>
145
137
  ) }
146
138
  { isFilterable && (
147
- <DropdownMenuGroupV2>
148
- <DropdownSubMenuV2
139
+ <DropdownMenuGroup>
140
+ <DropdownSubMenu
149
141
  key={ filter.field }
150
142
  trigger={
151
- <DropdownSubMenuTriggerV2
143
+ <DropdownSubMenuTrigger
152
144
  prefix={ <Icon icon={ funnel } /> }
153
145
  suffix={
154
146
  <Icon icon={ chevronRightSmall } />
155
147
  }
156
148
  >
157
149
  { __( 'Filter by' ) }
158
- </DropdownSubMenuTriggerV2>
150
+ </DropdownSubMenuTrigger>
159
151
  }
160
152
  >
161
153
  { filter.elements.map( ( element ) => {
@@ -169,11 +161,6 @@ function HeaderMenu( { dataView, header } ) {
169
161
  )[ 0 ] === filter.field
170
162
  );
171
163
 
172
- // Set the empty item as active if the filter is not set.
173
- if ( ! columnFilter && element.value === '' ) {
174
- isActive = true;
175
- }
176
-
177
164
  if ( columnFilter ) {
178
165
  const value =
179
166
  Object.values( columnFilter )[ 0 ];
@@ -183,7 +170,7 @@ function HeaderMenu( { dataView, header } ) {
183
170
  }
184
171
 
185
172
  return (
186
- <DropdownMenuItemV2
173
+ <DropdownMenuItem
187
174
  key={ element.value }
188
175
  suffix={
189
176
  isActive && <Icon icon={ check } />
@@ -202,35 +189,32 @@ function HeaderMenu( { dataView, header } ) {
202
189
  return (
203
190
  field !==
204
191
  filter.field ||
205
- operator !== 'in'
192
+ operator !==
193
+ OPERATOR_IN
206
194
  );
207
195
  }
208
196
  );
209
197
 
210
- if ( element.value === '' ) {
211
- dataView.setColumnFilters(
212
- otherFilters
213
- );
214
- } else {
215
- dataView.setColumnFilters( [
216
- ...otherFilters,
217
- {
218
- [ filter.field +
219
- ':in' ]: element.value,
220
- },
221
- ] );
222
- }
198
+ dataView.setColumnFilters( [
199
+ ...otherFilters,
200
+ {
201
+ [ filter.field + ':in' ]:
202
+ isActive
203
+ ? undefined
204
+ : element.value,
205
+ },
206
+ ] );
223
207
  } }
224
208
  >
225
209
  { element.label }
226
- </DropdownMenuItemV2>
210
+ </DropdownMenuItem>
227
211
  );
228
212
  } ) }
229
- </DropdownSubMenuV2>
230
- </DropdownMenuGroupV2>
213
+ </DropdownSubMenu>
214
+ </DropdownMenuGroup>
231
215
  ) }
232
216
  </WithSeparators>
233
- </DropdownMenuV2>
217
+ </DropdownMenu>
234
218
  );
235
219
  }
236
220
 
@@ -239,7 +223,7 @@ function WithSeparators( { children } ) {
239
223
  .filter( Boolean )
240
224
  .map( ( child, i ) => (
241
225
  <Fragment key={ i }>
242
- { i > 0 && <DropdownMenuSeparatorV2 /> }
226
+ { i > 0 && <DropdownMenuSeparator /> }
243
227
  { child }
244
228
  </Fragment>
245
229
  ) );
@@ -251,6 +235,7 @@ function ViewList( {
251
235
  fields,
252
236
  actions,
253
237
  data,
238
+ getItemId,
254
239
  isLoading = false,
255
240
  paginationInfo,
256
241
  } ) {
@@ -348,8 +333,9 @@ function ViewList( {
348
333
  return { field, operator, value };
349
334
  } );
350
335
 
336
+ const shownData = useAsyncList( data );
351
337
  const dataView = useReactTable( {
352
- data,
338
+ data: shownData,
353
339
  columns,
354
340
  manualSorting: true,
355
341
  manualFiltering: true,
@@ -372,6 +358,7 @@ function ViewList( {
372
358
  },
373
359
  columnVisibility: columnVisibility ?? EMPTY_OBJECT,
374
360
  },
361
+ getRowId: getItemId,
375
362
  onSortingChange: ( sortingUpdater ) => {
376
363
  onChangeView( ( currentView ) => {
377
364
  const sort =
@@ -470,6 +457,9 @@ function ViewList( {
470
457
  width:
471
458
  header.column.columnDef.width ||
472
459
  undefined,
460
+ minWidth:
461
+ header.column.columnDef
462
+ .minWidth || undefined,
473
463
  maxWidth:
474
464
  header.column.columnDef
475
465
  .maxWidth || undefined,
@@ -490,11 +480,14 @@ function ViewList( {
490
480
  <tr key={ row.id }>
491
481
  { row.getVisibleCells().map( ( cell ) => (
492
482
  <td
493
- key={ cell.id }
483
+ key={ cell.column.id }
494
484
  style={ {
495
485
  width:
496
486
  cell.column.columnDef.width ||
497
487
  undefined,
488
+ minWidth:
489
+ cell.column.columnDef
490
+ .minWidth || undefined,
498
491
  maxWidth:
499
492
  cell.column.columnDef
500
493
  .maxWidth || undefined,
@@ -6,7 +6,7 @@ import classnames from 'classnames';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { useSelect } from '@wordpress/data';
9
+ import { useSelect, useDispatch } from '@wordpress/data';
10
10
  import { Notice } from '@wordpress/components';
11
11
  import { useInstanceId } from '@wordpress/compose';
12
12
  import { store as preferencesStore } from '@wordpress/preferences';
@@ -25,10 +25,11 @@ import {
25
25
  EditorNotices,
26
26
  EditorSnackbars,
27
27
  privateApis as editorPrivateApis,
28
+ store as editorStore,
28
29
  } from '@wordpress/editor';
29
30
  import { __, sprintf } from '@wordpress/i18n';
30
31
  import { store as coreDataStore } from '@wordpress/core-data';
31
- import { useMemo } from '@wordpress/element';
32
+ import { useEffect } from '@wordpress/element';
32
33
 
33
34
  /**
34
35
  * Internal dependencies
@@ -97,14 +98,13 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
97
98
  contextPost,
98
99
  editorMode,
99
100
  canvasMode,
101
+ renderingMode,
100
102
  blockEditorMode,
101
103
  isRightSidebarOpen,
102
104
  isInserterOpen,
103
105
  isListViewOpen,
104
106
  showIconLabels,
105
107
  showBlockBreadcrumbs,
106
- hasPageContentFocus,
107
- pageContentFocusType,
108
108
  } = useSelect( ( select ) => {
109
109
  const {
110
110
  getEditedPostContext,
@@ -112,12 +112,11 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
112
112
  getCanvasMode,
113
113
  isInserterOpened,
114
114
  isListViewOpened,
115
- hasPageContentFocus: _hasPageContentFocus,
116
- getPageContentFocusType,
117
115
  } = unlock( select( editSiteStore ) );
118
116
  const { __unstableGetEditorMode } = select( blockEditorStore );
119
117
  const { getActiveComplementaryArea } = select( interfaceStore );
120
118
  const { getEntityRecord } = select( coreDataStore );
119
+ const { getRenderingMode } = select( editorStore );
121
120
  const _context = getEditedPostContext();
122
121
 
123
122
  // The currently selected entity to display.
@@ -133,6 +132,7 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
133
132
  : undefined,
134
133
  editorMode: getEditorMode(),
135
134
  canvasMode: getCanvasMode(),
135
+ renderingMode: getRenderingMode(),
136
136
  blockEditorMode: __unstableGetEditorMode(),
137
137
  isInserterOpen: isInserterOpened(),
138
138
  isListViewOpen: isListViewOpened(),
@@ -147,10 +147,9 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
147
147
  'core/edit-site',
148
148
  'showBlockBreadcrumbs'
149
149
  ),
150
- hasPageContentFocus: _hasPageContentFocus(),
151
- pageContentFocusType: getPageContentFocusType(),
152
150
  };
153
151
  }, [] );
152
+ const { setRenderingMode } = useDispatch( editorStore );
154
153
 
155
154
  const isViewMode = canvasMode === 'view';
156
155
  const isEditMode = canvasMode === 'edit';
@@ -165,7 +164,7 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
165
164
  const secondarySidebarLabel = isListViewOpen
166
165
  ? __( 'List View' )
167
166
  : __( 'Block Library' );
168
- const postWithTemplate = context?.postId;
167
+ const postWithTemplate = !! context?.postId;
169
168
 
170
169
  let title;
171
170
  if ( hasLoadedPost ) {
@@ -192,31 +191,16 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
192
191
  ! isLoading &&
193
192
  ( ( postWithTemplate && !! contextPost && !! editedPost ) ||
194
193
  ( ! postWithTemplate && !! editedPost ) );
195
- const mode = useMemo( () => {
196
- if ( isViewMode ) {
197
- return postWithTemplate ? 'template-locked' : 'all';
198
- }
199
-
200
- if ( isEditMode && pageContentFocusType === 'hideTemplate' ) {
201
- return 'post-only';
202
- }
203
194
 
204
- if ( postWithTemplate && hasPageContentFocus ) {
205
- return 'template-locked';
195
+ // This is the only reliable way I've found to reinitialize the rendering mode
196
+ // when the canvas mode or the edited entity changes.
197
+ useEffect( () => {
198
+ if ( canvasMode === 'edit' && postWithTemplate ) {
199
+ setRenderingMode( 'template-locked' );
200
+ } else {
201
+ setRenderingMode( 'all' );
206
202
  }
207
-
208
- if ( postWithTemplate && ! hasPageContentFocus ) {
209
- return 'template-only';
210
- }
211
-
212
- return 'all';
213
- }, [
214
- isViewMode,
215
- isEditMode,
216
- postWithTemplate,
217
- pageContentFocusType,
218
- hasPageContentFocus,
219
- ] );
203
+ }, [ canvasMode, postWithTemplate, setRenderingMode ] );
220
204
 
221
205
  return (
222
206
  <>
@@ -237,7 +221,6 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
237
221
  }
238
222
  settings={ settings }
239
223
  useSubRegistry={ false }
240
- mode={ mode }
241
224
  >
242
225
  <SidebarComplementaryAreaFills />
243
226
  { isEditMode && <StartTemplateOptions /> }
@@ -298,7 +281,8 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
298
281
  shouldShowBlockBreadcrumbs && (
299
282
  <BlockBreadcrumb
300
283
  rootLabelText={
301
- hasPageContentFocus
284
+ postWithTemplate &&
285
+ renderingMode !== 'template-only'
302
286
  ? __( 'Page' )
303
287
  : __( 'Template' )
304
288
  }
@@ -47,7 +47,7 @@ export default function getIntersectingFontFaces( incoming, existing ) {
47
47
  } );
48
48
  }
49
49
  );
50
- matches.push( { ...existingFont, fontFace: matchingFaces } );
50
+ matches.push( { ...incomingFont, fontFace: matchingFaces } );
51
51
  } else {
52
52
  matches.push( incomingFont );
53
53
  }
@@ -1,8 +1,12 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import { paramCase as kebabCase } from 'change-case';
5
+
1
6
  /**
2
7
  * Internal dependencies
3
8
  */
4
9
  import { FONT_WEIGHTS, FONT_STYLES } from './constants';
5
- import { formatFontFamily } from './preview-styles';
6
10
 
7
11
  export function setUIValuesNeeded( font, extraValues = {} ) {
8
12
  if ( ! font.name && ( font.fontFamily || font.slug ) ) {
@@ -85,14 +89,10 @@ export async function loadFontFaceInBrowser( fontFace, source, addTo = 'all' ) {
85
89
  }
86
90
 
87
91
  // eslint-disable-next-line no-undef
88
- const newFont = new FontFace(
89
- formatFontFamily( fontFace.fontFamily ),
90
- dataSource,
91
- {
92
- style: fontFace.fontStyle,
93
- weight: fontFace.fontWeight,
94
- }
95
- );
92
+ const newFont = new FontFace( fontFace.fontFamily, dataSource, {
93
+ style: fontFace.fontStyle,
94
+ weight: fontFace.fontWeight,
95
+ } );
96
96
 
97
97
  const loadedFace = await newFont.load();
98
98
 
@@ -129,9 +129,20 @@ export function getDisplaySrcFromFontFace( input, urlPrefix ) {
129
129
  return src;
130
130
  }
131
131
 
132
+ // This function replicates one behavior of _wp_to_kebab_case().
133
+ // Additional context: https://github.com/WordPress/gutenberg/issues/53695
134
+ export function wpKebabCase( str ) {
135
+ // If a string contains a digit followed by a number, insert a dash between them.
136
+ return kebabCase( str ).replace(
137
+ /([a-zA-Z])(\d)|(\d)([a-zA-Z])/g,
138
+ '$1$3-$2$4'
139
+ );
140
+ }
141
+
132
142
  export function makeFormDataFromFontFamilies( fontFamilies ) {
133
143
  const formData = new FormData();
134
144
  const newFontFamilies = fontFamilies.map( ( family, familyIndex ) => {
145
+ family.slug = wpKebabCase( family.slug );
135
146
  if ( family?.fontFace ) {
136
147
  family.fontFace = family.fontFace.map( ( face, faceIndex ) => {
137
148
  if ( face.file ) {
@@ -5,7 +5,7 @@ import getIntersectingFontFaces from '../get-intersecting-font-faces';
5
5
 
6
6
  describe( 'getIntersectingFontFaces', () => {
7
7
  it( 'returns matching font faces for matching font family', () => {
8
- const intendedFontsFamilies = [
8
+ const incomingFontFamilies = [
9
9
  {
10
10
  slug: 'lobster',
11
11
  fontFace: [
@@ -30,15 +30,15 @@ describe( 'getIntersectingFontFaces', () => {
30
30
  ];
31
31
 
32
32
  const result = getIntersectingFontFaces(
33
- intendedFontsFamilies,
33
+ incomingFontFamilies,
34
34
  existingFontFamilies
35
35
  );
36
36
 
37
- expect( result ).toEqual( intendedFontsFamilies );
37
+ expect( result ).toEqual( incomingFontFamilies );
38
38
  } );
39
39
 
40
40
  it( 'returns empty array when there is no match', () => {
41
- const intendedFontsFamilies = [
41
+ const incomingFontFamilies = [
42
42
  {
43
43
  slug: 'lobster',
44
44
  fontFace: [
@@ -63,7 +63,7 @@ describe( 'getIntersectingFontFaces', () => {
63
63
  ];
64
64
 
65
65
  const result = getIntersectingFontFaces(
66
- intendedFontsFamilies,
66
+ incomingFontFamilies,
67
67
  existingFontFamilies
68
68
  );
69
69
 
@@ -71,7 +71,7 @@ describe( 'getIntersectingFontFaces', () => {
71
71
  } );
72
72
 
73
73
  it( 'returns matching font faces', () => {
74
- const intendedFontsFamilies = [
74
+ const incomingFontFamilies = [
75
75
  {
76
76
  slug: 'lobster',
77
77
  fontFace: [
@@ -129,7 +129,7 @@ describe( 'getIntersectingFontFaces', () => {
129
129
  ];
130
130
 
131
131
  const result = getIntersectingFontFaces(
132
- intendedFontsFamilies,
132
+ incomingFontFamilies,
133
133
  existingFontFamilies
134
134
  );
135
135
 
@@ -137,7 +137,7 @@ describe( 'getIntersectingFontFaces', () => {
137
137
  } );
138
138
 
139
139
  it( 'returns empty array when the first list is empty', () => {
140
- const intendedFontsFamilies = [];
140
+ const incomingFontFamilies = [];
141
141
 
142
142
  const existingFontFamilies = [
143
143
  {
@@ -152,7 +152,7 @@ describe( 'getIntersectingFontFaces', () => {
152
152
  ];
153
153
 
154
154
  const result = getIntersectingFontFaces(
155
- intendedFontsFamilies,
155
+ incomingFontFamilies,
156
156
  existingFontFamilies
157
157
  );
158
158
 
@@ -160,7 +160,7 @@ describe( 'getIntersectingFontFaces', () => {
160
160
  } );
161
161
 
162
162
  it( 'returns empty array when the second list is empty', () => {
163
- const intendedFontsFamilies = [
163
+ const incomingFontFamilies = [
164
164
  {
165
165
  slug: 'lobster',
166
166
  fontFace: [
@@ -175,7 +175,7 @@ describe( 'getIntersectingFontFaces', () => {
175
175
  const existingFontFamilies = [];
176
176
 
177
177
  const result = getIntersectingFontFaces(
178
- intendedFontsFamilies,
178
+ incomingFontFamilies,
179
179
  existingFontFamilies
180
180
  );
181
181
 
@@ -183,7 +183,7 @@ describe( 'getIntersectingFontFaces', () => {
183
183
  } );
184
184
 
185
185
  it( 'returns intersecting font family when there are no fonfaces', () => {
186
- const intendedFontsFamilies = [
186
+ const incomingFontFamilies = [
187
187
  {
188
188
  slug: 'piazzolla',
189
189
  fontFace: [ { fontStyle: 'normal', fontWeight: '400' } ],
@@ -200,7 +200,7 @@ describe( 'getIntersectingFontFaces', () => {
200
200
  ];
201
201
 
202
202
  const result = getIntersectingFontFaces(
203
- intendedFontsFamilies,
203
+ incomingFontFamilies,
204
204
  existingFontFamilies
205
205
  );
206
206
 
@@ -208,7 +208,7 @@ describe( 'getIntersectingFontFaces', () => {
208
208
  } );
209
209
 
210
210
  it( 'returns intersecting if there is an intended font face and is not present in the returning it should not be returned', () => {
211
- const intendedFontsFamilies = [
211
+ const incomingFontFamilies = [
212
212
  {
213
213
  slug: 'piazzolla',
214
214
  fontFace: [ { fontStyle: 'normal', fontWeight: '400' } ],
@@ -226,7 +226,7 @@ describe( 'getIntersectingFontFaces', () => {
226
226
  ];
227
227
 
228
228
  const result = getIntersectingFontFaces(
229
- intendedFontsFamilies,
229
+ incomingFontFamilies,
230
230
  existingFontFamilies
231
231
  );
232
232
  const expected = [
@@ -237,4 +237,35 @@ describe( 'getIntersectingFontFaces', () => {
237
237
  ];
238
238
  expect( result ).toEqual( expected );
239
239
  } );
240
+
241
+ it( 'updates font family definition using the incoming data', () => {
242
+ const incomingFontFamilies = [
243
+ {
244
+ slug: 'gothic-a1',
245
+ fontFace: [ { fontStyle: 'normal', fontWeight: '400' } ],
246
+ fontFamily: "'Gothic A1', serif",
247
+ },
248
+ ];
249
+
250
+ const existingFontFamilies = [
251
+ {
252
+ slug: 'gothic-a1',
253
+ fontFace: [ { fontStyle: 'normal', fontWeight: '400' } ],
254
+ fontFamily: 'Gothic A1, serif',
255
+ },
256
+ ];
257
+
258
+ const result = getIntersectingFontFaces(
259
+ incomingFontFamilies,
260
+ existingFontFamilies
261
+ );
262
+ const expected = [
263
+ {
264
+ slug: 'gothic-a1',
265
+ fontFace: [ { fontStyle: 'normal', fontWeight: '400' } ],
266
+ fontFamily: "'Gothic A1', serif",
267
+ },
268
+ ];
269
+ expect( result ).toEqual( expected );
270
+ } );
240
271
  } );
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import { wpKebabCase } from '../index';
5
+
6
+ describe( 'wpKebabCase', () => {
7
+ it( 'should insert a dash between a letter and a digit', () => {
8
+ const input = 'abc1def';
9
+ const expectedOutput = 'abc-1def';
10
+ expect( wpKebabCase( input ) ).toEqual( expectedOutput );
11
+
12
+ const input2 = 'abc1def2ghi';
13
+ const expectedOutput2 = 'abc-1def-2ghi';
14
+ expect( wpKebabCase( input2 ) ).toEqual( expectedOutput2 );
15
+ } );
16
+
17
+ it( 'should not insert a dash between two letters', () => {
18
+ const input = 'abcdef';
19
+ const expectedOutput = 'abcdef';
20
+ expect( wpKebabCase( input ) ).toEqual( expectedOutput );
21
+ } );
22
+
23
+ it( 'should not insert a dash between a digit and a hyphen', () => {
24
+ const input = 'abc1-def';
25
+ const expectedOutput = 'abc-1-def';
26
+ expect( wpKebabCase( input ) ).toEqual( expectedOutput );
27
+ } );
28
+ } );
@@ -12,7 +12,7 @@ import {
12
12
  import { isRTL, __ } from '@wordpress/i18n';
13
13
  import { chevronRight, chevronLeft } from '@wordpress/icons';
14
14
 
15
- function ScreenHeader( { title, description } ) {
15
+ function ScreenHeader( { title, description, onBack } ) {
16
16
  return (
17
17
  <VStack spacing={ 0 }>
18
18
  <View>
@@ -27,6 +27,7 @@ function ScreenHeader( { title, description } ) {
27
27
  icon={ isRTL() ? chevronRight : chevronLeft }
28
28
  isSmall
29
29
  aria-label={ __( 'Navigate to the previous view' ) }
30
+ onClick={ onBack }
30
31
  />
31
32
  <Spacer>
32
33
  <Heading