@wordpress/edit-site 5.25.0 → 5.25.1-next.79a6196f.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (438) hide show
  1. package/LICENSE.md +1 -1
  2. package/build/components/block-editor/back-button.js +3 -2
  3. package/build/components/block-editor/back-button.js.map +1 -1
  4. package/build/components/block-editor/resizable-editor.js +2 -2
  5. package/build/components/block-editor/resizable-editor.js.map +1 -1
  6. package/build/components/block-editor/use-post-link-props.js +27 -0
  7. package/build/components/block-editor/use-post-link-props.js.map +1 -0
  8. package/build/components/block-editor/use-site-editor-settings.js +7 -24
  9. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  10. package/build/components/create-template-part-modal/index.js +15 -7
  11. package/build/components/create-template-part-modal/index.js.map +1 -1
  12. package/build/components/editor/index.js +15 -16
  13. package/build/components/editor/index.js.map +1 -1
  14. package/build/components/editor-canvas-container/index.js +9 -7
  15. package/build/components/editor-canvas-container/index.js.map +1 -1
  16. package/build/components/global-styles/font-library-modal/collection-font-variant.js +5 -2
  17. package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  18. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +3 -3
  19. package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -1
  20. package/build/components/global-styles/font-library-modal/context.js +5 -5
  21. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  22. package/build/components/global-styles/font-library-modal/font-collection.js +8 -4
  23. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  24. package/build/components/global-styles/font-library-modal/index.js +38 -21
  25. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  26. package/build/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  27. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  28. package/build/components/global-styles/font-library-modal/library-font-variant.js +5 -2
  29. package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  30. package/build/components/global-styles/font-library-modal/local-fonts.js +26 -10
  31. package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  32. package/build/components/global-styles/font-library-modal/resolvers.js +6 -6
  33. package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  34. package/build/components/global-styles/font-library-modal/{tab-layout.js → tab-panel-layout.js} +4 -4
  35. package/build/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -0
  36. package/build/components/global-styles/font-library-modal/utils/index.js +35 -38
  37. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  38. package/build/components/global-styles/preview.js +43 -1
  39. package/build/components/global-styles/preview.js.map +1 -1
  40. package/build/components/global-styles/screen-color-palette.js +16 -12
  41. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  42. package/build/components/global-styles/screen-revisions/index.js +52 -52
  43. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  44. package/build/components/global-styles/screen-revisions/revisions-buttons.js +26 -35
  45. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  46. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +40 -22
  47. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  48. package/build/components/global-styles/ui.js +13 -62
  49. package/build/components/global-styles/ui.js.map +1 -1
  50. package/build/components/header-edit-mode/document-tools/index.js +8 -106
  51. package/build/components/header-edit-mode/document-tools/index.js.map +1 -1
  52. package/build/components/header-edit-mode/index.js +7 -11
  53. package/build/components/header-edit-mode/index.js.map +1 -1
  54. package/build/components/header-edit-mode/mode-switcher/index.js +0 -2
  55. package/build/components/header-edit-mode/mode-switcher/index.js.map +1 -1
  56. package/build/components/header-edit-mode/more-menu/index.js +10 -7
  57. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  58. package/build/components/keyboard-shortcuts/edit-mode.js +0 -23
  59. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  60. package/build/components/keyboard-shortcuts/register.js +0 -36
  61. package/build/components/keyboard-shortcuts/register.js.map +1 -1
  62. package/build/components/layout/index.js +6 -13
  63. package/build/components/layout/index.js.map +1 -1
  64. package/build/components/page-main/index.js +4 -4
  65. package/build/components/page-main/index.js.map +1 -1
  66. package/build/components/page-pages/index.js +84 -37
  67. package/build/components/page-pages/index.js.map +1 -1
  68. package/build/components/page-patterns/dataviews-pattern-actions.js +305 -0
  69. package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -0
  70. package/build/components/page-patterns/dataviews-patterns.js +307 -0
  71. package/build/components/page-patterns/dataviews-patterns.js.map +1 -0
  72. package/build/components/page-patterns/duplicate-menu-item.js +1 -1
  73. package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
  74. package/build/components/page-patterns/grid-item.js +4 -3
  75. package/build/components/page-patterns/grid-item.js.map +1 -1
  76. package/build/components/page-patterns/patterns-list.js +2 -1
  77. package/build/components/page-patterns/patterns-list.js.map +1 -1
  78. package/build/components/page-patterns/use-patterns.js +23 -13
  79. package/build/components/page-patterns/use-patterns.js.map +1 -1
  80. package/build/components/page-templates/index.js +312 -36
  81. package/build/components/page-templates/index.js.map +1 -1
  82. package/build/components/{page-patterns/pagination.js → pagination/index.js} +25 -12
  83. package/build/components/pagination/index.js.map +1 -0
  84. package/build/components/{page-pages/side-editor.js → post-preview/index.js} +8 -4
  85. package/build/components/post-preview/index.js.map +1 -0
  86. package/build/components/preferences-modal/enable-feature.js +3 -2
  87. package/build/components/preferences-modal/enable-feature.js.map +1 -1
  88. package/build/components/preferences-modal/enable-panel-option.js +33 -0
  89. package/build/components/preferences-modal/enable-panel-option.js.map +1 -0
  90. package/build/components/preferences-modal/index.js +57 -9
  91. package/build/components/preferences-modal/index.js.map +1 -1
  92. package/build/components/revisions/index.js +3 -7
  93. package/build/components/revisions/index.js.map +1 -1
  94. package/build/components/routes/link.js +6 -2
  95. package/build/components/routes/link.js.map +1 -1
  96. package/build/components/save-button/index.js +6 -3
  97. package/build/components/save-button/index.js.map +1 -1
  98. package/build/components/sidebar/index.js +3 -11
  99. package/build/components/sidebar/index.js.map +1 -1
  100. package/build/components/sidebar-dataviews/add-new-view.js +2 -2
  101. package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
  102. package/build/components/sidebar-dataviews/default-views.js +18 -5
  103. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  104. package/build/components/sidebar-dataviews/index.js +3 -3
  105. package/build/components/sidebar-dataviews/index.js.map +1 -1
  106. package/build/components/sidebar-edit-mode/default-sidebar.js +1 -5
  107. package/build/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  108. package/build/components/sidebar-edit-mode/global-styles-sidebar.js +62 -10
  109. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  110. package/build/components/sidebar-edit-mode/page-panels/index.js +1 -1
  111. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  112. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -4
  113. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  114. package/build/components/sidebar-edit-mode/template-panel/index.js +4 -13
  115. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  116. package/build/components/sidebar-navigation-screen-details-footer/index.js +1 -1
  117. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  118. package/build/components/sidebar-navigation-screen-global-styles/index.js +5 -2
  119. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  120. package/build/components/sidebar-navigation-screen-page/index.js +4 -1
  121. package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
  122. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js +69 -0
  123. package/build/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -0
  124. package/build/components/sidebar-navigation-screen-templates/index.js +63 -8
  125. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  126. package/build/components/style-book/index.js +38 -8
  127. package/build/components/style-book/index.js.map +1 -1
  128. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +1 -1
  129. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  130. package/build/hooks/commands/use-edit-mode-commands.js +11 -6
  131. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  132. package/build/index.js +12 -7
  133. package/build/index.js.map +1 -1
  134. package/build/store/actions.js +39 -44
  135. package/build/store/actions.js.map +1 -1
  136. package/build/store/private-actions.js +6 -2
  137. package/build/store/private-actions.js.map +1 -1
  138. package/build/store/reducer.js +0 -46
  139. package/build/store/reducer.js.map +1 -1
  140. package/build/store/selectors.js +32 -41
  141. package/build/store/selectors.js.map +1 -1
  142. package/build/utils/get-is-list-page.js +1 -1
  143. package/build/utils/get-is-list-page.js.map +1 -1
  144. package/build-module/components/block-editor/back-button.js +4 -3
  145. package/build-module/components/block-editor/back-button.js.map +1 -1
  146. package/build-module/components/block-editor/resizable-editor.js +2 -2
  147. package/build-module/components/block-editor/resizable-editor.js.map +1 -1
  148. package/build-module/components/block-editor/use-post-link-props.js +20 -0
  149. package/build-module/components/block-editor/use-post-link-props.js.map +1 -0
  150. package/build-module/components/block-editor/use-site-editor-settings.js +8 -25
  151. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  152. package/build-module/components/create-template-part-modal/index.js +14 -7
  153. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  154. package/build-module/components/editor/index.js +16 -17
  155. package/build-module/components/editor/index.js.map +1 -1
  156. package/build-module/components/editor-canvas-container/index.js +9 -7
  157. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  158. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +5 -2
  159. package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
  160. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js +3 -3
  161. package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -1
  162. package/build-module/components/global-styles/font-library-modal/context.js +7 -7
  163. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  164. package/build-module/components/global-styles/font-library-modal/font-collection.js +8 -4
  165. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  166. package/build-module/components/global-styles/font-library-modal/index.js +39 -22
  167. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  168. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +2 -2
  169. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  170. package/build-module/components/global-styles/font-library-modal/library-font-variant.js +5 -2
  171. package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
  172. package/build-module/components/global-styles/font-library-modal/local-fonts.js +27 -11
  173. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  174. package/build-module/components/global-styles/font-library-modal/resolvers.js +5 -5
  175. package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
  176. package/build-module/components/global-styles/font-library-modal/{tab-layout.js → tab-panel-layout.js} +4 -4
  177. package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -0
  178. package/build-module/components/global-styles/font-library-modal/utils/index.js +34 -36
  179. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  180. package/build-module/components/global-styles/preview.js +45 -3
  181. package/build-module/components/global-styles/preview.js.map +1 -1
  182. package/build-module/components/global-styles/screen-color-palette.js +17 -13
  183. package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
  184. package/build-module/components/global-styles/screen-revisions/index.js +53 -53
  185. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  186. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +27 -36
  187. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  188. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +40 -22
  189. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  190. package/build-module/components/global-styles/ui.js +15 -64
  191. package/build-module/components/global-styles/ui.js.map +1 -1
  192. package/build-module/components/header-edit-mode/document-tools/index.js +13 -110
  193. package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -1
  194. package/build-module/components/header-edit-mode/index.js +7 -11
  195. package/build-module/components/header-edit-mode/index.js.map +1 -1
  196. package/build-module/components/header-edit-mode/mode-switcher/index.js +0 -2
  197. package/build-module/components/header-edit-mode/mode-switcher/index.js.map +1 -1
  198. package/build-module/components/header-edit-mode/more-menu/index.js +10 -7
  199. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  200. package/build-module/components/keyboard-shortcuts/edit-mode.js +0 -23
  201. package/build-module/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  202. package/build-module/components/keyboard-shortcuts/register.js +0 -36
  203. package/build-module/components/keyboard-shortcuts/register.js.map +1 -1
  204. package/build-module/components/layout/index.js +6 -13
  205. package/build-module/components/layout/index.js.map +1 -1
  206. package/build-module/components/page-main/index.js +4 -4
  207. package/build-module/components/page-main/index.js.map +1 -1
  208. package/build-module/components/page-pages/index.js +83 -36
  209. package/build-module/components/page-pages/index.js.map +1 -1
  210. package/build-module/components/page-patterns/dataviews-pattern-actions.js +292 -0
  211. package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -0
  212. package/build-module/components/page-patterns/dataviews-patterns.js +299 -0
  213. package/build-module/components/page-patterns/dataviews-patterns.js.map +1 -0
  214. package/build-module/components/page-patterns/duplicate-menu-item.js +1 -1
  215. package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
  216. package/build-module/components/page-patterns/grid-item.js +4 -3
  217. package/build-module/components/page-patterns/grid-item.js.map +1 -1
  218. package/build-module/components/page-patterns/patterns-list.js +2 -1
  219. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  220. package/build-module/components/page-patterns/use-patterns.js +23 -13
  221. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  222. package/build-module/components/page-templates/index.js +314 -38
  223. package/build-module/components/page-templates/index.js.map +1 -1
  224. package/build-module/components/{page-patterns/pagination.js → pagination/index.js} +24 -12
  225. package/build-module/components/pagination/index.js.map +1 -0
  226. package/build-module/components/{page-pages/side-editor.js → post-preview/index.js} +7 -3
  227. package/build-module/components/post-preview/index.js.map +1 -0
  228. package/build-module/components/preferences-modal/enable-feature.js +3 -2
  229. package/build-module/components/preferences-modal/enable-feature.js.map +1 -1
  230. package/build-module/components/preferences-modal/enable-panel-option.js +26 -0
  231. package/build-module/components/preferences-modal/enable-panel-option.js.map +1 -0
  232. package/build-module/components/preferences-modal/index.js +57 -9
  233. package/build-module/components/preferences-modal/index.js.map +1 -1
  234. package/build-module/components/revisions/index.js +4 -8
  235. package/build-module/components/revisions/index.js.map +1 -1
  236. package/build-module/components/routes/link.js +5 -2
  237. package/build-module/components/routes/link.js.map +1 -1
  238. package/build-module/components/save-button/index.js +6 -3
  239. package/build-module/components/save-button/index.js.map +1 -1
  240. package/build-module/components/sidebar/index.js +3 -11
  241. package/build-module/components/sidebar/index.js.map +1 -1
  242. package/build-module/components/sidebar-dataviews/add-new-view.js +1 -1
  243. package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
  244. package/build-module/components/sidebar-dataviews/default-views.js +17 -5
  245. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  246. package/build-module/components/sidebar-dataviews/index.js +2 -2
  247. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  248. package/build-module/components/sidebar-edit-mode/default-sidebar.js +1 -5
  249. package/build-module/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
  250. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +64 -12
  251. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
  252. package/build-module/components/sidebar-edit-mode/page-panels/index.js +2 -2
  253. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  254. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -4
  255. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
  256. package/build-module/components/sidebar-edit-mode/template-panel/index.js +6 -15
  257. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  258. package/build-module/components/sidebar-navigation-screen-details-footer/index.js +1 -1
  259. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  260. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +5 -2
  261. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  262. package/build-module/components/sidebar-navigation-screen-page/index.js +4 -1
  263. package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
  264. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js +61 -0
  265. package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -0
  266. package/build-module/components/sidebar-navigation-screen-templates/index.js +64 -9
  267. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  268. package/build-module/components/style-book/index.js +40 -10
  269. package/build-module/components/style-book/index.js.map +1 -1
  270. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +1 -1
  271. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  272. package/build-module/hooks/commands/use-edit-mode-commands.js +11 -6
  273. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  274. package/build-module/index.js +12 -7
  275. package/build-module/index.js.map +1 -1
  276. package/build-module/store/actions.js +36 -41
  277. package/build-module/store/actions.js.map +1 -1
  278. package/build-module/store/private-actions.js +6 -2
  279. package/build-module/store/private-actions.js.map +1 -1
  280. package/build-module/store/reducer.js +0 -44
  281. package/build-module/store/reducer.js.map +1 -1
  282. package/build-module/store/selectors.js +30 -38
  283. package/build-module/store/selectors.js.map +1 -1
  284. package/build-module/utils/get-is-list-page.js +1 -1
  285. package/build-module/utils/get-is-list-page.js.map +1 -1
  286. package/build-style/style-rtl.css +366 -268
  287. package/build-style/style.css +366 -268
  288. package/package.json +42 -42
  289. package/src/components/add-new-template/style.scss +2 -1
  290. package/src/components/block-editor/back-button.js +4 -2
  291. package/src/components/block-editor/resizable-editor.js +1 -1
  292. package/src/components/block-editor/style.scss +1 -2
  293. package/src/components/block-editor/use-post-link-props.js +20 -0
  294. package/src/components/block-editor/use-site-editor-settings.js +10 -41
  295. package/src/components/code-editor/style.scss +0 -4
  296. package/src/components/create-template-part-modal/index.js +83 -82
  297. package/src/components/editor/index.js +24 -31
  298. package/src/components/editor-canvas-container/index.js +8 -6
  299. package/src/components/global-styles/font-library-modal/collection-font-variant.js +7 -2
  300. package/src/components/global-styles/font-library-modal/confirm-delete-dialog.js +3 -3
  301. package/src/components/global-styles/font-library-modal/context.js +7 -7
  302. package/src/components/global-styles/font-library-modal/font-collection.js +10 -5
  303. package/src/components/global-styles/font-library-modal/index.js +44 -24
  304. package/src/components/global-styles/font-library-modal/installed-fonts.js +3 -3
  305. package/src/components/global-styles/font-library-modal/library-font-variant.js +7 -2
  306. package/src/components/global-styles/font-library-modal/local-fonts.js +53 -26
  307. package/src/components/global-styles/font-library-modal/resolvers.js +5 -5
  308. package/src/components/global-styles/font-library-modal/style.scss +5 -2
  309. package/src/components/global-styles/font-library-modal/{tab-layout.js → tab-panel-layout.js} +9 -3
  310. package/src/components/global-styles/font-library-modal/utils/index.js +21 -23
  311. package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamily.spec.js +58 -0
  312. package/src/components/global-styles/preview.js +55 -3
  313. package/src/components/global-styles/screen-color-palette.js +16 -26
  314. package/src/components/global-styles/screen-revisions/index.js +91 -92
  315. package/src/components/global-styles/screen-revisions/revisions-buttons.js +37 -38
  316. package/src/components/global-styles/screen-revisions/style.scss +77 -20
  317. package/src/components/global-styles/screen-revisions/test/use-global-styles-revisions.js +67 -0
  318. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +73 -46
  319. package/src/components/global-styles/ui.js +13 -74
  320. package/src/components/header-edit-mode/document-tools/index.js +33 -165
  321. package/src/components/header-edit-mode/index.js +6 -17
  322. package/src/components/header-edit-mode/mode-switcher/index.js +0 -4
  323. package/src/components/header-edit-mode/more-menu/index.js +9 -7
  324. package/src/components/header-edit-mode/style.scss +0 -47
  325. package/src/components/keyboard-shortcuts/edit-mode.js +1 -26
  326. package/src/components/keyboard-shortcuts/register.js +0 -43
  327. package/src/components/layout/index.js +8 -27
  328. package/src/components/layout/style.scss +10 -3
  329. package/src/components/list/style.scss +0 -5
  330. package/src/components/page/style.scss +1 -1
  331. package/src/components/page-main/index.js +8 -8
  332. package/src/components/page-pages/index.js +112 -41
  333. package/src/components/page-pages/style.scss +3 -2
  334. package/src/components/page-patterns/dataviews-pattern-actions.js +329 -0
  335. package/src/components/page-patterns/dataviews-patterns.js +380 -0
  336. package/src/components/page-patterns/duplicate-menu-item.js +1 -1
  337. package/src/components/page-patterns/grid-item.js +3 -2
  338. package/src/components/page-patterns/patterns-list.js +2 -1
  339. package/src/components/page-patterns/style.scss +89 -26
  340. package/src/components/page-patterns/use-patterns.js +24 -15
  341. package/src/components/page-templates/index.js +399 -64
  342. package/src/components/{page-patterns/pagination.js → pagination/index.js} +21 -10
  343. package/src/components/pagination/style.scss +5 -0
  344. package/src/components/post-preview/index.js +16 -0
  345. package/src/components/preferences-modal/enable-feature.js +9 -5
  346. package/src/components/preferences-modal/enable-panel-option.js +23 -0
  347. package/src/components/preferences-modal/index.js +107 -22
  348. package/src/components/revisions/index.js +8 -15
  349. package/src/components/routes/link.js +11 -3
  350. package/src/components/save-button/index.js +16 -3
  351. package/src/components/sidebar/index.js +6 -13
  352. package/src/components/sidebar-dataviews/add-new-view.js +1 -1
  353. package/src/components/sidebar-dataviews/default-views.js +23 -6
  354. package/src/components/sidebar-dataviews/index.js +2 -2
  355. package/src/components/sidebar-edit-mode/default-sidebar.js +0 -12
  356. package/src/components/sidebar-edit-mode/global-styles-sidebar.js +85 -14
  357. package/src/components/sidebar-edit-mode/page-panels/index.js +15 -1
  358. package/src/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -12
  359. package/src/components/sidebar-edit-mode/style.scss +0 -10
  360. package/src/components/sidebar-edit-mode/template-panel/index.js +44 -40
  361. package/src/components/sidebar-edit-mode/template-panel/style.scss +0 -4
  362. package/src/components/sidebar-navigation-screen-details-footer/index.js +1 -1
  363. package/src/components/sidebar-navigation-screen-global-styles/index.js +3 -2
  364. package/src/components/sidebar-navigation-screen-page/index.js +2 -1
  365. package/src/components/sidebar-navigation-screen-pages-dataviews/index.js +77 -0
  366. package/src/components/sidebar-navigation-screen-templates/index.js +85 -28
  367. package/src/components/sidebar-navigation-screen-templates/style.scss +9 -0
  368. package/src/components/site-hub/style.scss +5 -2
  369. package/src/components/style-book/index.js +65 -21
  370. package/src/components/style-book/style.scss +3 -3
  371. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +4 -1
  372. package/src/hooks/commands/use-edit-mode-commands.js +8 -12
  373. package/src/index.js +11 -5
  374. package/src/store/actions.js +35 -45
  375. package/src/store/private-actions.js +7 -3
  376. package/src/store/reducer.js +0 -44
  377. package/src/store/selectors.js +32 -38
  378. package/src/store/test/actions.js +11 -39
  379. package/src/store/test/reducer.js +1 -82
  380. package/src/store/test/selectors.js +0 -24
  381. package/src/style.scss +2 -1
  382. package/src/utils/get-is-list-page.js +2 -3
  383. package/build/components/global-styles/font-library-modal/tab-layout.js.map +0 -1
  384. package/build/components/global-styles/screen-revisions/get-revision-changes.js +0 -146
  385. package/build/components/global-styles/screen-revisions/get-revision-changes.js.map +0 -1
  386. package/build/components/header-edit-mode/undo-redo/redo.js +0 -41
  387. package/build/components/header-edit-mode/undo-redo/redo.js.map +0 -1
  388. package/build/components/header-edit-mode/undo-redo/undo.js +0 -40
  389. package/build/components/header-edit-mode/undo-redo/undo.js.map +0 -1
  390. package/build/components/page-pages/side-editor.js.map +0 -1
  391. package/build/components/page-patterns/pagination.js.map +0 -1
  392. package/build/components/page-templates/dataviews-templates.js +0 -317
  393. package/build/components/page-templates/dataviews-templates.js.map +0 -1
  394. package/build/components/secondary-sidebar/inserter-sidebar.js +0 -60
  395. package/build/components/secondary-sidebar/inserter-sidebar.js.map +0 -1
  396. package/build/components/secondary-sidebar/list-view-sidebar.js +0 -109
  397. package/build/components/secondary-sidebar/list-view-sidebar.js.map +0 -1
  398. package/build/components/sidebar-edit-mode/sidebar-fixed-bottom.js +0 -35
  399. package/build/components/sidebar-edit-mode/sidebar-fixed-bottom.js.map +0 -1
  400. package/build/components/sidebar-edit-mode/template-panel/last-revision.js +0 -73
  401. package/build/components/sidebar-edit-mode/template-panel/last-revision.js.map +0 -1
  402. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +0 -219
  403. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +0 -1
  404. package/build-module/components/global-styles/font-library-modal/tab-layout.js.map +0 -1
  405. package/build-module/components/global-styles/screen-revisions/get-revision-changes.js +0 -139
  406. package/build-module/components/global-styles/screen-revisions/get-revision-changes.js.map +0 -1
  407. package/build-module/components/header-edit-mode/undo-redo/redo.js +0 -33
  408. package/build-module/components/header-edit-mode/undo-redo/redo.js.map +0 -1
  409. package/build-module/components/header-edit-mode/undo-redo/undo.js +0 -32
  410. package/build-module/components/header-edit-mode/undo-redo/undo.js.map +0 -1
  411. package/build-module/components/page-pages/side-editor.js.map +0 -1
  412. package/build-module/components/page-patterns/pagination.js.map +0 -1
  413. package/build-module/components/page-templates/dataviews-templates.js +0 -309
  414. package/build-module/components/page-templates/dataviews-templates.js.map +0 -1
  415. package/build-module/components/secondary-sidebar/inserter-sidebar.js +0 -53
  416. package/build-module/components/secondary-sidebar/inserter-sidebar.js.map +0 -1
  417. package/build-module/components/secondary-sidebar/list-view-sidebar.js +0 -102
  418. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +0 -1
  419. package/build-module/components/sidebar-edit-mode/sidebar-fixed-bottom.js +0 -27
  420. package/build-module/components/sidebar-edit-mode/sidebar-fixed-bottom.js.map +0 -1
  421. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js +0 -65
  422. package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js.map +0 -1
  423. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +0 -209
  424. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +0 -1
  425. package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamilies.spec.js +0 -62
  426. package/src/components/global-styles/font-library-modal/utils/test/wpKebabCase.spec.js +0 -28
  427. package/src/components/global-styles/screen-revisions/get-revision-changes.js +0 -171
  428. package/src/components/global-styles/screen-revisions/test/get-revision-changes.js +0 -191
  429. package/src/components/header-edit-mode/undo-redo/redo.js +0 -38
  430. package/src/components/header-edit-mode/undo-redo/undo.js +0 -34
  431. package/src/components/page-pages/side-editor.js +0 -14
  432. package/src/components/page-templates/dataviews-templates.js +0 -360
  433. package/src/components/secondary-sidebar/inserter-sidebar.js +0 -66
  434. package/src/components/secondary-sidebar/list-view-sidebar.js +0 -123
  435. package/src/components/secondary-sidebar/style.scss +0 -65
  436. package/src/components/sidebar-edit-mode/sidebar-fixed-bottom.js +0 -26
  437. package/src/components/sidebar-edit-mode/template-panel/last-revision.js +0 -82
  438. package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +0 -279
@@ -3,9 +3,8 @@ import { createElement, Fragment } from "react";
3
3
  * WordPress dependencies
4
4
  */
5
5
  import { __, sprintf } from '@wordpress/i18n';
6
- import { Button, __experimentalUseNavigator as useNavigator, __experimentalConfirmDialog as ConfirmDialog, Spinner } from '@wordpress/components';
6
+ import { __experimentalUseNavigator as useNavigator, __experimentalConfirmDialog as ConfirmDialog, Spinner } from '@wordpress/components';
7
7
  import { useSelect, useDispatch } from '@wordpress/data';
8
- import { store as coreStore } from '@wordpress/core-data';
9
8
  import { useContext, useState, useEffect } from '@wordpress/element';
10
9
  import { privateApis as blockEditorPrivateApis, store as blockEditorStore } from '@wordpress/block-editor';
11
10
 
@@ -15,14 +14,16 @@ import { privateApis as blockEditorPrivateApis, store as blockEditorStore } from
15
14
  import ScreenHeader from '../header';
16
15
  import { unlock } from '../../../lock-unlock';
17
16
  import Revisions from '../../revisions';
18
- import SidebarFixedBottom from '../../sidebar-edit-mode/sidebar-fixed-bottom';
19
17
  import { store as editSiteStore } from '../../../store';
20
18
  import useGlobalStylesRevisions from './use-global-styles-revisions';
21
19
  import RevisionsButtons from './revisions-buttons';
20
+ import StyleBook from '../../style-book';
21
+ import Pagination from '../../pagination';
22
22
  const {
23
23
  GlobalStylesContext,
24
24
  areGlobalStyleConfigsEqual
25
25
  } = unlock(blockEditorPrivateApis);
26
+ const PAGE_SIZE = 10;
26
27
  function ScreenRevisions() {
27
28
  const {
28
29
  goTo
@@ -33,35 +34,25 @@ function ScreenRevisions() {
33
34
  } = useContext(GlobalStylesContext);
34
35
  const {
35
36
  blocks,
36
- editorCanvasContainerView,
37
- revisionsCount
38
- } = useSelect(select => {
39
- const {
40
- getEntityRecord,
41
- __experimentalGetCurrentGlobalStylesId,
42
- __experimentalGetDirtyEntityRecords
43
- } = select(coreStore);
44
- const isDirty = __experimentalGetDirtyEntityRecords().length > 0;
45
- const globalStylesId = __experimentalGetCurrentGlobalStylesId();
46
- const globalStyles = globalStylesId ? getEntityRecord('root', 'globalStyles', globalStylesId) : undefined;
47
- let _revisionsCount = globalStyles?._links?.['version-history']?.[0]?.count || 0;
48
- // one for the reset item.
49
- _revisionsCount++;
50
- // one for any dirty changes (unsaved).
51
- if (isDirty) {
52
- _revisionsCount++;
53
- }
54
- return {
55
- editorCanvasContainerView: unlock(select(editSiteStore)).getEditorCanvasContainerView(),
56
- blocks: select(blockEditorStore).getBlocks(),
57
- revisionsCount: _revisionsCount
58
- };
59
- }, []);
37
+ editorCanvasContainerView
38
+ } = useSelect(select => ({
39
+ editorCanvasContainerView: unlock(select(editSiteStore)).getEditorCanvasContainerView(),
40
+ blocks: select(blockEditorStore).getBlocks()
41
+ }), []);
42
+ const [currentPage, setCurrentPage] = useState(1);
43
+ const [currentRevisions, setCurrentRevisions] = useState([]);
60
44
  const {
61
45
  revisions,
62
46
  isLoading,
63
- hasUnsavedChanges
64
- } = useGlobalStylesRevisions();
47
+ hasUnsavedChanges,
48
+ revisionsCount
49
+ } = useGlobalStylesRevisions({
50
+ query: {
51
+ per_page: PAGE_SIZE,
52
+ page: currentPage
53
+ }
54
+ });
55
+ const numPages = Math.ceil(revisionsCount / PAGE_SIZE);
65
56
  const [currentlySelectedRevision, setCurrentlySelectedRevision] = useState(currentEditorGlobalStyles);
66
57
  const [isLoadingRevisionWithUnsavedChanges, setIsLoadingRevisionWithUnsavedChanges] = useState(false);
67
58
  const {
@@ -88,11 +79,16 @@ function ScreenRevisions() {
88
79
  });
89
80
  };
90
81
  useEffect(() => {
91
- if (editorCanvasContainerView !== 'global-styles-revisions') {
82
+ if (!editorCanvasContainerView || !editorCanvasContainerView.startsWith('global-styles-revisions')) {
92
83
  goTo('/'); // Return to global styles main panel.
93
84
  setEditorCanvasContainerView(editorCanvasContainerView);
94
85
  }
95
86
  }, [editorCanvasContainerView]);
87
+ useEffect(() => {
88
+ if (!isLoading && revisions.length) {
89
+ setCurrentRevisions(revisions);
90
+ }
91
+ }, [revisions, isLoading]);
96
92
  const firstRevision = revisions[0];
97
93
  const currentlySelectedRevisionId = currentlySelectedRevision?.id;
98
94
  const shouldSelectFirstItem = !!firstRevision?.id && !selectedRevisionMatchesEditorStyles && !currentlySelectedRevisionId;
@@ -115,44 +111,48 @@ function ScreenRevisions() {
115
111
 
116
112
  // Only display load button if there is a revision to load,
117
113
  // and it is different from the current editor styles.
118
- const isLoadButtonEnabled = !!currentlySelectedRevisionId && !selectedRevisionMatchesEditorStyles;
119
- const shouldShowRevisions = !isLoading && revisions.length;
114
+ const isLoadButtonEnabled = !!currentlySelectedRevisionId && currentlySelectedRevisionId !== 'unsaved' && !selectedRevisionMatchesEditorStyles;
115
+ const hasRevisions = !!currentRevisions.length;
120
116
  return createElement(Fragment, null, createElement(ScreenHeader, {
121
117
  title: revisionsCount &&
122
118
  // translators: %s: number of revisions.
123
119
  sprintf(__('Revisions (%s)'), revisionsCount),
124
120
  description: __('Click on previously saved styles to preview them. To restore a selected version to the editor, hit "Apply." When you\'re ready, use the Save button to save your changes.'),
125
121
  onBack: onCloseRevisions
126
- }), isLoading && createElement(Spinner, {
122
+ }), !hasRevisions && createElement(Spinner, {
127
123
  className: "edit-site-global-styles-screen-revisions__loading"
128
- }), shouldShowRevisions && createElement(Fragment, null, createElement(Revisions, {
124
+ }), hasRevisions && (editorCanvasContainerView === 'global-styles-revisions:style-book' ? createElement(StyleBook, {
125
+ userConfig: currentlySelectedRevision,
126
+ isSelected: () => {},
127
+ onClose: () => {
128
+ setEditorCanvasContainerView('global-styles-revisions');
129
+ }
130
+ }) : createElement(Revisions, {
129
131
  blocks: blocks,
130
132
  userConfig: currentlySelectedRevision,
131
- onClose: onCloseRevisions
132
- }), createElement("div", {
133
- className: "edit-site-global-styles-screen-revisions"
134
- }, createElement(RevisionsButtons, {
133
+ closeButtonLabel: __('Close revisions')
134
+ })), createElement(RevisionsButtons, {
135
135
  onChange: selectRevision,
136
136
  selectedRevisionId: currentlySelectedRevisionId,
137
- userRevisions: revisions,
138
- canApplyRevision: isLoadButtonEnabled
139
- }), isLoadButtonEnabled && createElement(SidebarFixedBottom, null, createElement(Button, {
140
- variant: "primary",
141
- className: "edit-site-global-styles-screen-revisions__button",
142
- disabled: !currentlySelectedRevisionId || currentlySelectedRevisionId === 'unsaved',
143
- onClick: () => {
144
- if (hasUnsavedChanges) {
145
- setIsLoadingRevisionWithUnsavedChanges(true);
146
- } else {
147
- restoreRevision(currentlySelectedRevision);
148
- }
149
- }
150
- }, currentlySelectedRevisionId === 'parent' ? __('Reset to defaults') : __('Apply')))), isLoadingRevisionWithUnsavedChanges && createElement(ConfirmDialog, {
137
+ userRevisions: currentRevisions,
138
+ canApplyRevision: isLoadButtonEnabled,
139
+ onApplyRevision: () => hasUnsavedChanges ? setIsLoadingRevisionWithUnsavedChanges(true) : restoreRevision(currentlySelectedRevision)
140
+ }), numPages > 1 && createElement("div", {
141
+ className: "edit-site-global-styles-screen-revisions__footer"
142
+ }, createElement(Pagination, {
143
+ className: "edit-site-global-styles-screen-revisions__pagination",
144
+ currentPage: currentPage,
145
+ numPages: numPages,
146
+ changePage: setCurrentPage,
147
+ totalItems: revisionsCount,
148
+ disabled: isLoading,
149
+ label: __('Global Styles pagination navigation')
150
+ })), isLoadingRevisionWithUnsavedChanges && createElement(ConfirmDialog, {
151
151
  isOpen: isLoadingRevisionWithUnsavedChanges,
152
152
  confirmButtonText: __('Apply'),
153
153
  onConfirm: () => restoreRevision(currentlySelectedRevision),
154
154
  onCancel: () => setIsLoadingRevisionWithUnsavedChanges(false)
155
- }, __('Any unsaved changes will be lost when you apply this revision.'))));
155
+ }, __('Any unsaved changes will be lost when you apply this revision.')));
156
156
  }
157
157
  export default ScreenRevisions;
158
158
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__","sprintf","Button","__experimentalUseNavigator","useNavigator","__experimentalConfirmDialog","ConfirmDialog","Spinner","useSelect","useDispatch","store","coreStore","useContext","useState","useEffect","privateApis","blockEditorPrivateApis","blockEditorStore","ScreenHeader","unlock","Revisions","SidebarFixedBottom","editSiteStore","useGlobalStylesRevisions","RevisionsButtons","GlobalStylesContext","areGlobalStyleConfigsEqual","ScreenRevisions","goTo","user","currentEditorGlobalStyles","setUserConfig","blocks","editorCanvasContainerView","revisionsCount","select","getEntityRecord","__experimentalGetCurrentGlobalStylesId","__experimentalGetDirtyEntityRecords","isDirty","length","globalStylesId","globalStyles","undefined","_revisionsCount","_links","count","getEditorCanvasContainerView","getBlocks","revisions","isLoading","hasUnsavedChanges","currentlySelectedRevision","setCurrentlySelectedRevision","isLoadingRevisionWithUnsavedChanges","setIsLoadingRevisionWithUnsavedChanges","setEditorCanvasContainerView","selectedRevisionMatchesEditorStyles","onCloseRevisions","restoreRevision","revision","styles","settings","selectRevision","id","firstRevision","currentlySelectedRevisionId","shouldSelectFirstItem","isLoadButtonEnabled","shouldShowRevisions","createElement","Fragment","title","description","onBack","className","userConfig","onClose","onChange","selectedRevisionId","userRevisions","canApplyRevision","variant","disabled","onClick","isOpen","confirmButtonText","onConfirm","onCancel"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-revisions/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tSpinner,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useContext, useState, useEffect } from '@wordpress/element';\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport ScreenHeader from '../header';\nimport { unlock } from '../../../lock-unlock';\nimport Revisions from '../../revisions';\nimport SidebarFixedBottom from '../../sidebar-edit-mode/sidebar-fixed-bottom';\nimport { store as editSiteStore } from '../../../store';\nimport useGlobalStylesRevisions from './use-global-styles-revisions';\nimport RevisionsButtons from './revisions-buttons';\n\nconst { GlobalStylesContext, areGlobalStyleConfigsEqual } = unlock(\n\tblockEditorPrivateApis\n);\n\nfunction ScreenRevisions() {\n\tconst { goTo } = useNavigator();\n\tconst { user: currentEditorGlobalStyles, setUserConfig } =\n\t\tuseContext( GlobalStylesContext );\n\tconst { blocks, editorCanvasContainerView, revisionsCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEntityRecord,\n\t\t\t\t__experimentalGetCurrentGlobalStylesId,\n\t\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\t} = select( coreStore );\n\t\t\tconst isDirty = __experimentalGetDirtyEntityRecords().length > 0;\n\t\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\t\tconst globalStyles = globalStylesId\n\t\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t\t: undefined;\n\t\t\tlet _revisionsCount =\n\t\t\t\tglobalStyles?._links?.[ 'version-history' ]?.[ 0 ]?.count || 0;\n\t\t\t// one for the reset item.\n\t\t\t_revisionsCount++;\n\t\t\t// one for any dirty changes (unsaved).\n\t\t\tif ( isDirty ) {\n\t\t\t\t_revisionsCount++;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\teditorCanvasContainerView: unlock(\n\t\t\t\t\tselect( editSiteStore )\n\t\t\t\t).getEditorCanvasContainerView(),\n\t\t\t\tblocks: select( blockEditorStore ).getBlocks(),\n\t\t\t\trevisionsCount: _revisionsCount,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst { revisions, isLoading, hasUnsavedChanges } =\n\t\tuseGlobalStylesRevisions();\n\tconst [ currentlySelectedRevision, setCurrentlySelectedRevision ] =\n\t\tuseState( currentEditorGlobalStyles );\n\tconst [\n\t\tisLoadingRevisionWithUnsavedChanges,\n\t\tsetIsLoadingRevisionWithUnsavedChanges,\n\t] = useState( false );\n\tconst { setEditorCanvasContainerView } = unlock(\n\t\tuseDispatch( editSiteStore )\n\t);\n\tconst selectedRevisionMatchesEditorStyles = areGlobalStyleConfigsEqual(\n\t\tcurrentlySelectedRevision,\n\t\tcurrentEditorGlobalStyles\n\t);\n\n\tconst onCloseRevisions = () => {\n\t\tgoTo( '/' ); // Return to global styles main panel.\n\t\tsetEditorCanvasContainerView( undefined );\n\t};\n\n\tconst restoreRevision = ( revision ) => {\n\t\tsetUserConfig( () => ( {\n\t\t\tstyles: revision?.styles,\n\t\t\tsettings: revision?.settings,\n\t\t} ) );\n\t\tsetIsLoadingRevisionWithUnsavedChanges( false );\n\t\tonCloseRevisions();\n\t};\n\n\tconst selectRevision = ( revision ) => {\n\t\tsetCurrentlySelectedRevision( {\n\t\t\tstyles: revision?.styles || {},\n\t\t\tsettings: revision?.settings || {},\n\t\t\tid: revision?.id,\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( editorCanvasContainerView !== 'global-styles-revisions' ) {\n\t\t\tgoTo( '/' ); // Return to global styles main panel.\n\t\t\tsetEditorCanvasContainerView( editorCanvasContainerView );\n\t\t}\n\t}, [ editorCanvasContainerView ] );\n\n\tconst firstRevision = revisions[ 0 ];\n\tconst currentlySelectedRevisionId = currentlySelectedRevision?.id;\n\tconst shouldSelectFirstItem =\n\t\t!! firstRevision?.id &&\n\t\t! selectedRevisionMatchesEditorStyles &&\n\t\t! currentlySelectedRevisionId;\n\n\tuseEffect( () => {\n\t\t/*\n\t\t * Ensure that the first item is selected and loaded into the preview pane\n\t\t * when no revision is selected and the selected styles don't match the current editor styles.\n\t\t * This is required in case editor styles are changed outside the revisions panel,\n\t\t * e.g., via the reset styles function of useGlobalStylesReset().\n\t\t * See: https://github.com/WordPress/gutenberg/issues/55866\n\t\t */\n\t\tif ( shouldSelectFirstItem ) {\n\t\t\tsetCurrentlySelectedRevision( {\n\t\t\t\tstyles: firstRevision?.styles || {},\n\t\t\t\tsettings: firstRevision?.settings || {},\n\t\t\t\tid: firstRevision?.id,\n\t\t\t} );\n\t\t}\n\t}, [ shouldSelectFirstItem, firstRevision ] );\n\n\t// Only display load button if there is a revision to load,\n\t// and it is different from the current editor styles.\n\tconst isLoadButtonEnabled =\n\t\t!! currentlySelectedRevisionId && ! selectedRevisionMatchesEditorStyles;\n\tconst shouldShowRevisions = ! isLoading && revisions.length;\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={\n\t\t\t\t\trevisionsCount &&\n\t\t\t\t\t// translators: %s: number of revisions.\n\t\t\t\t\tsprintf( __( 'Revisions (%s)' ), revisionsCount )\n\t\t\t\t}\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Click on previously saved styles to preview them. To restore a selected version to the editor, hit \"Apply.\" When you\\'re ready, use the Save button to save your changes.'\n\t\t\t\t) }\n\t\t\t\tonBack={ onCloseRevisions }\n\t\t\t/>\n\t\t\t{ isLoading && (\n\t\t\t\t<Spinner className=\"edit-site-global-styles-screen-revisions__loading\" />\n\t\t\t) }\n\t\t\t{ shouldShowRevisions && (\n\t\t\t\t<>\n\t\t\t\t\t<Revisions\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tuserConfig={ currentlySelectedRevision }\n\t\t\t\t\t\tonClose={ onCloseRevisions }\n\t\t\t\t\t/>\n\t\t\t\t\t<div className=\"edit-site-global-styles-screen-revisions\">\n\t\t\t\t\t\t<RevisionsButtons\n\t\t\t\t\t\t\tonChange={ selectRevision }\n\t\t\t\t\t\t\tselectedRevisionId={ currentlySelectedRevisionId }\n\t\t\t\t\t\t\tuserRevisions={ revisions }\n\t\t\t\t\t\t\tcanApplyRevision={ isLoadButtonEnabled }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ isLoadButtonEnabled && (\n\t\t\t\t\t\t\t<SidebarFixedBottom>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__button\"\n\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t! currentlySelectedRevisionId ||\n\t\t\t\t\t\t\t\t\t\tcurrentlySelectedRevisionId ===\n\t\t\t\t\t\t\t\t\t\t\t'unsaved'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tif ( hasUnsavedChanges ) {\n\t\t\t\t\t\t\t\t\t\t\tsetIsLoadingRevisionWithUnsavedChanges(\n\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\trestoreRevision(\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentlySelectedRevision\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ currentlySelectedRevisionId === 'parent'\n\t\t\t\t\t\t\t\t\t\t? __( 'Reset to defaults' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Apply' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</SidebarFixedBottom>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t\t{ isLoadingRevisionWithUnsavedChanges && (\n\t\t\t\t\t\t<ConfirmDialog\n\t\t\t\t\t\t\tisOpen={ isLoadingRevisionWithUnsavedChanges }\n\t\t\t\t\t\t\tconfirmButtonText={ __( 'Apply' ) }\n\t\t\t\t\t\t\tonConfirm={ () =>\n\t\t\t\t\t\t\t\trestoreRevision( currentlySelectedRevision )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonCancel={ () =>\n\t\t\t\t\t\t\t\tsetIsLoadingRevisionWithUnsavedChanges( false )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Any unsaved changes will be lost when you apply this revision.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ConfirmDialog>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default ScreenRevisions;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SACCC,MAAM,EACNC,0BAA0B,IAAIC,YAAY,EAC1CC,2BAA2B,IAAIC,aAAa,EAC5CC,OAAO,QACD,uBAAuB;AAC9B,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,UAAU,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,oBAAoB;AACpE,SACCC,WAAW,IAAIC,sBAAsB,EACrCN,KAAK,IAAIO,gBAAgB,QACnB,yBAAyB;;AAEhC;AACA;AACA;AACA,OAAOC,YAAY,MAAM,WAAW;AACpC,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,OAAOC,SAAS,MAAM,iBAAiB;AACvC,OAAOC,kBAAkB,MAAM,8CAA8C;AAC7E,SAASX,KAAK,IAAIY,aAAa,QAAQ,gBAAgB;AACvD,OAAOC,wBAAwB,MAAM,+BAA+B;AACpE,OAAOC,gBAAgB,MAAM,qBAAqB;AAElD,MAAM;EAAEC,mBAAmB;EAAEC;AAA2B,CAAC,GAAGP,MAAM,CACjEH,sBACD,CAAC;AAED,SAASW,eAAeA,CAAA,EAAG;EAC1B,MAAM;IAAEC;EAAK,CAAC,GAAGxB,YAAY,CAAC,CAAC;EAC/B,MAAM;IAAEyB,IAAI,EAAEC,yBAAyB;IAAEC;EAAc,CAAC,GACvDnB,UAAU,CAAEa,mBAAoB,CAAC;EAClC,MAAM;IAAEO,MAAM;IAAEC,yBAAyB;IAAEC;EAAe,CAAC,GAAG1B,SAAS,CACpE2B,MAAM,IAAM;IACb,MAAM;MACLC,eAAe;MACfC,sCAAsC;MACtCC;IACD,CAAC,GAAGH,MAAM,CAAExB,SAAU,CAAC;IACvB,MAAM4B,OAAO,GAAGD,mCAAmC,CAAC,CAAC,CAACE,MAAM,GAAG,CAAC;IAChE,MAAMC,cAAc,GAAGJ,sCAAsC,CAAC,CAAC;IAC/D,MAAMK,YAAY,GAAGD,cAAc,GAChCL,eAAe,CAAE,MAAM,EAAE,cAAc,EAAEK,cAAe,CAAC,GACzDE,SAAS;IACZ,IAAIC,eAAe,GAClBF,YAAY,EAAEG,MAAM,GAAI,iBAAiB,CAAE,GAAI,CAAC,CAAE,EAAEC,KAAK,IAAI,CAAC;IAC/D;IACAF,eAAe,EAAE;IACjB;IACA,IAAKL,OAAO,EAAG;MACdK,eAAe,EAAE;IAClB;IACA,OAAO;MACNX,yBAAyB,EAAEd,MAAM,CAChCgB,MAAM,CAAEb,aAAc,CACvB,CAAC,CAACyB,4BAA4B,CAAC,CAAC;MAChCf,MAAM,EAAEG,MAAM,CAAElB,gBAAiB,CAAC,CAAC+B,SAAS,CAAC,CAAC;MAC9Cd,cAAc,EAAEU;IACjB,CAAC;EACF,CAAC,EACD,EACD,CAAC;EACD,MAAM;IAAEK,SAAS;IAAEC,SAAS;IAAEC;EAAkB,CAAC,GAChD5B,wBAAwB,CAAC,CAAC;EAC3B,MAAM,CAAE6B,yBAAyB,EAAEC,4BAA4B,CAAE,GAChExC,QAAQ,CAAEiB,yBAA0B,CAAC;EACtC,MAAM,CACLwB,mCAAmC,EACnCC,sCAAsC,CACtC,GAAG1C,QAAQ,CAAE,KAAM,CAAC;EACrB,MAAM;IAAE2C;EAA6B,CAAC,GAAGrC,MAAM,CAC9CV,WAAW,CAAEa,aAAc,CAC5B,CAAC;EACD,MAAMmC,mCAAmC,GAAG/B,0BAA0B,CACrE0B,yBAAyB,EACzBtB,yBACD,CAAC;EAED,MAAM4B,gBAAgB,GAAGA,CAAA,KAAM;IAC9B9B,IAAI,CAAE,GAAI,CAAC,CAAC,CAAC;IACb4B,4BAA4B,CAAEb,SAAU,CAAC;EAC1C,CAAC;EAED,MAAMgB,eAAe,GAAKC,QAAQ,IAAM;IACvC7B,aAAa,CAAE,OAAQ;MACtB8B,MAAM,EAAED,QAAQ,EAAEC,MAAM;MACxBC,QAAQ,EAAEF,QAAQ,EAAEE;IACrB,CAAC,CAAG,CAAC;IACLP,sCAAsC,CAAE,KAAM,CAAC;IAC/CG,gBAAgB,CAAC,CAAC;EACnB,CAAC;EAED,MAAMK,cAAc,GAAKH,QAAQ,IAAM;IACtCP,4BAA4B,CAAE;MAC7BQ,MAAM,EAAED,QAAQ,EAAEC,MAAM,IAAI,CAAC,CAAC;MAC9BC,QAAQ,EAAEF,QAAQ,EAAEE,QAAQ,IAAI,CAAC,CAAC;MAClCE,EAAE,EAAEJ,QAAQ,EAAEI;IACf,CAAE,CAAC;EACJ,CAAC;EAEDlD,SAAS,CAAE,MAAM;IAChB,IAAKmB,yBAAyB,KAAK,yBAAyB,EAAG;MAC9DL,IAAI,CAAE,GAAI,CAAC,CAAC,CAAC;MACb4B,4BAA4B,CAAEvB,yBAA0B,CAAC;IAC1D;EACD,CAAC,EAAE,CAAEA,yBAAyB,CAAG,CAAC;EAElC,MAAMgC,aAAa,GAAGhB,SAAS,CAAE,CAAC,CAAE;EACpC,MAAMiB,2BAA2B,GAAGd,yBAAyB,EAAEY,EAAE;EACjE,MAAMG,qBAAqB,GAC1B,CAAC,CAAEF,aAAa,EAAED,EAAE,IACpB,CAAEP,mCAAmC,IACrC,CAAES,2BAA2B;EAE9BpD,SAAS,CAAE,MAAM;IAChB;AACF;AACA;AACA;AACA;AACA;AACA;IACE,IAAKqD,qBAAqB,EAAG;MAC5Bd,4BAA4B,CAAE;QAC7BQ,MAAM,EAAEI,aAAa,EAAEJ,MAAM,IAAI,CAAC,CAAC;QACnCC,QAAQ,EAAEG,aAAa,EAAEH,QAAQ,IAAI,CAAC,CAAC;QACvCE,EAAE,EAAEC,aAAa,EAAED;MACpB,CAAE,CAAC;IACJ;EACD,CAAC,EAAE,CAAEG,qBAAqB,EAAEF,aAAa,CAAG,CAAC;;EAE7C;EACA;EACA,MAAMG,mBAAmB,GACxB,CAAC,CAAEF,2BAA2B,IAAI,CAAET,mCAAmC;EACxE,MAAMY,mBAAmB,GAAG,CAAEnB,SAAS,IAAID,SAAS,CAACT,MAAM;EAE3D,OACC8B,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACpD,YAAY;IACZsD,KAAK,EACJtC,cAAc;IACd;IACAjC,OAAO,CAAED,EAAE,CAAE,gBAAiB,CAAC,EAAEkC,cAAe,CAChD;IACDuC,WAAW,EAAGzE,EAAE,CACf,2KACD,CAAG;IACH0E,MAAM,EAAGhB;EAAkB,CAC3B,CAAC,EACAR,SAAS,IACVoB,aAAA,CAAC/D,OAAO;IAACoE,SAAS,EAAC;EAAmD,CAAE,CACxE,EACCN,mBAAmB,IACpBC,aAAA,CAAAC,QAAA,QACCD,aAAA,CAAClD,SAAS;IACTY,MAAM,EAAGA,MAAQ;IACjB4C,UAAU,EAAGxB,yBAA2B;IACxCyB,OAAO,EAAGnB;EAAkB,CAC5B,CAAC,EACFY,aAAA;IAAKK,SAAS,EAAC;EAA0C,GACxDL,aAAA,CAAC9C,gBAAgB;IAChBsD,QAAQ,EAAGf,cAAgB;IAC3BgB,kBAAkB,EAAGb,2BAA6B;IAClDc,aAAa,EAAG/B,SAAW;IAC3BgC,gBAAgB,EAAGb;EAAqB,CACxC,CAAC,EACAA,mBAAmB,IACpBE,aAAA,CAACjD,kBAAkB,QAClBiD,aAAA,CAACpE,MAAM;IACNgF,OAAO,EAAC,SAAS;IACjBP,SAAS,EAAC,kDAAkD;IAC5DQ,QAAQ,EACP,CAAEjB,2BAA2B,IAC7BA,2BAA2B,KAC1B,SACD;IACDkB,OAAO,EAAGA,CAAA,KAAM;MACf,IAAKjC,iBAAiB,EAAG;QACxBI,sCAAsC,CACrC,IACD,CAAC;MACF,CAAC,MAAM;QACNI,eAAe,CACdP,yBACD,CAAC;MACF;IACD;EAAG,GAEDc,2BAA2B,KAAK,QAAQ,GACvClE,EAAE,CAAE,mBAAoB,CAAC,GACzBA,EAAE,CAAE,OAAQ,CACR,CACW,CAEjB,CAAC,EACJsD,mCAAmC,IACpCgB,aAAA,CAAChE,aAAa;IACb+E,MAAM,EAAG/B,mCAAqC;IAC9CgC,iBAAiB,EAAGtF,EAAE,CAAE,OAAQ,CAAG;IACnCuF,SAAS,EAAGA,CAAA,KACX5B,eAAe,CAAEP,yBAA0B,CAC3C;IACDoC,QAAQ,EAAGA,CAAA,KACVjC,sCAAsC,CAAE,KAAM;EAC9C,GAECvD,EAAE,CACH,gEACD,CACc,CAEf,CAEF,CAAC;AAEL;AAEA,eAAe2B,eAAe"}
1
+ {"version":3,"names":["__","sprintf","__experimentalUseNavigator","useNavigator","__experimentalConfirmDialog","ConfirmDialog","Spinner","useSelect","useDispatch","useContext","useState","useEffect","privateApis","blockEditorPrivateApis","store","blockEditorStore","ScreenHeader","unlock","Revisions","editSiteStore","useGlobalStylesRevisions","RevisionsButtons","StyleBook","Pagination","GlobalStylesContext","areGlobalStyleConfigsEqual","PAGE_SIZE","ScreenRevisions","goTo","user","currentEditorGlobalStyles","setUserConfig","blocks","editorCanvasContainerView","select","getEditorCanvasContainerView","getBlocks","currentPage","setCurrentPage","currentRevisions","setCurrentRevisions","revisions","isLoading","hasUnsavedChanges","revisionsCount","query","per_page","page","numPages","Math","ceil","currentlySelectedRevision","setCurrentlySelectedRevision","isLoadingRevisionWithUnsavedChanges","setIsLoadingRevisionWithUnsavedChanges","setEditorCanvasContainerView","selectedRevisionMatchesEditorStyles","onCloseRevisions","undefined","restoreRevision","revision","styles","settings","selectRevision","id","startsWith","length","firstRevision","currentlySelectedRevisionId","shouldSelectFirstItem","isLoadButtonEnabled","hasRevisions","createElement","Fragment","title","description","onBack","className","userConfig","isSelected","onClose","closeButtonLabel","onChange","selectedRevisionId","userRevisions","canApplyRevision","onApplyRevision","changePage","totalItems","disabled","label","isOpen","confirmButtonText","onConfirm","onCancel"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-revisions/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tSpinner,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useContext, useState, useEffect } from '@wordpress/element';\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport ScreenHeader from '../header';\nimport { unlock } from '../../../lock-unlock';\nimport Revisions from '../../revisions';\nimport { store as editSiteStore } from '../../../store';\nimport useGlobalStylesRevisions from './use-global-styles-revisions';\nimport RevisionsButtons from './revisions-buttons';\nimport StyleBook from '../../style-book';\nimport Pagination from '../../pagination';\n\nconst { GlobalStylesContext, areGlobalStyleConfigsEqual } = unlock(\n\tblockEditorPrivateApis\n);\n\nconst PAGE_SIZE = 10;\n\nfunction ScreenRevisions() {\n\tconst { goTo } = useNavigator();\n\tconst { user: currentEditorGlobalStyles, setUserConfig } =\n\t\tuseContext( GlobalStylesContext );\n\tconst { blocks, editorCanvasContainerView } = useSelect(\n\t\t( select ) => ( {\n\t\t\teditorCanvasContainerView: unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t).getEditorCanvasContainerView(),\n\t\t\tblocks: select( blockEditorStore ).getBlocks(),\n\t\t} ),\n\t\t[]\n\t);\n\tconst [ currentPage, setCurrentPage ] = useState( 1 );\n\tconst [ currentRevisions, setCurrentRevisions ] = useState( [] );\n\tconst { revisions, isLoading, hasUnsavedChanges, revisionsCount } =\n\t\tuseGlobalStylesRevisions( {\n\t\t\tquery: {\n\t\t\t\tper_page: PAGE_SIZE,\n\t\t\t\tpage: currentPage,\n\t\t\t},\n\t\t} );\n\n\tconst numPages = Math.ceil( revisionsCount / PAGE_SIZE );\n\n\tconst [ currentlySelectedRevision, setCurrentlySelectedRevision ] =\n\t\tuseState( currentEditorGlobalStyles );\n\tconst [\n\t\tisLoadingRevisionWithUnsavedChanges,\n\t\tsetIsLoadingRevisionWithUnsavedChanges,\n\t] = useState( false );\n\tconst { setEditorCanvasContainerView } = unlock(\n\t\tuseDispatch( editSiteStore )\n\t);\n\tconst selectedRevisionMatchesEditorStyles = areGlobalStyleConfigsEqual(\n\t\tcurrentlySelectedRevision,\n\t\tcurrentEditorGlobalStyles\n\t);\n\n\tconst onCloseRevisions = () => {\n\t\tgoTo( '/' ); // Return to global styles main panel.\n\t\tsetEditorCanvasContainerView( undefined );\n\t};\n\n\tconst restoreRevision = ( revision ) => {\n\t\tsetUserConfig( () => ( {\n\t\t\tstyles: revision?.styles,\n\t\t\tsettings: revision?.settings,\n\t\t} ) );\n\t\tsetIsLoadingRevisionWithUnsavedChanges( false );\n\t\tonCloseRevisions();\n\t};\n\n\tconst selectRevision = ( revision ) => {\n\t\tsetCurrentlySelectedRevision( {\n\t\t\tstyles: revision?.styles || {},\n\t\t\tsettings: revision?.settings || {},\n\t\t\tid: revision?.id,\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! editorCanvasContainerView ||\n\t\t\t! editorCanvasContainerView.startsWith( 'global-styles-revisions' )\n\t\t) {\n\t\t\tgoTo( '/' ); // Return to global styles main panel.\n\t\t\tsetEditorCanvasContainerView( editorCanvasContainerView );\n\t\t}\n\t}, [ editorCanvasContainerView ] );\n\n\tuseEffect( () => {\n\t\tif ( ! isLoading && revisions.length ) {\n\t\t\tsetCurrentRevisions( revisions );\n\t\t}\n\t}, [ revisions, isLoading ] );\n\n\tconst firstRevision = revisions[ 0 ];\n\tconst currentlySelectedRevisionId = currentlySelectedRevision?.id;\n\tconst shouldSelectFirstItem =\n\t\t!! firstRevision?.id &&\n\t\t! selectedRevisionMatchesEditorStyles &&\n\t\t! currentlySelectedRevisionId;\n\n\tuseEffect( () => {\n\t\t/*\n\t\t * Ensure that the first item is selected and loaded into the preview pane\n\t\t * when no revision is selected and the selected styles don't match the current editor styles.\n\t\t * This is required in case editor styles are changed outside the revisions panel,\n\t\t * e.g., via the reset styles function of useGlobalStylesReset().\n\t\t * See: https://github.com/WordPress/gutenberg/issues/55866\n\t\t */\n\t\tif ( shouldSelectFirstItem ) {\n\t\t\tsetCurrentlySelectedRevision( {\n\t\t\t\tstyles: firstRevision?.styles || {},\n\t\t\t\tsettings: firstRevision?.settings || {},\n\t\t\t\tid: firstRevision?.id,\n\t\t\t} );\n\t\t}\n\t}, [ shouldSelectFirstItem, firstRevision ] );\n\n\t// Only display load button if there is a revision to load,\n\t// and it is different from the current editor styles.\n\tconst isLoadButtonEnabled =\n\t\t!! currentlySelectedRevisionId &&\n\t\tcurrentlySelectedRevisionId !== 'unsaved' &&\n\t\t! selectedRevisionMatchesEditorStyles;\n\tconst hasRevisions = !! currentRevisions.length;\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={\n\t\t\t\t\trevisionsCount &&\n\t\t\t\t\t// translators: %s: number of revisions.\n\t\t\t\t\tsprintf( __( 'Revisions (%s)' ), revisionsCount )\n\t\t\t\t}\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Click on previously saved styles to preview them. To restore a selected version to the editor, hit \"Apply.\" When you\\'re ready, use the Save button to save your changes.'\n\t\t\t\t) }\n\t\t\t\tonBack={ onCloseRevisions }\n\t\t\t/>\n\t\t\t{ ! hasRevisions && (\n\t\t\t\t<Spinner className=\"edit-site-global-styles-screen-revisions__loading\" />\n\t\t\t) }\n\t\t\t{ hasRevisions &&\n\t\t\t\t( editorCanvasContainerView ===\n\t\t\t\t'global-styles-revisions:style-book' ? (\n\t\t\t\t\t<StyleBook\n\t\t\t\t\t\tuserConfig={ currentlySelectedRevision }\n\t\t\t\t\t\tisSelected={ () => {} }\n\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\tsetEditorCanvasContainerView(\n\t\t\t\t\t\t\t\t'global-styles-revisions'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<Revisions\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tuserConfig={ currentlySelectedRevision }\n\t\t\t\t\t\tcloseButtonLabel={ __( 'Close revisions' ) }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t<RevisionsButtons\n\t\t\t\tonChange={ selectRevision }\n\t\t\t\tselectedRevisionId={ currentlySelectedRevisionId }\n\t\t\t\tuserRevisions={ currentRevisions }\n\t\t\t\tcanApplyRevision={ isLoadButtonEnabled }\n\t\t\t\tonApplyRevision={ () =>\n\t\t\t\t\thasUnsavedChanges\n\t\t\t\t\t\t? setIsLoadingRevisionWithUnsavedChanges( true )\n\t\t\t\t\t\t: restoreRevision( currentlySelectedRevision )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ numPages > 1 && (\n\t\t\t\t<div className=\"edit-site-global-styles-screen-revisions__footer\">\n\t\t\t\t\t<Pagination\n\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__pagination\"\n\t\t\t\t\t\tcurrentPage={ currentPage }\n\t\t\t\t\t\tnumPages={ numPages }\n\t\t\t\t\t\tchangePage={ setCurrentPage }\n\t\t\t\t\t\ttotalItems={ revisionsCount }\n\t\t\t\t\t\tdisabled={ isLoading }\n\t\t\t\t\t\tlabel={ __( 'Global Styles pagination navigation' ) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ isLoadingRevisionWithUnsavedChanges && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tisOpen={ isLoadingRevisionWithUnsavedChanges }\n\t\t\t\t\tconfirmButtonText={ __( 'Apply' ) }\n\t\t\t\t\tonConfirm={ () =>\n\t\t\t\t\t\trestoreRevision( currentlySelectedRevision )\n\t\t\t\t\t}\n\t\t\t\t\tonCancel={ () =>\n\t\t\t\t\t\tsetIsLoadingRevisionWithUnsavedChanges( false )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Any unsaved changes will be lost when you apply this revision.'\n\t\t\t\t\t) }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default ScreenRevisions;\n"],"mappings":"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"}
@@ -7,39 +7,32 @@ import classnames from 'classnames';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
10
- import { __, _n, sprintf } from '@wordpress/i18n';
10
+ import { __, sprintf } from '@wordpress/i18n';
11
11
  import { Button } from '@wordpress/components';
12
12
  import { dateI18n, getDate, humanTimeDiff, getSettings } from '@wordpress/date';
13
13
  import { store as coreStore } from '@wordpress/core-data';
14
14
  import { useSelect } from '@wordpress/data';
15
- import { useMemo } from '@wordpress/element';
16
- import { getBlockTypes } from '@wordpress/blocks';
15
+ import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
17
16
 
18
17
  /**
19
18
  * Internal dependencies
20
19
  */
21
- import getRevisionChanges from './get-revision-changes';
20
+ import { unlock } from '../../../lock-unlock';
22
21
  const DAY_IN_MILLISECONDS = 60 * 60 * 1000 * 24;
23
- const MAX_CHANGES = 7;
22
+ const {
23
+ getGlobalStylesChanges
24
+ } = unlock(blockEditorPrivateApis);
24
25
  function ChangesSummary({
25
26
  revision,
26
- previousRevision,
27
- blockNames
27
+ previousRevision
28
28
  }) {
29
- const changes = getRevisionChanges(revision, previousRevision, blockNames);
29
+ const changes = getGlobalStylesChanges(revision, previousRevision, {
30
+ maxResults: 7
31
+ });
30
32
  const changesLength = changes.length;
31
33
  if (!changesLength) {
32
34
  return null;
33
35
  }
34
-
35
- // Truncate to `n` results if necessary.
36
- if (changesLength > MAX_CHANGES) {
37
- const deleteCount = changesLength - MAX_CHANGES;
38
- const andMoreText = sprintf(
39
- // translators: %d: number of global styles changes that are not displayed in the UI.
40
- _n('…and %d more change.', '…and %d more changes.', deleteCount), deleteCount);
41
- changes.splice(MAX_CHANGES, deleteCount, andMoreText);
42
- }
43
36
  return createElement("span", {
44
37
  "data-testid": "global-styles-revision-changes",
45
38
  className: "edit-site-global-styles-screen-revisions__changes"
@@ -85,7 +78,8 @@ function RevisionsButtons({
85
78
  userRevisions,
86
79
  selectedRevisionId,
87
80
  onChange,
88
- canApplyRevision
81
+ canApplyRevision,
82
+ onApplyRevision
89
83
  }) {
90
84
  const {
91
85
  currentThemeName,
@@ -101,23 +95,13 @@ function RevisionsButtons({
101
95
  currentUser: getCurrentUser()
102
96
  };
103
97
  }, []);
104
- const blockNames = useMemo(() => {
105
- const blockTypes = getBlockTypes();
106
- return blockTypes.reduce((accumulator, {
107
- name,
108
- title
109
- }) => {
110
- accumulator[name] = title;
111
- return accumulator;
112
- }, {});
113
- }, []);
114
98
  const dateNowInMs = getDate().getTime();
115
99
  const {
116
100
  datetimeAbbreviated
117
101
  } = getSettings().formats;
118
102
  return createElement("ol", {
119
103
  className: "edit-site-global-styles-screen-revisions__revisions-list",
120
- "aria-label": __('Global styles revisions'),
104
+ "aria-label": __('Global styles revisions list'),
121
105
  role: "group"
122
106
  }, userRevisions.map((revision, index) => {
123
107
  const {
@@ -143,7 +127,8 @@ function RevisionsButtons({
143
127
  'is-active': areStylesEqual,
144
128
  'is-reset': isReset
145
129
  }),
146
- key: id
130
+ key: id,
131
+ "aria-current": isSelected
147
132
  }, createElement(Button, {
148
133
  className: "edit-site-global-styles-screen-revisions__revision-button",
149
134
  disabled: isSelected,
@@ -162,16 +147,22 @@ function RevisionsButtons({
162
147
  }, __('(Unsaved)')) : createElement("time", {
163
148
  className: "edit-site-global-styles-screen-revisions__date",
164
149
  dateTime: modified
165
- }, displayDate), isSelected && createElement(ChangesSummary, {
166
- blockNames: blockNames,
167
- revision: revision,
168
- previousRevision: index < userRevisions.length ? userRevisions[index + 1] : {}
169
- }), createElement("span", {
150
+ }, displayDate), createElement("span", {
170
151
  className: "edit-site-global-styles-screen-revisions__meta"
171
152
  }, createElement("img", {
172
153
  alt: authorDisplayName,
173
154
  src: authorAvatar
174
- }), authorDisplayName))));
155
+ }), authorDisplayName), isSelected && createElement(ChangesSummary, {
156
+ revision: revision,
157
+ previousRevision: index < userRevisions.length ? userRevisions[index + 1] : {}
158
+ }))), isSelected && (areStylesEqual ? createElement("p", {
159
+ className: "edit-site-global-styles-screen-revisions__applied-text"
160
+ }, __('These styles are already applied to your site.')) : createElement(Button, {
161
+ disabled: areStylesEqual,
162
+ variant: "primary",
163
+ className: "edit-site-global-styles-screen-revisions__apply-button",
164
+ onClick: onApplyRevision
165
+ }, isReset ? __('Reset to defaults') : __('Apply'))));
175
166
  }));
176
167
  }
177
168
  export default RevisionsButtons;
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","__","_n","sprintf","Button","dateI18n","getDate","humanTimeDiff","getSettings","store","coreStore","useSelect","useMemo","getBlockTypes","getRevisionChanges","DAY_IN_MILLISECONDS","MAX_CHANGES","ChangesSummary","revision","previousRevision","blockNames","changes","changesLength","length","deleteCount","andMoreText","splice","createElement","className","join","getRevisionLabel","id","authorDisplayName","formattedModifiedDate","areStylesEqual","RevisionsButtons","userRevisions","selectedRevisionId","onChange","canApplyRevision","currentThemeName","currentUser","select","getCurrentTheme","getCurrentUser","currentTheme","name","rendered","stylesheet","blockTypes","reduce","accumulator","title","dateNowInMs","getTime","datetimeAbbreviated","formats","role","map","index","author","modified","isUnsaved","revisionAuthor","authorAvatar","avatar_urls","isFirstItem","isSelected","isReset","modifiedDate","displayDate","revisionLabel","key","disabled","onClick","dateTime","alt","src"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-revisions/revisions-buttons.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { dateI18n, getDate, humanTimeDiff, getSettings } from '@wordpress/date';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { getBlockTypes } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport getRevisionChanges from './get-revision-changes';\n\nconst DAY_IN_MILLISECONDS = 60 * 60 * 1000 * 24;\nconst MAX_CHANGES = 7;\n\nfunction ChangesSummary( { revision, previousRevision, blockNames } ) {\n\tconst changes = getRevisionChanges(\n\t\trevision,\n\t\tpreviousRevision,\n\t\tblockNames\n\t);\n\tconst changesLength = changes.length;\n\n\tif ( ! changesLength ) {\n\t\treturn null;\n\t}\n\n\t// Truncate to `n` results if necessary.\n\tif ( changesLength > MAX_CHANGES ) {\n\t\tconst deleteCount = changesLength - MAX_CHANGES;\n\t\tconst andMoreText = sprintf(\n\t\t\t// translators: %d: number of global styles changes that are not displayed in the UI.\n\t\t\t_n( '…and %d more change.', '…and %d more changes.', deleteCount ),\n\t\t\tdeleteCount\n\t\t);\n\t\tchanges.splice( MAX_CHANGES, deleteCount, andMoreText );\n\t}\n\n\treturn (\n\t\t<span\n\t\t\tdata-testid=\"global-styles-revision-changes\"\n\t\t\tclassName=\"edit-site-global-styles-screen-revisions__changes\"\n\t\t>\n\t\t\t{ changes.join( ', ' ) }\n\t\t</span>\n\t);\n}\n\n/**\n * Returns a button label for the revision.\n *\n * @param {string|number} id A revision object.\n * @param {string} authorDisplayName Author name.\n * @param {string} formattedModifiedDate Revision modified date formatted.\n * @param {boolean} areStylesEqual Whether the revision matches the current editor styles.\n * @return {string} Translated label.\n */\nfunction getRevisionLabel(\n\tid,\n\tauthorDisplayName,\n\tformattedModifiedDate,\n\tareStylesEqual\n) {\n\tif ( 'parent' === id ) {\n\t\treturn __( 'Reset the styles to the theme defaults' );\n\t}\n\n\tif ( 'unsaved' === id ) {\n\t\treturn sprintf(\n\t\t\t/* translators: %s: author display name */\n\t\t\t__( 'Unsaved changes by %s' ),\n\t\t\tauthorDisplayName\n\t\t);\n\t}\n\n\treturn areStylesEqual\n\t\t? sprintf(\n\t\t\t\t// translators: %1$s: author display name, %2$s: revision creation date.\n\t\t\t\t__(\n\t\t\t\t\t'Changes saved by %1$s on %2$s. This revision matches current editor styles.'\n\t\t\t\t),\n\t\t\t\tauthorDisplayName,\n\t\t\t\tformattedModifiedDate\n\t\t )\n\t\t: sprintf(\n\t\t\t\t// translators: %1$s: author display name, %2$s: revision creation date.\n\t\t\t\t__( 'Changes saved by %1$s on %2$s' ),\n\t\t\t\tauthorDisplayName,\n\t\t\t\tformattedModifiedDate\n\t\t );\n}\n\n/**\n * Returns a rendered list of revisions buttons.\n *\n * @typedef {Object} props\n * @property {Array<Object>} userRevisions A collection of user revisions.\n * @property {number} selectedRevisionId The id of the currently-selected revision.\n * @property {Function} onChange Callback fired when a revision is selected.\n *\n * @param {props} Component props.\n * @return {JSX.Element} The modal component.\n */\nfunction RevisionsButtons( {\n\tuserRevisions,\n\tselectedRevisionId,\n\tonChange,\n\tcanApplyRevision,\n} ) {\n\tconst { currentThemeName, currentUser } = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getCurrentUser } = select( coreStore );\n\t\tconst currentTheme = getCurrentTheme();\n\t\treturn {\n\t\t\tcurrentThemeName:\n\t\t\t\tcurrentTheme?.name?.rendered || currentTheme?.stylesheet,\n\t\t\tcurrentUser: getCurrentUser(),\n\t\t};\n\t}, [] );\n\tconst blockNames = useMemo( () => {\n\t\tconst blockTypes = getBlockTypes();\n\t\treturn blockTypes.reduce( ( accumulator, { name, title } ) => {\n\t\t\taccumulator[ name ] = title;\n\t\t\treturn accumulator;\n\t\t}, {} );\n\t}, [] );\n\tconst dateNowInMs = getDate().getTime();\n\tconst { datetimeAbbreviated } = getSettings().formats;\n\n\treturn (\n\t\t<ol\n\t\t\tclassName=\"edit-site-global-styles-screen-revisions__revisions-list\"\n\t\t\taria-label={ __( 'Global styles revisions' ) }\n\t\t\trole=\"group\"\n\t\t>\n\t\t\t{ userRevisions.map( ( revision, index ) => {\n\t\t\t\tconst { id, author, modified } = revision;\n\t\t\t\tconst isUnsaved = 'unsaved' === id;\n\t\t\t\t// Unsaved changes are created by the current user.\n\t\t\t\tconst revisionAuthor = isUnsaved ? currentUser : author;\n\t\t\t\tconst authorDisplayName = revisionAuthor?.name || __( 'User' );\n\t\t\t\tconst authorAvatar = revisionAuthor?.avatar_urls?.[ '48' ];\n\t\t\t\tconst isFirstItem = index === 0;\n\t\t\t\tconst isSelected = selectedRevisionId\n\t\t\t\t\t? selectedRevisionId === id\n\t\t\t\t\t: isFirstItem;\n\t\t\t\tconst areStylesEqual = ! canApplyRevision && isSelected;\n\t\t\t\tconst isReset = 'parent' === id;\n\t\t\t\tconst modifiedDate = getDate( modified );\n\t\t\t\tconst displayDate =\n\t\t\t\t\tmodified &&\n\t\t\t\t\tdateNowInMs - modifiedDate.getTime() > DAY_IN_MILLISECONDS\n\t\t\t\t\t\t? dateI18n( datetimeAbbreviated, modifiedDate )\n\t\t\t\t\t\t: humanTimeDiff( modified );\n\t\t\t\tconst revisionLabel = getRevisionLabel(\n\t\t\t\t\tid,\n\t\t\t\t\tauthorDisplayName,\n\t\t\t\t\tdateI18n( datetimeAbbreviated, modifiedDate ),\n\t\t\t\t\tareStylesEqual\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<li\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'edit-site-global-styles-screen-revisions__revision-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t\t\t\t'is-active': areStylesEqual,\n\t\t\t\t\t\t\t\t'is-reset': isReset,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__revision-button\"\n\t\t\t\t\t\t\tdisabled={ isSelected }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonChange( revision );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ revisionLabel }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isReset ? (\n\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__description\">\n\t\t\t\t\t\t\t\t\t{ __( 'Default styles' ) }\n\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__meta\">\n\t\t\t\t\t\t\t\t\t\t{ currentThemeName }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__description\">\n\t\t\t\t\t\t\t\t\t{ isUnsaved ? (\n\t\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__date\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( '(Unsaved)' ) }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__date\"\n\t\t\t\t\t\t\t\t\t\t\tdateTime={ modified }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ displayDate }\n\t\t\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t\t\t<ChangesSummary\n\t\t\t\t\t\t\t\t\t\t\tblockNames={ blockNames }\n\t\t\t\t\t\t\t\t\t\t\trevision={ revision }\n\t\t\t\t\t\t\t\t\t\t\tpreviousRevision={\n\t\t\t\t\t\t\t\t\t\t\t\tindex < userRevisions.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t? userRevisions[ index + 1 ]\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__meta\">\n\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\talt={ authorDisplayName }\n\t\t\t\t\t\t\t\t\t\t\tsrc={ authorAvatar }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{ authorDisplayName }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ol>\n\t);\n}\n\nexport default RevisionsButtons;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,EAAE,EAAEC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AACjD,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,QAAQ,EAAEC,OAAO,EAAEC,aAAa,EAAEC,WAAW,QAAQ,iBAAiB;AAC/E,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,aAAa,QAAQ,mBAAmB;;AAEjD;AACA;AACA;AACA,OAAOC,kBAAkB,MAAM,wBAAwB;AAEvD,MAAMC,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE;AAC/C,MAAMC,WAAW,GAAG,CAAC;AAErB,SAASC,cAAcA,CAAE;EAAEC,QAAQ;EAAEC,gBAAgB;EAAEC;AAAW,CAAC,EAAG;EACrE,MAAMC,OAAO,GAAGP,kBAAkB,CACjCI,QAAQ,EACRC,gBAAgB,EAChBC,UACD,CAAC;EACD,MAAME,aAAa,GAAGD,OAAO,CAACE,MAAM;EAEpC,IAAK,CAAED,aAAa,EAAG;IACtB,OAAO,IAAI;EACZ;;EAEA;EACA,IAAKA,aAAa,GAAGN,WAAW,EAAG;IAClC,MAAMQ,WAAW,GAAGF,aAAa,GAAGN,WAAW;IAC/C,MAAMS,WAAW,GAAGtB,OAAO;IAC1B;IACAD,EAAE,CAAE,sBAAsB,EAAE,uBAAuB,EAAEsB,WAAY,CAAC,EAClEA,WACD,CAAC;IACDH,OAAO,CAACK,MAAM,CAAEV,WAAW,EAAEQ,WAAW,EAAEC,WAAY,CAAC;EACxD;EAEA,OACCE,aAAA;IACC,eAAY,gCAAgC;IAC5CC,SAAS,EAAC;EAAmD,GAE3DP,OAAO,CAACQ,IAAI,CAAE,IAAK,CAChB,CAAC;AAET;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CACxBC,EAAE,EACFC,iBAAiB,EACjBC,qBAAqB,EACrBC,cAAc,EACb;EACD,IAAK,QAAQ,KAAKH,EAAE,EAAG;IACtB,OAAO9B,EAAE,CAAE,wCAAyC,CAAC;EACtD;EAEA,IAAK,SAAS,KAAK8B,EAAE,EAAG;IACvB,OAAO5B,OAAO,EACb;IACAF,EAAE,CAAE,uBAAwB,CAAC,EAC7B+B,iBACD,CAAC;EACF;EAEA,OAAOE,cAAc,GAClB/B,OAAO;EACP;EACAF,EAAE,CACD,6EACD,CAAC,EACD+B,iBAAiB,EACjBC,qBACA,CAAC,GACD9B,OAAO;EACP;EACAF,EAAE,CAAE,+BAAgC,CAAC,EACrC+B,iBAAiB,EACjBC,qBACA,CAAC;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,gBAAgBA,CAAE;EAC1BC,aAAa;EACbC,kBAAkB;EAClBC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,gBAAgB;IAAEC;EAAY,CAAC,GAAG9B,SAAS,CAAI+B,MAAM,IAAM;IAClE,MAAM;MAAEC,eAAe;MAAEC;IAAe,CAAC,GAAGF,MAAM,CAAEhC,SAAU,CAAC;IAC/D,MAAMmC,YAAY,GAAGF,eAAe,CAAC,CAAC;IACtC,OAAO;MACNH,gBAAgB,EACfK,YAAY,EAAEC,IAAI,EAAEC,QAAQ,IAAIF,YAAY,EAAEG,UAAU;MACzDP,WAAW,EAAEG,cAAc,CAAC;IAC7B,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAMxB,UAAU,GAAGR,OAAO,CAAE,MAAM;IACjC,MAAMqC,UAAU,GAAGpC,aAAa,CAAC,CAAC;IAClC,OAAOoC,UAAU,CAACC,MAAM,CAAE,CAAEC,WAAW,EAAE;MAAEL,IAAI;MAAEM;IAAM,CAAC,KAAM;MAC7DD,WAAW,CAAEL,IAAI,CAAE,GAAGM,KAAK;MAC3B,OAAOD,WAAW;IACnB,CAAC,EAAE,CAAC,CAAE,CAAC;EACR,CAAC,EAAE,EAAG,CAAC;EACP,MAAME,WAAW,GAAG/C,OAAO,CAAC,CAAC,CAACgD,OAAO,CAAC,CAAC;EACvC,MAAM;IAAEC;EAAoB,CAAC,GAAG/C,WAAW,CAAC,CAAC,CAACgD,OAAO;EAErD,OACC7B,aAAA;IACCC,SAAS,EAAC,0DAA0D;IACpE,cAAa3B,EAAE,CAAE,yBAA0B,CAAG;IAC9CwD,IAAI,EAAC;EAAO,GAEVrB,aAAa,CAACsB,GAAG,CAAE,CAAExC,QAAQ,EAAEyC,KAAK,KAAM;IAC3C,MAAM;MAAE5B,EAAE;MAAE6B,MAAM;MAAEC;IAAS,CAAC,GAAG3C,QAAQ;IACzC,MAAM4C,SAAS,GAAG,SAAS,KAAK/B,EAAE;IAClC;IACA,MAAMgC,cAAc,GAAGD,SAAS,GAAGrB,WAAW,GAAGmB,MAAM;IACvD,MAAM5B,iBAAiB,GAAG+B,cAAc,EAAEjB,IAAI,IAAI7C,EAAE,CAAE,MAAO,CAAC;IAC9D,MAAM+D,YAAY,GAAGD,cAAc,EAAEE,WAAW,GAAI,IAAI,CAAE;IAC1D,MAAMC,WAAW,GAAGP,KAAK,KAAK,CAAC;IAC/B,MAAMQ,UAAU,GAAG9B,kBAAkB,GAClCA,kBAAkB,KAAKN,EAAE,GACzBmC,WAAW;IACd,MAAMhC,cAAc,GAAG,CAAEK,gBAAgB,IAAI4B,UAAU;IACvD,MAAMC,OAAO,GAAG,QAAQ,KAAKrC,EAAE;IAC/B,MAAMsC,YAAY,GAAG/D,OAAO,CAAEuD,QAAS,CAAC;IACxC,MAAMS,WAAW,GAChBT,QAAQ,IACRR,WAAW,GAAGgB,YAAY,CAACf,OAAO,CAAC,CAAC,GAAGvC,mBAAmB,GACvDV,QAAQ,CAAEkD,mBAAmB,EAAEc,YAAa,CAAC,GAC7C9D,aAAa,CAAEsD,QAAS,CAAC;IAC7B,MAAMU,aAAa,GAAGzC,gBAAgB,CACrCC,EAAE,EACFC,iBAAiB,EACjB3B,QAAQ,CAAEkD,mBAAmB,EAAEc,YAAa,CAAC,EAC7CnC,cACD,CAAC;IAED,OACCP,aAAA;MACCC,SAAS,EAAG5B,UAAU,CACrB,yDAAyD,EACzD;QACC,aAAa,EAAEmE,UAAU;QACzB,WAAW,EAAEjC,cAAc;QAC3B,UAAU,EAAEkC;MACb,CACD,CAAG;MACHI,GAAG,EAAGzC;IAAI,GAEVJ,aAAA,CAACvB,MAAM;MACNwB,SAAS,EAAC,2DAA2D;MACrE6C,QAAQ,EAAGN,UAAY;MACvBO,OAAO,EAAGA,CAAA,KAAM;QACfpC,QAAQ,CAAEpB,QAAS,CAAC;MACrB,CAAG;MACH,cAAaqD;IAAe,GAE1BH,OAAO,GACRzC,aAAA;MAAMC,SAAS,EAAC;IAAuD,GACpE3B,EAAE,CAAE,gBAAiB,CAAC,EACxB0B,aAAA;MAAMC,SAAS,EAAC;IAAgD,GAC7DY,gBACG,CACD,CAAC,GAEPb,aAAA;MAAMC,SAAS,EAAC;IAAuD,GACpEkC,SAAS,GACVnC,aAAA;MAAMC,SAAS,EAAC;IAAgD,GAC7D3B,EAAE,CAAE,WAAY,CACb,CAAC,GAEP0B,aAAA;MACCC,SAAS,EAAC,gDAAgD;MAC1D+C,QAAQ,EAAGd;IAAU,GAEnBS,WACG,CACN,EACCH,UAAU,IACXxC,aAAA,CAACV,cAAc;MACdG,UAAU,EAAGA,UAAY;MACzBF,QAAQ,EAAGA,QAAU;MACrBC,gBAAgB,EACfwC,KAAK,GAAGvB,aAAa,CAACb,MAAM,GACzBa,aAAa,CAAEuB,KAAK,GAAG,CAAC,CAAE,GAC1B,CAAC;IACJ,CACD,CACD,EACDhC,aAAA;MAAMC,SAAS,EAAC;IAAgD,GAC/DD,aAAA;MACCiD,GAAG,EAAG5C,iBAAmB;MACzB6C,GAAG,EAAGb;IAAc,CACpB,CAAC,EACAhC,iBACG,CACD,CAEA,CACL,CAAC;EAEP,CAAE,CACC,CAAC;AAEP;AAEA,eAAeG,gBAAgB"}
1
+ {"version":3,"names":["classnames","__","sprintf","Button","dateI18n","getDate","humanTimeDiff","getSettings","store","coreStore","useSelect","privateApis","blockEditorPrivateApis","unlock","DAY_IN_MILLISECONDS","getGlobalStylesChanges","ChangesSummary","revision","previousRevision","changes","maxResults","changesLength","length","createElement","className","join","getRevisionLabel","id","authorDisplayName","formattedModifiedDate","areStylesEqual","RevisionsButtons","userRevisions","selectedRevisionId","onChange","canApplyRevision","onApplyRevision","currentThemeName","currentUser","select","getCurrentTheme","getCurrentUser","currentTheme","name","rendered","stylesheet","dateNowInMs","getTime","datetimeAbbreviated","formats","role","map","index","author","modified","isUnsaved","revisionAuthor","authorAvatar","avatar_urls","isFirstItem","isSelected","isReset","modifiedDate","displayDate","revisionLabel","key","disabled","onClick","dateTime","alt","src","variant"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-revisions/revisions-buttons.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { dateI18n, getDate, humanTimeDiff, getSettings } from '@wordpress/date';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\n\nconst DAY_IN_MILLISECONDS = 60 * 60 * 1000 * 24;\nconst { getGlobalStylesChanges } = unlock( blockEditorPrivateApis );\n\nfunction ChangesSummary( { revision, previousRevision } ) {\n\tconst changes = getGlobalStylesChanges( revision, previousRevision, {\n\t\tmaxResults: 7,\n\t} );\n\tconst changesLength = changes.length;\n\n\tif ( ! changesLength ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<span\n\t\t\tdata-testid=\"global-styles-revision-changes\"\n\t\t\tclassName=\"edit-site-global-styles-screen-revisions__changes\"\n\t\t>\n\t\t\t{ changes.join( ', ' ) }\n\t\t</span>\n\t);\n}\n\n/**\n * Returns a button label for the revision.\n *\n * @param {string|number} id A revision object.\n * @param {string} authorDisplayName Author name.\n * @param {string} formattedModifiedDate Revision modified date formatted.\n * @param {boolean} areStylesEqual Whether the revision matches the current editor styles.\n * @return {string} Translated label.\n */\nfunction getRevisionLabel(\n\tid,\n\tauthorDisplayName,\n\tformattedModifiedDate,\n\tareStylesEqual\n) {\n\tif ( 'parent' === id ) {\n\t\treturn __( 'Reset the styles to the theme defaults' );\n\t}\n\n\tif ( 'unsaved' === id ) {\n\t\treturn sprintf(\n\t\t\t/* translators: %s: author display name */\n\t\t\t__( 'Unsaved changes by %s' ),\n\t\t\tauthorDisplayName\n\t\t);\n\t}\n\n\treturn areStylesEqual\n\t\t? sprintf(\n\t\t\t\t// translators: %1$s: author display name, %2$s: revision creation date.\n\t\t\t\t__(\n\t\t\t\t\t'Changes saved by %1$s on %2$s. This revision matches current editor styles.'\n\t\t\t\t),\n\t\t\t\tauthorDisplayName,\n\t\t\t\tformattedModifiedDate\n\t\t )\n\t\t: sprintf(\n\t\t\t\t// translators: %1$s: author display name, %2$s: revision creation date.\n\t\t\t\t__( 'Changes saved by %1$s on %2$s' ),\n\t\t\t\tauthorDisplayName,\n\t\t\t\tformattedModifiedDate\n\t\t );\n}\n\n/**\n * Returns a rendered list of revisions buttons.\n *\n * @typedef {Object} props\n * @property {Array<Object>} userRevisions A collection of user revisions.\n * @property {number} selectedRevisionId The id of the currently-selected revision.\n * @property {Function} onChange Callback fired when a revision is selected.\n *\n * @param {props} Component props.\n * @return {JSX.Element} The modal component.\n */\nfunction RevisionsButtons( {\n\tuserRevisions,\n\tselectedRevisionId,\n\tonChange,\n\tcanApplyRevision,\n\tonApplyRevision,\n} ) {\n\tconst { currentThemeName, currentUser } = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getCurrentUser } = select( coreStore );\n\t\tconst currentTheme = getCurrentTheme();\n\t\treturn {\n\t\t\tcurrentThemeName:\n\t\t\t\tcurrentTheme?.name?.rendered || currentTheme?.stylesheet,\n\t\t\tcurrentUser: getCurrentUser(),\n\t\t};\n\t}, [] );\n\tconst dateNowInMs = getDate().getTime();\n\tconst { datetimeAbbreviated } = getSettings().formats;\n\n\treturn (\n\t\t<ol\n\t\t\tclassName=\"edit-site-global-styles-screen-revisions__revisions-list\"\n\t\t\taria-label={ __( 'Global styles revisions list' ) }\n\t\t\trole=\"group\"\n\t\t>\n\t\t\t{ userRevisions.map( ( revision, index ) => {\n\t\t\t\tconst { id, author, modified } = revision;\n\t\t\t\tconst isUnsaved = 'unsaved' === id;\n\t\t\t\t// Unsaved changes are created by the current user.\n\t\t\t\tconst revisionAuthor = isUnsaved ? currentUser : author;\n\t\t\t\tconst authorDisplayName = revisionAuthor?.name || __( 'User' );\n\t\t\t\tconst authorAvatar = revisionAuthor?.avatar_urls?.[ '48' ];\n\t\t\t\tconst isFirstItem = index === 0;\n\t\t\t\tconst isSelected = selectedRevisionId\n\t\t\t\t\t? selectedRevisionId === id\n\t\t\t\t\t: isFirstItem;\n\t\t\t\tconst areStylesEqual = ! canApplyRevision && isSelected;\n\t\t\t\tconst isReset = 'parent' === id;\n\t\t\t\tconst modifiedDate = getDate( modified );\n\t\t\t\tconst displayDate =\n\t\t\t\t\tmodified &&\n\t\t\t\t\tdateNowInMs - modifiedDate.getTime() > DAY_IN_MILLISECONDS\n\t\t\t\t\t\t? dateI18n( datetimeAbbreviated, modifiedDate )\n\t\t\t\t\t\t: humanTimeDiff( modified );\n\t\t\t\tconst revisionLabel = getRevisionLabel(\n\t\t\t\t\tid,\n\t\t\t\t\tauthorDisplayName,\n\t\t\t\t\tdateI18n( datetimeAbbreviated, modifiedDate ),\n\t\t\t\t\tareStylesEqual\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<li\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'edit-site-global-styles-screen-revisions__revision-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t\t\t\t'is-active': areStylesEqual,\n\t\t\t\t\t\t\t\t'is-reset': isReset,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\taria-current={ isSelected }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__revision-button\"\n\t\t\t\t\t\t\tdisabled={ isSelected }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonChange( revision );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ revisionLabel }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isReset ? (\n\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__description\">\n\t\t\t\t\t\t\t\t\t{ __( 'Default styles' ) }\n\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__meta\">\n\t\t\t\t\t\t\t\t\t\t{ currentThemeName }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__description\">\n\t\t\t\t\t\t\t\t\t{ isUnsaved ? (\n\t\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__date\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( '(Unsaved)' ) }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__date\"\n\t\t\t\t\t\t\t\t\t\t\tdateTime={ modified }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ displayDate }\n\t\t\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__meta\">\n\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\talt={ authorDisplayName }\n\t\t\t\t\t\t\t\t\t\t\tsrc={ authorAvatar }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{ authorDisplayName }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t\t\t<ChangesSummary\n\t\t\t\t\t\t\t\t\t\t\trevision={ revision }\n\t\t\t\t\t\t\t\t\t\t\tpreviousRevision={\n\t\t\t\t\t\t\t\t\t\t\t\tindex < userRevisions.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t? userRevisions[ index + 1 ]\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t{ isSelected &&\n\t\t\t\t\t\t\t( areStylesEqual ? (\n\t\t\t\t\t\t\t\t<p className=\"edit-site-global-styles-screen-revisions__applied-text\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'These styles are already applied to your site.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tdisabled={ areStylesEqual }\n\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__apply-button\"\n\t\t\t\t\t\t\t\t\tonClick={ onApplyRevision }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ isReset\n\t\t\t\t\t\t\t\t\t\t? __( 'Reset to defaults' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Apply' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ol>\n\t);\n}\n\nexport default RevisionsButtons;\n"],"mappings":"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"}
@@ -16,72 +16,86 @@ const SITE_EDITOR_AUTHORS_QUERY = {
16
16
  context: 'view',
17
17
  capabilities: ['edit_theme_options']
18
18
  };
19
+ const DEFAULT_QUERY = {
20
+ per_page: 100,
21
+ page: 1
22
+ };
19
23
  const EMPTY_ARRAY = [];
20
24
  const {
21
25
  GlobalStylesContext
22
26
  } = unlock(blockEditorPrivateApis);
23
- export default function useGlobalStylesRevisions() {
27
+ export default function useGlobalStylesRevisions({
28
+ query
29
+ } = {}) {
24
30
  const {
25
31
  user: userConfig
26
32
  } = useContext(GlobalStylesContext);
33
+ const _query = {
34
+ ...DEFAULT_QUERY,
35
+ ...query
36
+ };
27
37
  const {
28
38
  authors,
29
39
  currentUser,
30
40
  isDirty,
31
41
  revisions,
32
- isLoadingGlobalStylesRevisions
42
+ isLoadingGlobalStylesRevisions,
43
+ revisionsCount
33
44
  } = useSelect(select => {
45
+ var _globalStyles$_links$;
34
46
  const {
35
47
  __experimentalGetDirtyEntityRecords,
36
48
  getCurrentUser,
37
49
  getUsers,
38
50
  getRevisions,
39
51
  __experimentalGetCurrentGlobalStylesId,
52
+ getEntityRecord,
40
53
  isResolving
41
54
  } = select(coreStore);
42
55
  const dirtyEntityRecords = __experimentalGetDirtyEntityRecords();
43
56
  const _currentUser = getCurrentUser();
44
57
  const _isDirty = dirtyEntityRecords.length > 0;
45
- const query = {
46
- per_page: 100
47
- };
48
58
  const globalStylesId = __experimentalGetCurrentGlobalStylesId();
49
- const globalStylesRevisions = getRevisions('root', 'globalStyles', globalStylesId, query) || EMPTY_ARRAY;
59
+ const globalStyles = globalStylesId ? getEntityRecord('root', 'globalStyles', globalStylesId) : undefined;
60
+ const _revisionsCount = (_globalStyles$_links$ = globalStyles?._links?.['version-history']?.[0]?.count) !== null && _globalStyles$_links$ !== void 0 ? _globalStyles$_links$ : 0;
61
+ const globalStylesRevisions = getRevisions('root', 'globalStyles', globalStylesId, _query) || EMPTY_ARRAY;
50
62
  const _authors = getUsers(SITE_EDITOR_AUTHORS_QUERY) || EMPTY_ARRAY;
51
- const _isResolving = isResolving('getRevisions', ['root', 'globalStyles', globalStylesId, query]);
63
+ const _isResolving = isResolving('getRevisions', ['root', 'globalStyles', globalStylesId, _query]);
52
64
  return {
53
65
  authors: _authors,
54
66
  currentUser: _currentUser,
55
67
  isDirty: _isDirty,
56
68
  revisions: globalStylesRevisions,
57
- isLoadingGlobalStylesRevisions: _isResolving
69
+ isLoadingGlobalStylesRevisions: _isResolving,
70
+ revisionsCount: _revisionsCount
58
71
  };
59
- }, []);
72
+ }, [query]);
60
73
  return useMemo(() => {
61
- let _modifiedRevisions = [];
62
74
  if (!authors.length || isLoadingGlobalStylesRevisions) {
63
75
  return {
64
- revisions: _modifiedRevisions,
76
+ revisions: EMPTY_ARRAY,
65
77
  hasUnsavedChanges: isDirty,
66
- isLoading: true
78
+ isLoading: true,
79
+ revisionsCount
67
80
  };
68
81
  }
69
82
 
70
83
  // Adds author details to each revision.
71
- _modifiedRevisions = revisions.map(revision => {
84
+ const _modifiedRevisions = revisions.map(revision => {
72
85
  return {
73
86
  ...revision,
74
87
  author: authors.find(author => author.id === revision.author)
75
88
  };
76
89
  });
77
- if (_modifiedRevisions.length) {
90
+ const fetchedRevisionsCount = revisions.length;
91
+ if (fetchedRevisionsCount) {
78
92
  // Flags the most current saved revision.
79
- if (_modifiedRevisions[0].id !== 'unsaved') {
93
+ if (_modifiedRevisions[0].id !== 'unsaved' && _query.page === 1) {
80
94
  _modifiedRevisions[0].isLatest = true;
81
95
  }
82
96
 
83
97
  // Adds an item for unsaved changes.
84
- if (isDirty && userConfig && Object.keys(userConfig).length > 0 && currentUser) {
98
+ if (isDirty && userConfig && Object.keys(userConfig).length > 0 && currentUser && _query.page === 1) {
85
99
  const unsavedRevision = {
86
100
  id: 'unsaved',
87
101
  styles: userConfig?.styles,
@@ -94,16 +108,20 @@ export default function useGlobalStylesRevisions() {
94
108
  };
95
109
  _modifiedRevisions.unshift(unsavedRevision);
96
110
  }
97
- _modifiedRevisions.push({
98
- id: 'parent',
99
- styles: {},
100
- settings: {}
101
- });
111
+ if (_query.page === Math.ceil(revisionsCount / _query.per_page)) {
112
+ // Adds an item for the default theme styles.
113
+ _modifiedRevisions.push({
114
+ id: 'parent',
115
+ styles: {},
116
+ settings: {}
117
+ });
118
+ }
102
119
  }
103
120
  return {
104
121
  revisions: _modifiedRevisions,
105
122
  hasUnsavedChanges: isDirty,
106
- isLoading: false
123
+ isLoading: false,
124
+ revisionsCount
107
125
  };
108
126
  }, [isDirty, revisions, currentUser, authors, userConfig, isLoadingGlobalStylesRevisions]);
109
127
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","store","coreStore","useContext","useMemo","privateApis","blockEditorPrivateApis","unlock","SITE_EDITOR_AUTHORS_QUERY","per_page","_fields","context","capabilities","EMPTY_ARRAY","GlobalStylesContext","useGlobalStylesRevisions","user","userConfig","authors","currentUser","isDirty","revisions","isLoadingGlobalStylesRevisions","select","__experimentalGetDirtyEntityRecords","getCurrentUser","getUsers","getRevisions","__experimentalGetCurrentGlobalStylesId","isResolving","dirtyEntityRecords","_currentUser","_isDirty","length","query","globalStylesId","globalStylesRevisions","_authors","_isResolving","_modifiedRevisions","hasUnsavedChanges","isLoading","map","revision","author","find","id","isLatest","Object","keys","unsavedRevision","styles","settings","name","avatar_urls","modified","Date","unshift","push"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-revisions/use-global-styles-revisions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useContext, useMemo } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\n\nconst SITE_EDITOR_AUTHORS_QUERY = {\n\tper_page: -1,\n\t_fields: 'id,name,avatar_urls',\n\tcontext: 'view',\n\tcapabilities: [ 'edit_theme_options' ],\n};\nconst EMPTY_ARRAY = [];\nconst { GlobalStylesContext } = unlock( blockEditorPrivateApis );\nexport default function useGlobalStylesRevisions() {\n\tconst { user: userConfig } = useContext( GlobalStylesContext );\n\tconst {\n\t\tauthors,\n\t\tcurrentUser,\n\t\tisDirty,\n\t\trevisions,\n\t\tisLoadingGlobalStylesRevisions,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\tgetCurrentUser,\n\t\t\tgetUsers,\n\t\t\tgetRevisions,\n\t\t\t__experimentalGetCurrentGlobalStylesId,\n\t\t\tisResolving,\n\t\t} = select( coreStore );\n\t\tconst dirtyEntityRecords = __experimentalGetDirtyEntityRecords();\n\t\tconst _currentUser = getCurrentUser();\n\t\tconst _isDirty = dirtyEntityRecords.length > 0;\n\t\tconst query = {\n\t\t\tper_page: 100,\n\t\t};\n\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\tconst globalStylesRevisions =\n\t\t\tgetRevisions( 'root', 'globalStyles', globalStylesId, query ) ||\n\t\t\tEMPTY_ARRAY;\n\t\tconst _authors = getUsers( SITE_EDITOR_AUTHORS_QUERY ) || EMPTY_ARRAY;\n\t\tconst _isResolving = isResolving( 'getRevisions', [\n\t\t\t'root',\n\t\t\t'globalStyles',\n\t\t\tglobalStylesId,\n\t\t\tquery,\n\t\t] );\n\t\treturn {\n\t\t\tauthors: _authors,\n\t\t\tcurrentUser: _currentUser,\n\t\t\tisDirty: _isDirty,\n\t\t\trevisions: globalStylesRevisions,\n\t\t\tisLoadingGlobalStylesRevisions: _isResolving,\n\t\t};\n\t}, [] );\n\treturn useMemo( () => {\n\t\tlet _modifiedRevisions = [];\n\t\tif ( ! authors.length || isLoadingGlobalStylesRevisions ) {\n\t\t\treturn {\n\t\t\t\trevisions: _modifiedRevisions,\n\t\t\t\thasUnsavedChanges: isDirty,\n\t\t\t\tisLoading: true,\n\t\t\t};\n\t\t}\n\n\t\t// Adds author details to each revision.\n\t\t_modifiedRevisions = revisions.map( ( revision ) => {\n\t\t\treturn {\n\t\t\t\t...revision,\n\t\t\t\tauthor: authors.find(\n\t\t\t\t\t( author ) => author.id === revision.author\n\t\t\t\t),\n\t\t\t};\n\t\t} );\n\n\t\tif ( _modifiedRevisions.length ) {\n\t\t\t// Flags the most current saved revision.\n\t\t\tif ( _modifiedRevisions[ 0 ].id !== 'unsaved' ) {\n\t\t\t\t_modifiedRevisions[ 0 ].isLatest = true;\n\t\t\t}\n\n\t\t\t// Adds an item for unsaved changes.\n\t\t\tif (\n\t\t\t\tisDirty &&\n\t\t\t\tuserConfig &&\n\t\t\t\tObject.keys( userConfig ).length > 0 &&\n\t\t\t\tcurrentUser\n\t\t\t) {\n\t\t\t\tconst unsavedRevision = {\n\t\t\t\t\tid: 'unsaved',\n\t\t\t\t\tstyles: userConfig?.styles,\n\t\t\t\t\tsettings: userConfig?.settings,\n\t\t\t\t\tauthor: {\n\t\t\t\t\t\tname: currentUser?.name,\n\t\t\t\t\t\tavatar_urls: currentUser?.avatar_urls,\n\t\t\t\t\t},\n\t\t\t\t\tmodified: new Date(),\n\t\t\t\t};\n\n\t\t\t\t_modifiedRevisions.unshift( unsavedRevision );\n\t\t\t}\n\n\t\t\t_modifiedRevisions.push( {\n\t\t\t\tid: 'parent',\n\t\t\t\tstyles: {},\n\t\t\t\tsettings: {},\n\t\t\t} );\n\t\t}\n\n\t\treturn {\n\t\t\trevisions: _modifiedRevisions,\n\t\t\thasUnsavedChanges: isDirty,\n\t\t\tisLoading: false,\n\t\t};\n\t}, [\n\t\tisDirty,\n\t\trevisions,\n\t\tcurrentUser,\n\t\tauthors,\n\t\tuserConfig,\n\t\tisLoadingGlobalStylesRevisions,\n\t] );\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["useSelect","store","coreStore","useContext","useMemo","privateApis","blockEditorPrivateApis","unlock","SITE_EDITOR_AUTHORS_QUERY","per_page","_fields","context","capabilities","DEFAULT_QUERY","page","EMPTY_ARRAY","GlobalStylesContext","useGlobalStylesRevisions","query","user","userConfig","_query","authors","currentUser","isDirty","revisions","isLoadingGlobalStylesRevisions","revisionsCount","select","_globalStyles$_links$","__experimentalGetDirtyEntityRecords","getCurrentUser","getUsers","getRevisions","__experimentalGetCurrentGlobalStylesId","getEntityRecord","isResolving","dirtyEntityRecords","_currentUser","_isDirty","length","globalStylesId","globalStyles","undefined","_revisionsCount","_links","count","globalStylesRevisions","_authors","_isResolving","hasUnsavedChanges","isLoading","_modifiedRevisions","map","revision","author","find","id","fetchedRevisionsCount","isLatest","Object","keys","unsavedRevision","styles","settings","name","avatar_urls","modified","Date","unshift","Math","ceil","push"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-revisions/use-global-styles-revisions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useContext, useMemo } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\n\nconst SITE_EDITOR_AUTHORS_QUERY = {\n\tper_page: -1,\n\t_fields: 'id,name,avatar_urls',\n\tcontext: 'view',\n\tcapabilities: [ 'edit_theme_options' ],\n};\nconst DEFAULT_QUERY = { per_page: 100, page: 1 };\nconst EMPTY_ARRAY = [];\nconst { GlobalStylesContext } = unlock( blockEditorPrivateApis );\nexport default function useGlobalStylesRevisions( { query } = {} ) {\n\tconst { user: userConfig } = useContext( GlobalStylesContext );\n\tconst _query = { ...DEFAULT_QUERY, ...query };\n\tconst {\n\t\tauthors,\n\t\tcurrentUser,\n\t\tisDirty,\n\t\trevisions,\n\t\tisLoadingGlobalStylesRevisions,\n\t\trevisionsCount,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\t\tgetCurrentUser,\n\t\t\t\tgetUsers,\n\t\t\t\tgetRevisions,\n\t\t\t\t__experimentalGetCurrentGlobalStylesId,\n\t\t\t\tgetEntityRecord,\n\t\t\t\tisResolving,\n\t\t\t} = select( coreStore );\n\t\t\tconst dirtyEntityRecords = __experimentalGetDirtyEntityRecords();\n\t\t\tconst _currentUser = getCurrentUser();\n\t\t\tconst _isDirty = dirtyEntityRecords.length > 0;\n\t\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\t\tconst globalStyles = globalStylesId\n\t\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t\t: undefined;\n\t\t\tconst _revisionsCount =\n\t\t\t\tglobalStyles?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\t\tconst globalStylesRevisions =\n\t\t\t\tgetRevisions(\n\t\t\t\t\t'root',\n\t\t\t\t\t'globalStyles',\n\t\t\t\t\tglobalStylesId,\n\t\t\t\t\t_query\n\t\t\t\t) || EMPTY_ARRAY;\n\t\t\tconst _authors =\n\t\t\t\tgetUsers( SITE_EDITOR_AUTHORS_QUERY ) || EMPTY_ARRAY;\n\t\t\tconst _isResolving = isResolving( 'getRevisions', [\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId,\n\t\t\t\t_query,\n\t\t\t] );\n\t\t\treturn {\n\t\t\t\tauthors: _authors,\n\t\t\t\tcurrentUser: _currentUser,\n\t\t\t\tisDirty: _isDirty,\n\t\t\t\trevisions: globalStylesRevisions,\n\t\t\t\tisLoadingGlobalStylesRevisions: _isResolving,\n\t\t\t\trevisionsCount: _revisionsCount,\n\t\t\t};\n\t\t},\n\t\t[ query ]\n\t);\n\treturn useMemo( () => {\n\t\tif ( ! authors.length || isLoadingGlobalStylesRevisions ) {\n\t\t\treturn {\n\t\t\t\trevisions: EMPTY_ARRAY,\n\t\t\t\thasUnsavedChanges: isDirty,\n\t\t\t\tisLoading: true,\n\t\t\t\trevisionsCount,\n\t\t\t};\n\t\t}\n\n\t\t// Adds author details to each revision.\n\t\tconst _modifiedRevisions = revisions.map( ( revision ) => {\n\t\t\treturn {\n\t\t\t\t...revision,\n\t\t\t\tauthor: authors.find(\n\t\t\t\t\t( author ) => author.id === revision.author\n\t\t\t\t),\n\t\t\t};\n\t\t} );\n\n\t\tconst fetchedRevisionsCount = revisions.length;\n\n\t\tif ( fetchedRevisionsCount ) {\n\t\t\t// Flags the most current saved revision.\n\t\t\tif (\n\t\t\t\t_modifiedRevisions[ 0 ].id !== 'unsaved' &&\n\t\t\t\t_query.page === 1\n\t\t\t) {\n\t\t\t\t_modifiedRevisions[ 0 ].isLatest = true;\n\t\t\t}\n\n\t\t\t// Adds an item for unsaved changes.\n\t\t\tif (\n\t\t\t\tisDirty &&\n\t\t\t\tuserConfig &&\n\t\t\t\tObject.keys( userConfig ).length > 0 &&\n\t\t\t\tcurrentUser &&\n\t\t\t\t_query.page === 1\n\t\t\t) {\n\t\t\t\tconst unsavedRevision = {\n\t\t\t\t\tid: 'unsaved',\n\t\t\t\t\tstyles: userConfig?.styles,\n\t\t\t\t\tsettings: userConfig?.settings,\n\t\t\t\t\tauthor: {\n\t\t\t\t\t\tname: currentUser?.name,\n\t\t\t\t\t\tavatar_urls: currentUser?.avatar_urls,\n\t\t\t\t\t},\n\t\t\t\t\tmodified: new Date(),\n\t\t\t\t};\n\n\t\t\t\t_modifiedRevisions.unshift( unsavedRevision );\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t_query.page === Math.ceil( revisionsCount / _query.per_page )\n\t\t\t) {\n\t\t\t\t// Adds an item for the default theme styles.\n\t\t\t\t_modifiedRevisions.push( {\n\t\t\t\t\tid: 'parent',\n\t\t\t\t\tstyles: {},\n\t\t\t\t\tsettings: {},\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\trevisions: _modifiedRevisions,\n\t\t\thasUnsavedChanges: isDirty,\n\t\t\tisLoading: false,\n\t\t\trevisionsCount,\n\t\t};\n\t}, [\n\t\tisDirty,\n\t\trevisions,\n\t\tcurrentUser,\n\t\tauthors,\n\t\tuserConfig,\n\t\tisLoadingGlobalStylesRevisions,\n\t] );\n}\n"],"mappings":"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"}