@wordpress/edit-site 6.1.0 → 6.3.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.
- package/CHANGELOG.md +10 -6
- package/build/components/add-new-pattern/index.js +31 -16
- package/build/components/add-new-pattern/index.js.map +1 -1
- package/build/components/{add-new-page → add-new-post}/index.js +28 -16
- package/build/components/add-new-post/index.js.map +1 -0
- package/build/components/block-editor/use-site-editor-settings.js +5 -3
- package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build/components/editor/index.js +32 -7
- package/build/components/editor/index.js.map +1 -1
- package/build/components/editor-canvas-container/index.js +18 -7
- package/build/components/editor-canvas-container/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +0 -5
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/font-families.js +17 -17
- package/build/components/global-styles/font-families.js.map +1 -1
- package/build/components/global-styles/font-library-modal/context.js +2 -2
- package/build/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-collection.js +13 -30
- package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build/components/global-styles/font-library-modal/installed-fonts.js +2 -2
- package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build/components/global-styles/hooks.js +0 -40
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/preview-typography.js +47 -0
- package/build/components/global-styles/preview-typography.js.map +1 -0
- package/build/components/global-styles/screen-block.js +14 -0
- package/build/components/global-styles/screen-block.js.map +1 -1
- package/build/components/global-styles/screen-layout.js +5 -1
- package/build/components/global-styles/screen-layout.js.map +1 -1
- package/build/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
- package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
- package/build/components/global-styles/shadows-edit-panel.js +1 -2
- package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
- package/build/components/global-styles/style-variations-container.js +5 -5
- package/build/components/global-styles/style-variations-container.js.map +1 -1
- package/build/components/global-styles/typography-elements.js +0 -2
- package/build/components/global-styles/typography-elements.js.map +1 -1
- package/build/components/global-styles/variations/variation.js +28 -22
- package/build/components/global-styles/variations/variation.js.map +1 -1
- package/build/components/global-styles/variations/variations-color.js +5 -3
- package/build/components/global-styles/variations/variations-color.js.map +1 -1
- package/build/components/global-styles/variations/variations-typography.js +14 -27
- package/build/components/global-styles/variations/variations-typography.js.map +1 -1
- package/build/components/global-styles-sidebar/index.js +2 -2
- package/build/components/global-styles-sidebar/index.js.map +1 -1
- package/build/components/layout/index.js +16 -8
- package/build/components/layout/index.js.map +1 -1
- package/build/components/layout/router.js +20 -41
- package/build/components/layout/router.js.map +1 -1
- package/build/components/page-patterns/index.js +51 -41
- package/build/components/page-patterns/index.js.map +1 -1
- package/build/components/page-patterns/rename-category-menu-item.js +3 -1
- package/build/components/page-patterns/rename-category-menu-item.js.map +1 -1
- package/build/components/page-patterns/search-items.js +29 -4
- package/build/components/page-patterns/search-items.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +22 -55
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/page-templates/index.js +27 -21
- package/build/components/page-templates/index.js.map +1 -1
- package/build/components/pagination/index.js +4 -4
- package/build/components/pagination/index.js.map +1 -1
- package/build/components/posts-app/index.js +11 -17
- package/build/components/posts-app/index.js.map +1 -1
- package/build/components/{page-pages/index.js → posts-app/posts-list.js} +165 -38
- package/build/components/posts-app/posts-list.js.map +1 -0
- package/build/components/posts-app/router.js +85 -0
- package/build/components/posts-app/router.js.map +1 -0
- package/build/components/revisions/index.js +10 -7
- package/build/components/revisions/index.js.map +1 -1
- package/build/components/save-panel/index.js +1 -1
- package/build/components/save-panel/index.js.map +1 -1
- package/build/components/sidebar-dataviews/add-new-view.js +4 -1
- package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
- package/build/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
- package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
- package/build/components/sidebar-dataviews/default-views.js +98 -84
- package/build/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build/components/sidebar-dataviews/index.js +4 -1
- package/build/components/sidebar-dataviews/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-global-styles/index.js +3 -3
- package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +5 -2
- package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +3 -2
- package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
- package/build/components/site-hub/index.js +81 -1
- package/build/components/site-hub/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build/deprecated.js +11 -0
- package/build/deprecated.js.map +1 -1
- package/build/hooks/commands/use-set-command-context.js +11 -0
- package/build/hooks/commands/use-set-command-context.js.map +1 -1
- package/build/hooks/push-changes-to-global-styles/index.js +1 -1
- package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +65 -42
- package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
- package/build/index.js +6 -0
- package/build/index.js.map +1 -1
- package/build/lock-unlock.js +1 -1
- package/build/lock-unlock.js.map +1 -1
- package/build/posts.js +57 -2
- package/build/posts.js.map +1 -1
- package/build/store/private-actions.js +7 -2
- package/build/store/private-actions.js.map +1 -1
- package/build-module/components/add-new-pattern/index.js +31 -16
- package/build-module/components/add-new-pattern/index.js.map +1 -1
- package/build-module/components/{add-new-page → add-new-post}/index.js +28 -16
- package/build-module/components/add-new-post/index.js.map +1 -0
- package/build-module/components/block-editor/use-site-editor-settings.js +5 -3
- package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build-module/components/editor/index.js +33 -8
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/editor-canvas-container/index.js +19 -8
- package/build-module/components/editor-canvas-container/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +0 -5
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/font-families.js +18 -18
- package/build-module/components/global-styles/font-families.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/context.js +2 -2
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-collection.js +14 -31
- package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js +2 -2
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +0 -38
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/preview-typography.js +39 -0
- package/build-module/components/global-styles/preview-typography.js.map +1 -0
- package/build-module/components/global-styles/screen-block.js +15 -0
- package/build-module/components/global-styles/screen-block.js.map +1 -1
- package/build-module/components/global-styles/screen-layout.js +5 -1
- package/build-module/components/global-styles/screen-layout.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
- package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
- package/build-module/components/global-styles/shadows-edit-panel.js +1 -2
- package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
- package/build-module/components/global-styles/style-variations-container.js +6 -6
- package/build-module/components/global-styles/style-variations-container.js.map +1 -1
- package/build-module/components/global-styles/typography-elements.js +0 -2
- package/build-module/components/global-styles/typography-elements.js.map +1 -1
- package/build-module/components/global-styles/variations/variation.js +29 -23
- package/build-module/components/global-styles/variations/variation.js.map +1 -1
- package/build-module/components/global-styles/variations/variations-color.js +5 -3
- package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
- package/build-module/components/global-styles/variations/variations-typography.js +16 -28
- package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
- package/build-module/components/global-styles-sidebar/index.js +2 -2
- package/build-module/components/global-styles-sidebar/index.js.map +1 -1
- package/build-module/components/layout/index.js +14 -8
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/layout/router.js +20 -41
- package/build-module/components/layout/router.js.map +1 -1
- package/build-module/components/page-patterns/index.js +52 -42
- package/build-module/components/page-patterns/index.js.map +1 -1
- package/build-module/components/page-patterns/rename-category-menu-item.js +3 -1
- package/build-module/components/page-patterns/rename-category-menu-item.js.map +1 -1
- package/build-module/components/page-patterns/search-items.js +28 -4
- package/build-module/components/page-patterns/search-items.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +23 -56
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/page-templates/index.js +27 -21
- package/build-module/components/page-templates/index.js.map +1 -1
- package/build-module/components/pagination/index.js +4 -4
- package/build-module/components/pagination/index.js.map +1 -1
- package/build-module/components/posts-app/index.js +11 -17
- package/build-module/components/posts-app/index.js.map +1 -1
- package/build-module/components/{page-pages/index.js → posts-app/posts-list.js} +164 -37
- package/build-module/components/posts-app/posts-list.js.map +1 -0
- package/build-module/components/posts-app/router.js +77 -0
- package/build-module/components/posts-app/router.js.map +1 -0
- package/build-module/components/revisions/index.js +10 -7
- package/build-module/components/revisions/index.js.map +1 -1
- package/build-module/components/save-panel/index.js +1 -1
- package/build-module/components/save-panel/index.js.map +1 -1
- package/build-module/components/sidebar-dataviews/add-new-view.js +4 -1
- package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
- package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
- package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
- package/build-module/components/sidebar-dataviews/default-views.js +97 -84
- package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build-module/components/sidebar-dataviews/index.js +5 -2
- package/build-module/components/sidebar-dataviews/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js +3 -3
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +5 -2
- package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +3 -2
- package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
- package/build-module/components/site-hub/index.js +81 -1
- package/build-module/components/site-hub/index.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -1
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build-module/deprecated.js +11 -0
- package/build-module/deprecated.js.map +1 -1
- package/build-module/hooks/commands/use-set-command-context.js +11 -0
- package/build-module/hooks/commands/use-set-command-context.js.map +1 -1
- package/build-module/hooks/push-changes-to-global-styles/index.js +1 -1
- package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +61 -38
- package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
- package/build-module/index.js +7 -2
- package/build-module/index.js.map +1 -1
- package/build-module/lock-unlock.js +1 -1
- package/build-module/lock-unlock.js.map +1 -1
- package/build-module/posts.js +57 -2
- package/build-module/posts.js.map +1 -1
- package/build-module/store/private-actions.js +7 -2
- package/build-module/store/private-actions.js.map +1 -1
- package/build-style/posts-rtl.css +108 -28
- package/build-style/posts.css +108 -28
- package/build-style/style-rtl.css +127 -157
- package/build-style/style.css +127 -157
- package/lib/inflate.js +3188 -3937
- package/lib/lib-font.browser.js +32 -2
- package/lib/unbrotli.js +1818 -2458
- package/package.json +41 -41
- package/src/components/add-new-pattern/index.js +38 -23
- package/src/components/{add-new-page → add-new-post}/index.js +42 -18
- package/src/components/block-editor/style.scss +0 -11
- package/src/components/block-editor/use-site-editor-settings.js +33 -28
- package/src/components/editor/index.js +34 -20
- package/src/components/editor-canvas-container/index.js +20 -8
- package/src/components/global-styles/background-panel.js +0 -8
- package/src/components/global-styles/font-families.js +28 -19
- package/src/components/global-styles/font-library-modal/context.js +2 -2
- package/src/components/global-styles/font-library-modal/font-collection.js +17 -32
- package/src/components/global-styles/font-library-modal/installed-fonts.js +2 -2
- package/src/components/global-styles/font-library-modal/style.scss +17 -10
- package/src/components/global-styles/hooks.js +0 -41
- package/src/components/global-styles/preview-typography.js +39 -0
- package/src/components/global-styles/screen-block.js +22 -0
- package/src/components/global-styles/screen-layout.js +5 -1
- package/src/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
- package/src/components/global-styles/shadows-edit-panel.js +1 -2
- package/src/components/global-styles/style-variations-container.js +10 -7
- package/src/components/global-styles/style.scss +2 -1
- package/src/components/global-styles/typography-elements.js +0 -4
- package/src/components/global-styles/variations/variation.js +41 -26
- package/src/components/global-styles/variations/variations-color.js +6 -3
- package/src/components/global-styles/variations/variations-typography.js +16 -32
- package/src/components/global-styles-sidebar/index.js +2 -2
- package/src/components/layout/index.js +13 -4
- package/src/components/layout/router.js +20 -36
- package/src/components/layout/style.scss +12 -0
- package/src/components/page-patterns/index.js +55 -58
- package/src/components/page-patterns/rename-category-menu-item.js +2 -0
- package/src/components/page-patterns/search-items.js +37 -3
- package/src/components/page-patterns/style.scss +1 -8
- package/src/components/page-patterns/use-patterns.js +43 -82
- package/src/components/page-templates/index.js +26 -21
- package/src/components/page-templates/style.scss +1 -6
- package/src/components/pagination/index.js +4 -4
- package/src/components/posts-app/index.js +9 -11
- package/src/components/{page-pages/index.js → posts-app/posts-list.js} +163 -42
- package/src/components/posts-app/router.js +69 -0
- package/src/components/{page-pages → posts-app}/style.scss +22 -8
- package/src/components/revisions/index.js +9 -1
- package/src/components/save-panel/index.js +1 -1
- package/src/components/sidebar/style.scss +6 -0
- package/src/components/sidebar-dataviews/add-new-view.js +2 -1
- package/src/components/sidebar-dataviews/custom-dataviews-list.js +6 -2
- package/src/components/sidebar-dataviews/default-views.js +119 -98
- package/src/components/sidebar-dataviews/index.js +3 -3
- package/src/components/sidebar-navigation-screen-global-styles/index.js +7 -6
- package/src/components/sidebar-navigation-screen-navigation-menu/rename-modal.js +8 -2
- package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +10 -2
- package/src/components/site-hub/index.js +84 -1
- package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +3 -2
- package/src/deprecated.js +14 -0
- package/src/hooks/commands/use-set-command-context.js +12 -0
- package/src/hooks/push-changes-to-global-styles/index.js +1 -1
- package/src/hooks/use-theme-style-variations/test/use-theme-style-variations-by-property.js +28 -24
- package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +72 -47
- package/src/index.js +8 -1
- package/src/lock-unlock.js +1 -1
- package/src/posts.js +63 -2
- package/src/posts.scss +9 -0
- package/src/store/private-actions.js +7 -3
- package/src/style.scss +14 -2
- package/build/components/add-new-page/index.js.map +0 -1
- package/build/components/page-pages/index.js.map +0 -1
- package/build/components/table/index.js +0 -35
- package/build/components/table/index.js.map +0 -1
- package/build-module/components/add-new-page/index.js.map +0 -1
- package/build-module/components/page-pages/index.js.map +0 -1
- package/build-module/components/table/index.js +0 -30
- package/build-module/components/table/index.js.map +0 -1
- package/src/components/table/index.js +0 -33
- package/src/components/table/style.scss +0 -38
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 6.3.0 (2024-07-10)
|
|
6
|
+
|
|
7
|
+
## 6.2.0 (2024-06-26)
|
|
8
|
+
|
|
5
9
|
## 6.1.0 (2024-06-15)
|
|
6
10
|
|
|
7
11
|
## 6.0.0 (2024-05-31)
|
|
@@ -87,7 +91,7 @@
|
|
|
87
91
|
|
|
88
92
|
## 5.3.0 (2023-02-01)
|
|
89
93
|
|
|
90
|
-
### Bug
|
|
94
|
+
### Bug Fixes
|
|
91
95
|
|
|
92
96
|
- Force visual editor in browse mode ([#47329](https://github.com/WordPress/gutenberg/pull/47329)).
|
|
93
97
|
- Style Book: Exclude blocks that are not allowed to insert ([#47461](https://github.com/WordPress/gutenberg/pull/47461)).
|
|
@@ -106,7 +110,7 @@
|
|
|
106
110
|
|
|
107
111
|
- Fluid typography: add configurable fluid typography settings for minimum font size to theme.json ([#42489](https://github.com/WordPress/gutenberg/pull/42489)).
|
|
108
112
|
|
|
109
|
-
### Bug
|
|
113
|
+
### Bug Fixes
|
|
110
114
|
|
|
111
115
|
- Don't show block inserter when the canvas is view mode ([#46763](https://github.com/WordPress/gutenberg/pull/46763)).
|
|
112
116
|
|
|
@@ -150,11 +154,11 @@
|
|
|
150
154
|
|
|
151
155
|
## 4.0.0 (2022-02-10)
|
|
152
156
|
|
|
153
|
-
### Breaking
|
|
157
|
+
### Breaking Changes
|
|
154
158
|
|
|
155
159
|
- The `GUTENBERG_PHASE` environment variable has been renamed to `IS_GUTENBERG_PLUGIN` and is now a boolean ([#38202](https://github.com/WordPress/gutenberg/pull/38202)).
|
|
156
160
|
|
|
157
|
-
### Bug
|
|
161
|
+
### Bug Fixes
|
|
158
162
|
|
|
159
163
|
- Removed unused `@wordpress/primitives`, `file-saver` and `jszip` dependencies ([#38388](https://github.com/WordPress/gutenberg/pull/38388)).
|
|
160
164
|
|
|
@@ -162,7 +166,7 @@
|
|
|
162
166
|
|
|
163
167
|
## 3.0.0 (2021-07-29)
|
|
164
168
|
|
|
165
|
-
### Breaking
|
|
169
|
+
### Breaking Changes
|
|
166
170
|
|
|
167
171
|
- Upgraded React components to work with v17.0 ([#29118](https://github.com/WordPress/gutenberg/pull/29118)). There are no new features in React v17.0 as explained in the [blog post](https://reactjs.org/blog/2020/10/20/react-v17.html).
|
|
168
172
|
|
|
@@ -181,6 +185,6 @@
|
|
|
181
185
|
|
|
182
186
|
## 1.0.0 (2020-01-13)
|
|
183
187
|
|
|
184
|
-
### New
|
|
188
|
+
### New Features
|
|
185
189
|
|
|
186
190
|
- Initial version of the package.
|
|
@@ -39,6 +39,7 @@ function AddNewPattern() {
|
|
|
39
39
|
const history = useHistory();
|
|
40
40
|
const [showPatternModal, setShowPatternModal] = (0, _element.useState)(false);
|
|
41
41
|
const [showTemplatePartModal, setShowTemplatePartModal] = (0, _element.useState)(false);
|
|
42
|
+
// eslint-disable-next-line @wordpress/no-unused-vars-before-return
|
|
42
43
|
const {
|
|
43
44
|
createPatternFromFile
|
|
44
45
|
} = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_patterns.store));
|
|
@@ -50,16 +51,22 @@ function AddNewPattern() {
|
|
|
50
51
|
const {
|
|
51
52
|
isBlockBasedTheme,
|
|
52
53
|
addNewPatternLabel,
|
|
53
|
-
addNewTemplatePartLabel
|
|
54
|
+
addNewTemplatePartLabel,
|
|
55
|
+
canCreatePattern,
|
|
56
|
+
canCreateTemplatePart
|
|
54
57
|
} = (0, _data.useSelect)(select => {
|
|
55
58
|
const {
|
|
56
59
|
getCurrentTheme,
|
|
57
|
-
getPostType
|
|
60
|
+
getPostType,
|
|
61
|
+
canUser
|
|
58
62
|
} = select(_coreData.store);
|
|
59
63
|
return {
|
|
60
64
|
isBlockBasedTheme: getCurrentTheme()?.is_block_theme,
|
|
61
65
|
addNewPatternLabel: getPostType(_constants.PATTERN_TYPES.user)?.labels?.add_new_item,
|
|
62
|
-
addNewTemplatePartLabel: getPostType(_constants.TEMPLATE_PART_POST_TYPE)?.labels?.add_new_item
|
|
66
|
+
addNewTemplatePartLabel: getPostType(_constants.TEMPLATE_PART_POST_TYPE)?.labels?.add_new_item,
|
|
67
|
+
// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.
|
|
68
|
+
canCreatePattern: canUser('create', 'blocks'),
|
|
69
|
+
canCreateTemplatePart: canUser('create', 'template-parts')
|
|
63
70
|
};
|
|
64
71
|
}, []);
|
|
65
72
|
function handleCreatePattern({
|
|
@@ -86,29 +93,37 @@ function AddNewPattern() {
|
|
|
86
93
|
setShowPatternModal(false);
|
|
87
94
|
setShowTemplatePartModal(false);
|
|
88
95
|
}
|
|
89
|
-
const controls = [
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
96
|
+
const controls = [];
|
|
97
|
+
if (canCreatePattern) {
|
|
98
|
+
controls.push({
|
|
99
|
+
icon: _icons.symbol,
|
|
100
|
+
onClick: () => setShowPatternModal(true),
|
|
101
|
+
title: addNewPatternLabel
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
if (isBlockBasedTheme && canCreateTemplatePart) {
|
|
95
105
|
controls.push({
|
|
96
106
|
icon: _icons.symbolFilled,
|
|
97
107
|
onClick: () => setShowTemplatePartModal(true),
|
|
98
108
|
title: addNewTemplatePartLabel
|
|
99
109
|
});
|
|
100
110
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
111
|
+
if (canCreatePattern) {
|
|
112
|
+
controls.push({
|
|
113
|
+
icon: _icons.upload,
|
|
114
|
+
onClick: () => {
|
|
115
|
+
patternUploadInputRef.current.click();
|
|
116
|
+
},
|
|
117
|
+
title: (0, _i18n.__)('Import pattern from JSON')
|
|
118
|
+
});
|
|
119
|
+
}
|
|
108
120
|
const {
|
|
109
121
|
categoryMap,
|
|
110
122
|
findOrCreateTerm
|
|
111
123
|
} = useAddPatternCategory();
|
|
124
|
+
if (controls.length === 0) {
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
112
127
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
113
128
|
children: [addNewPatternLabel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.DropdownMenu, {
|
|
114
129
|
controls: controls,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_element","_i18n","_icons","_data","_router","_patterns","_notices","_coreData","_editor","_lockUnlock","_constants","_jsxRuntime","useHistory","unlock","routerPrivateApis","CreatePatternModal","useAddPatternCategory","editPatternsPrivateApis","CreateTemplatePartModal","editorPrivateApis","AddNewPattern","history","showPatternModal","setShowPatternModal","useState","showTemplatePartModal","setShowTemplatePartModal","createPatternFromFile","useDispatch","patternsStore","createSuccessNotice","createErrorNotice","noticesStore","patternUploadInputRef","useRef","isBlockBasedTheme","addNewPatternLabel","addNewTemplatePartLabel","useSelect","select","getCurrentTheme","getPostType","coreStore","is_block_theme","PATTERN_TYPES","user","labels","add_new_item","TEMPLATE_PART_POST_TYPE","handleCreatePattern","pattern","push","postId","id","postType","canvas","handleCreateTemplatePart","templatePart","handleError","controls","icon","symbol","onClick","title","symbolFilled","upload","current","click","__","categoryMap","findOrCreateTerm","jsxs","Fragment","children","jsx","DropdownMenu","toggleProps","variant","showTooltip","__next40pxDefaultSize","text","label","onClose","onSuccess","onError","closeModal","blocks","onCreate","type","accept","hidden","ref","onChange","event","file","target","files","params","categoryId","getLocationWithParams","currentCategoryId","currentCategory","values","find","term","name","undefined","PATTERN_DEFAULT_CATEGORY","sprintf","raw","err","message","value"],"sources":["@wordpress/edit-site/src/components/add-new-pattern/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { DropdownMenu } from '@wordpress/components';\nimport { useState, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { symbol, symbolFilled, upload } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tprivateApis as editPatternsPrivateApis,\n\tstore as patternsStore,\n} from '@wordpress/patterns';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport {\n\tPATTERN_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\n\nconst { useHistory } = unlock( routerPrivateApis );\nconst { CreatePatternModal, useAddPatternCategory } = unlock(\n\teditPatternsPrivateApis\n);\nconst { CreateTemplatePartModal } = unlock( editorPrivateApis );\n\nexport default function AddNewPattern() {\n\tconst history = useHistory();\n\tconst [ showPatternModal, setShowPatternModal ] = useState( false );\n\tconst [ showTemplatePartModal, setShowTemplatePartModal ] =\n\t\tuseState( false );\n\tconst { createPatternFromFile } = unlock( useDispatch( patternsStore ) );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst patternUploadInputRef = useRef();\n\tconst { isBlockBasedTheme, addNewPatternLabel, addNewTemplatePartLabel } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getCurrentTheme, getPostType } = select( coreStore );\n\t\t\treturn {\n\t\t\t\tisBlockBasedTheme: getCurrentTheme()?.is_block_theme,\n\t\t\t\taddNewPatternLabel: getPostType( PATTERN_TYPES.user )?.labels\n\t\t\t\t\t?.add_new_item,\n\t\t\t\taddNewTemplatePartLabel: getPostType( TEMPLATE_PART_POST_TYPE )\n\t\t\t\t\t?.labels?.add_new_item,\n\t\t\t};\n\t\t}, [] );\n\n\tfunction handleCreatePattern( { pattern } ) {\n\t\tsetShowPatternModal( false );\n\n\t\thistory.push( {\n\t\t\tpostId: pattern.id,\n\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\tcanvas: 'edit',\n\t\t} );\n\t}\n\n\tfunction handleCreateTemplatePart( templatePart ) {\n\t\tsetShowTemplatePartModal( false );\n\n\t\t// Navigate to the created template part editor.\n\t\thistory.push( {\n\t\t\tpostId: templatePart.id,\n\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\tcanvas: 'edit',\n\t\t} );\n\t}\n\n\tfunction handleError() {\n\t\tsetShowPatternModal( false );\n\t\tsetShowTemplatePartModal( false );\n\t}\n\n\tconst controls = [\n\t\t{\n\t\t\ticon: symbol,\n\t\t\tonClick: () => setShowPatternModal( true ),\n\t\t\ttitle: addNewPatternLabel,\n\t\t},\n\t];\n\n\tif ( isBlockBasedTheme ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbolFilled,\n\t\t\tonClick: () => setShowTemplatePartModal( true ),\n\t\t\ttitle: addNewTemplatePartLabel,\n\t\t} );\n\t}\n\n\tcontrols.push( {\n\t\ticon: upload,\n\t\tonClick: () => {\n\t\t\tpatternUploadInputRef.current.click();\n\t\t},\n\t\ttitle: __( 'Import pattern from JSON' ),\n\t} );\n\n\tconst { categoryMap, findOrCreateTerm } = useAddPatternCategory();\n\treturn (\n\t\t<>\n\t\t\t{ addNewPatternLabel && (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\ticon={ null }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\tshowTooltip: false,\n\t\t\t\t\t\t__next40pxDefaultSize: true,\n\t\t\t\t\t} }\n\t\t\t\t\ttext={ addNewPatternLabel }\n\t\t\t\t\tlabel={ addNewPatternLabel }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showPatternModal && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tonClose={ () => setShowPatternModal( false ) }\n\t\t\t\t\tonSuccess={ handleCreatePattern }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showTemplatePartModal && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setShowTemplatePartModal( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ handleCreateTemplatePart }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<input\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept=\".json\"\n\t\t\t\thidden\n\t\t\t\tref={ patternUploadInputRef }\n\t\t\t\tonChange={ async ( event ) => {\n\t\t\t\t\tconst file = event.target.files?.[ 0 ];\n\t\t\t\t\tif ( ! file ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\tparams: { postType, categoryId },\n\t\t\t\t\t\t} = history.getLocationWithParams();\n\t\t\t\t\t\tlet currentCategoryId;\n\t\t\t\t\t\t// When we're not handling template parts, we should\n\t\t\t\t\t\t// add or create the proper pattern category.\n\t\t\t\t\t\tif ( postType !== TEMPLATE_PART_POST_TYPE ) {\n\t\t\t\t\t\t\tconst currentCategory = categoryMap\n\t\t\t\t\t\t\t\t.values()\n\t\t\t\t\t\t\t\t.find( ( term ) => term.name === categoryId );\n\t\t\t\t\t\t\tif ( currentCategory ) {\n\t\t\t\t\t\t\t\tcurrentCategoryId =\n\t\t\t\t\t\t\t\t\tcurrentCategory.id ||\n\t\t\t\t\t\t\t\t\t( await findOrCreateTerm(\n\t\t\t\t\t\t\t\t\t\tcurrentCategory.label\n\t\t\t\t\t\t\t\t\t) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst pattern = await createPatternFromFile(\n\t\t\t\t\t\t\tfile,\n\t\t\t\t\t\t\tcurrentCategoryId\n\t\t\t\t\t\t\t\t? [ currentCategoryId ]\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Navigate to the All patterns category for the newly created pattern\n\t\t\t\t\t\t// if we're not on that page already and if we're not in the `my-patterns`\n\t\t\t\t\t\t// category.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! currentCategoryId &&\n\t\t\t\t\t\t\tcategoryId !== 'my-patterns'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\t\t\t\t\t\tcategoryId: PATTERN_DEFAULT_CATEGORY,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The imported pattern's title.\n\t\t\t\t\t\t\t\t__( 'Imported \"%s\" from JSON.' ),\n\t\t\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'import-pattern-success',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch ( err ) {\n\t\t\t\t\t\tcreateErrorNotice( err.message, {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'import-pattern-error',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tevent.target.value = '';\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_components","require","_element","_i18n","_icons","_data","_router","_patterns","_notices","_coreData","_editor","_lockUnlock","_constants","_jsxRuntime","useHistory","unlock","routerPrivateApis","CreatePatternModal","useAddPatternCategory","editPatternsPrivateApis","CreateTemplatePartModal","editorPrivateApis","AddNewPattern","history","showPatternModal","setShowPatternModal","useState","showTemplatePartModal","setShowTemplatePartModal","createPatternFromFile","useDispatch","patternsStore","createSuccessNotice","createErrorNotice","noticesStore","patternUploadInputRef","useRef","isBlockBasedTheme","addNewPatternLabel","addNewTemplatePartLabel","canCreatePattern","canCreateTemplatePart","useSelect","select","getCurrentTheme","getPostType","canUser","coreStore","is_block_theme","PATTERN_TYPES","user","labels","add_new_item","TEMPLATE_PART_POST_TYPE","handleCreatePattern","pattern","push","postId","id","postType","canvas","handleCreateTemplatePart","templatePart","handleError","controls","icon","symbol","onClick","title","symbolFilled","upload","current","click","__","categoryMap","findOrCreateTerm","length","jsxs","Fragment","children","jsx","DropdownMenu","toggleProps","variant","showTooltip","__next40pxDefaultSize","text","label","onClose","onSuccess","onError","closeModal","blocks","onCreate","type","accept","hidden","ref","onChange","event","file","target","files","params","categoryId","getLocationWithParams","currentCategoryId","currentCategory","values","find","term","name","undefined","PATTERN_DEFAULT_CATEGORY","sprintf","raw","err","message","value"],"sources":["@wordpress/edit-site/src/components/add-new-pattern/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { DropdownMenu } from '@wordpress/components';\nimport { useState, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { symbol, symbolFilled, upload } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tprivateApis as editPatternsPrivateApis,\n\tstore as patternsStore,\n} from '@wordpress/patterns';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport {\n\tPATTERN_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\n\nconst { useHistory } = unlock( routerPrivateApis );\nconst { CreatePatternModal, useAddPatternCategory } = unlock(\n\teditPatternsPrivateApis\n);\nconst { CreateTemplatePartModal } = unlock( editorPrivateApis );\n\nexport default function AddNewPattern() {\n\tconst history = useHistory();\n\tconst [ showPatternModal, setShowPatternModal ] = useState( false );\n\tconst [ showTemplatePartModal, setShowTemplatePartModal ] =\n\t\tuseState( false );\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { createPatternFromFile } = unlock( useDispatch( patternsStore ) );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst patternUploadInputRef = useRef();\n\tconst {\n\t\tisBlockBasedTheme,\n\t\taddNewPatternLabel,\n\t\taddNewTemplatePartLabel,\n\t\tcanCreatePattern,\n\t\tcanCreateTemplatePart,\n\t} = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getPostType, canUser } = select( coreStore );\n\t\treturn {\n\t\t\tisBlockBasedTheme: getCurrentTheme()?.is_block_theme,\n\t\t\taddNewPatternLabel: getPostType( PATTERN_TYPES.user )?.labels\n\t\t\t\t?.add_new_item,\n\t\t\taddNewTemplatePartLabel: getPostType( TEMPLATE_PART_POST_TYPE )\n\t\t\t\t?.labels?.add_new_item,\n\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\tcanCreatePattern: canUser( 'create', 'blocks' ),\n\t\t\tcanCreateTemplatePart: canUser( 'create', 'template-parts' ),\n\t\t};\n\t}, [] );\n\n\tfunction handleCreatePattern( { pattern } ) {\n\t\tsetShowPatternModal( false );\n\n\t\thistory.push( {\n\t\t\tpostId: pattern.id,\n\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\tcanvas: 'edit',\n\t\t} );\n\t}\n\n\tfunction handleCreateTemplatePart( templatePart ) {\n\t\tsetShowTemplatePartModal( false );\n\n\t\t// Navigate to the created template part editor.\n\t\thistory.push( {\n\t\t\tpostId: templatePart.id,\n\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\tcanvas: 'edit',\n\t\t} );\n\t}\n\n\tfunction handleError() {\n\t\tsetShowPatternModal( false );\n\t\tsetShowTemplatePartModal( false );\n\t}\n\n\tconst controls = [];\n\tif ( canCreatePattern ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbol,\n\t\t\tonClick: () => setShowPatternModal( true ),\n\t\t\ttitle: addNewPatternLabel,\n\t\t} );\n\t}\n\n\tif ( isBlockBasedTheme && canCreateTemplatePart ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbolFilled,\n\t\t\tonClick: () => setShowTemplatePartModal( true ),\n\t\t\ttitle: addNewTemplatePartLabel,\n\t\t} );\n\t}\n\n\tif ( canCreatePattern ) {\n\t\tcontrols.push( {\n\t\t\ticon: upload,\n\t\t\tonClick: () => {\n\t\t\t\tpatternUploadInputRef.current.click();\n\t\t\t},\n\t\t\ttitle: __( 'Import pattern from JSON' ),\n\t\t} );\n\t}\n\n\tconst { categoryMap, findOrCreateTerm } = useAddPatternCategory();\n\tif ( controls.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ addNewPatternLabel && (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\ticon={ null }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\tshowTooltip: false,\n\t\t\t\t\t\t__next40pxDefaultSize: true,\n\t\t\t\t\t} }\n\t\t\t\t\ttext={ addNewPatternLabel }\n\t\t\t\t\tlabel={ addNewPatternLabel }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showPatternModal && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tonClose={ () => setShowPatternModal( false ) }\n\t\t\t\t\tonSuccess={ handleCreatePattern }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showTemplatePartModal && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setShowTemplatePartModal( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ handleCreateTemplatePart }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<input\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept=\".json\"\n\t\t\t\thidden\n\t\t\t\tref={ patternUploadInputRef }\n\t\t\t\tonChange={ async ( event ) => {\n\t\t\t\t\tconst file = event.target.files?.[ 0 ];\n\t\t\t\t\tif ( ! file ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\tparams: { postType, categoryId },\n\t\t\t\t\t\t} = history.getLocationWithParams();\n\t\t\t\t\t\tlet currentCategoryId;\n\t\t\t\t\t\t// When we're not handling template parts, we should\n\t\t\t\t\t\t// add or create the proper pattern category.\n\t\t\t\t\t\tif ( postType !== TEMPLATE_PART_POST_TYPE ) {\n\t\t\t\t\t\t\tconst currentCategory = categoryMap\n\t\t\t\t\t\t\t\t.values()\n\t\t\t\t\t\t\t\t.find( ( term ) => term.name === categoryId );\n\t\t\t\t\t\t\tif ( currentCategory ) {\n\t\t\t\t\t\t\t\tcurrentCategoryId =\n\t\t\t\t\t\t\t\t\tcurrentCategory.id ||\n\t\t\t\t\t\t\t\t\t( await findOrCreateTerm(\n\t\t\t\t\t\t\t\t\t\tcurrentCategory.label\n\t\t\t\t\t\t\t\t\t) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst pattern = await createPatternFromFile(\n\t\t\t\t\t\t\tfile,\n\t\t\t\t\t\t\tcurrentCategoryId\n\t\t\t\t\t\t\t\t? [ currentCategoryId ]\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Navigate to the All patterns category for the newly created pattern\n\t\t\t\t\t\t// if we're not on that page already and if we're not in the `my-patterns`\n\t\t\t\t\t\t// category.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! currentCategoryId &&\n\t\t\t\t\t\t\tcategoryId !== 'my-patterns'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\t\t\t\t\t\tcategoryId: PATTERN_DEFAULT_CATEGORY,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The imported pattern's title.\n\t\t\t\t\t\t\t\t__( 'Imported \"%s\" from JSON.' ),\n\t\t\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'import-pattern-success',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch ( err ) {\n\t\t\t\t\t\tcreateErrorNotice( err.message, {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'import-pattern-error',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tevent.target.value = '';\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AAIA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,OAAA,GAAAT,OAAA;AAKA,IAAAU,WAAA,GAAAV,OAAA;AACA,IAAAW,UAAA,GAAAX,OAAA;AAI+B,IAAAY,WAAA,GAAAZ,OAAA;AAzB/B;AACA;AACA;;AAeA;AACA;AACA;;AAQA,MAAM;EAAEa;AAAW,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAClD,MAAM;EAAEC,kBAAkB;EAAEC;AAAsB,CAAC,GAAG,IAAAH,kBAAM,EAC3DI,qBACD,CAAC;AACD,MAAM;EAAEC;AAAwB,CAAC,GAAG,IAAAL,kBAAM,EAAEM,mBAAkB,CAAC;AAEhD,SAASC,aAAaA,CAAA,EAAG;EACvC,MAAMC,OAAO,GAAGT,UAAU,CAAC,CAAC;EAC5B,MAAM,CAAEU,gBAAgB,EAAEC,mBAAmB,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EACnE,MAAM,CAAEC,qBAAqB,EAAEC,wBAAwB,CAAE,GACxD,IAAAF,iBAAQ,EAAE,KAAM,CAAC;EAClB;EACA,MAAM;IAAEG;EAAsB,CAAC,GAAG,IAAAd,kBAAM,EAAE,IAAAe,iBAAW,EAAEC,eAAc,CAAE,CAAC;EACxE,MAAM;IAAEC,mBAAmB;IAAEC;EAAkB,CAAC,GAC/C,IAAAH,iBAAW,EAAEI,cAAa,CAAC;EAC5B,MAAMC,qBAAqB,GAAG,IAAAC,eAAM,EAAC,CAAC;EACtC,MAAM;IACLC,iBAAiB;IACjBC,kBAAkB;IAClBC,uBAAuB;IACvBC,gBAAgB;IAChBC;EACD,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC5B,MAAM;MAAEC,eAAe;MAAEC,WAAW;MAAEC;IAAQ,CAAC,GAAGH,MAAM,CAAEI,eAAU,CAAC;IACrE,OAAO;MACNV,iBAAiB,EAAEO,eAAe,CAAC,CAAC,EAAEI,cAAc;MACpDV,kBAAkB,EAAEO,WAAW,CAAEI,wBAAa,CAACC,IAAK,CAAC,EAAEC,MAAM,EAC1DC,YAAY;MACfb,uBAAuB,EAAEM,WAAW,CAAEQ,kCAAwB,CAAC,EAC5DF,MAAM,EAAEC,YAAY;MACvB;MACAZ,gBAAgB,EAAEM,OAAO,CAAE,QAAQ,EAAE,QAAS,CAAC;MAC/CL,qBAAqB,EAAEK,OAAO,CAAE,QAAQ,EAAE,gBAAiB;IAC5D,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,SAASQ,mBAAmBA,CAAE;IAAEC;EAAQ,CAAC,EAAG;IAC3C9B,mBAAmB,CAAE,KAAM,CAAC;IAE5BF,OAAO,CAACiC,IAAI,CAAE;MACbC,MAAM,EAAEF,OAAO,CAACG,EAAE;MAClBC,QAAQ,EAAEV,wBAAa,CAACC,IAAI;MAC5BU,MAAM,EAAE;IACT,CAAE,CAAC;EACJ;EAEA,SAASC,wBAAwBA,CAAEC,YAAY,EAAG;IACjDlC,wBAAwB,CAAE,KAAM,CAAC;;IAEjC;IACAL,OAAO,CAACiC,IAAI,CAAE;MACbC,MAAM,EAAEK,YAAY,CAACJ,EAAE;MACvBC,QAAQ,EAAEN,kCAAuB;MACjCO,MAAM,EAAE;IACT,CAAE,CAAC;EACJ;EAEA,SAASG,WAAWA,CAAA,EAAG;IACtBtC,mBAAmB,CAAE,KAAM,CAAC;IAC5BG,wBAAwB,CAAE,KAAM,CAAC;EAClC;EAEA,MAAMoC,QAAQ,GAAG,EAAE;EACnB,IAAKxB,gBAAgB,EAAG;IACvBwB,QAAQ,CAACR,IAAI,CAAE;MACdS,IAAI,EAAEC,aAAM;MACZC,OAAO,EAAEA,CAAA,KAAM1C,mBAAmB,CAAE,IAAK,CAAC;MAC1C2C,KAAK,EAAE9B;IACR,CAAE,CAAC;EACJ;EAEA,IAAKD,iBAAiB,IAAII,qBAAqB,EAAG;IACjDuB,QAAQ,CAACR,IAAI,CAAE;MACdS,IAAI,EAAEI,mBAAY;MAClBF,OAAO,EAAEA,CAAA,KAAMvC,wBAAwB,CAAE,IAAK,CAAC;MAC/CwC,KAAK,EAAE7B;IACR,CAAE,CAAC;EACJ;EAEA,IAAKC,gBAAgB,EAAG;IACvBwB,QAAQ,CAACR,IAAI,CAAE;MACdS,IAAI,EAAEK,aAAM;MACZH,OAAO,EAAEA,CAAA,KAAM;QACdhC,qBAAqB,CAACoC,OAAO,CAACC,KAAK,CAAC,CAAC;MACtC,CAAC;MACDJ,KAAK,EAAE,IAAAK,QAAE,EAAE,0BAA2B;IACvC,CAAE,CAAC;EACJ;EAEA,MAAM;IAAEC,WAAW;IAAEC;EAAiB,CAAC,GAAGzD,qBAAqB,CAAC,CAAC;EACjE,IAAK8C,QAAQ,CAACY,MAAM,KAAK,CAAC,EAAG;IAC5B,OAAO,IAAI;EACZ;EACA,oBACC,IAAA/D,WAAA,CAAAgE,IAAA,EAAAhE,WAAA,CAAAiE,QAAA;IAAAC,QAAA,GACGzC,kBAAkB,iBACnB,IAAAzB,WAAA,CAAAmE,GAAA,EAAChF,WAAA,CAAAiF,YAAY;MACZjB,QAAQ,EAAGA,QAAU;MACrBC,IAAI,EAAG,IAAM;MACbiB,WAAW,EAAG;QACbC,OAAO,EAAE,SAAS;QAClBC,WAAW,EAAE,KAAK;QAClBC,qBAAqB,EAAE;MACxB,CAAG;MACHC,IAAI,EAAGhD,kBAAoB;MAC3BiD,KAAK,EAAGjD;IAAoB,CAC5B,CACD,EACCd,gBAAgB,iBACjB,IAAAX,WAAA,CAAAmE,GAAA,EAAC/D,kBAAkB;MAClBuE,OAAO,EAAGA,CAAA,KAAM/D,mBAAmB,CAAE,KAAM,CAAG;MAC9CgE,SAAS,EAAGnC,mBAAqB;MACjCoC,OAAO,EAAG3B;IAAa,CACvB,CACD,EACCpC,qBAAqB,iBACtB,IAAAd,WAAA,CAAAmE,GAAA,EAAC5D,uBAAuB;MACvBuE,UAAU,EAAGA,CAAA,KAAM/D,wBAAwB,CAAE,KAAM,CAAG;MACtDgE,MAAM,EAAG,EAAI;MACbC,QAAQ,EAAGhC,wBAA0B;MACrC6B,OAAO,EAAG3B;IAAa,CACvB,CACD,eAED,IAAAlD,WAAA,CAAAmE,GAAA;MACCc,IAAI,EAAC,MAAM;MACXC,MAAM,EAAC,OAAO;MACdC,MAAM;MACNC,GAAG,EAAG9D,qBAAuB;MAC7B+D,QAAQ,EAAG,MAAQC,KAAK,IAAM;QAC7B,MAAMC,IAAI,GAAGD,KAAK,CAACE,MAAM,CAACC,KAAK,GAAI,CAAC,CAAE;QACtC,IAAK,CAAEF,IAAI,EAAG;UACb;QACD;QACA,IAAI;UACH,MAAM;YACLG,MAAM,EAAE;cAAE5C,QAAQ;cAAE6C;YAAW;UAChC,CAAC,GAAGjF,OAAO,CAACkF,qBAAqB,CAAC,CAAC;UACnC,IAAIC,iBAAiB;UACrB;UACA;UACA,IAAK/C,QAAQ,KAAKN,kCAAuB,EAAG;YAC3C,MAAMsD,eAAe,GAAGjC,WAAW,CACjCkC,MAAM,CAAC,CAAC,CACRC,IAAI,CAAIC,IAAI,IAAMA,IAAI,CAACC,IAAI,KAAKP,UAAW,CAAC;YAC9C,IAAKG,eAAe,EAAG;cACtBD,iBAAiB,GAChBC,eAAe,CAACjD,EAAE,KAChB,MAAMiB,gBAAgB,CACvBgC,eAAe,CAACpB,KACjB,CAAC,CAAE;YACL;UACD;UACA,MAAMhC,OAAO,GAAG,MAAM1B,qBAAqB,CAC1CuE,IAAI,EACJM,iBAAiB,GACd,CAAEA,iBAAiB,CAAE,GACrBM,SACJ,CAAC;;UAED;UACA;UACA;UACA,IACC,CAAEN,iBAAiB,IACnBF,UAAU,KAAK,aAAa,EAC3B;YACDjF,OAAO,CAACiC,IAAI,CAAE;cACbG,QAAQ,EAAEV,wBAAa,CAACC,IAAI;cAC5BsD,UAAU,EAAES;YACb,CAAE,CAAC;UACJ;UAEAjF,mBAAmB,CAClB,IAAAkF,aAAO;UACN;UACA,IAAAzC,QAAE,EAAE,0BAA2B,CAAC,EAChClB,OAAO,CAACa,KAAK,CAAC+C,GACf,CAAC,EACD;YACCrB,IAAI,EAAE,UAAU;YAChBpC,EAAE,EAAE;UACL,CACD,CAAC;QACF,CAAC,CAAC,OAAQ0D,GAAG,EAAG;UACfnF,iBAAiB,CAAEmF,GAAG,CAACC,OAAO,EAAE;YAC/BvB,IAAI,EAAE,UAAU;YAChBpC,EAAE,EAAE;UACL,CAAE,CAAC;QACJ,CAAC,SAAS;UACTyC,KAAK,CAACE,MAAM,CAACiB,KAAK,GAAG,EAAE;QACxB;MACD;IAAG,CACH,CAAC;EAAA,CACD,CAAC;AAEL","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default =
|
|
6
|
+
exports.default = AddNewPostModal;
|
|
7
7
|
var _components = require("@wordpress/components");
|
|
8
8
|
var _i18n = require("@wordpress/i18n");
|
|
9
9
|
var _data = require("@wordpress/data");
|
|
@@ -11,16 +11,19 @@ var _element = require("@wordpress/element");
|
|
|
11
11
|
var _coreData = require("@wordpress/core-data");
|
|
12
12
|
var _notices = require("@wordpress/notices");
|
|
13
13
|
var _htmlEntities = require("@wordpress/html-entities");
|
|
14
|
+
var _blocks = require("@wordpress/blocks");
|
|
14
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
16
|
/**
|
|
16
17
|
* WordPress dependencies
|
|
17
18
|
*/
|
|
18
19
|
|
|
19
|
-
function
|
|
20
|
+
function AddNewPostModal({
|
|
21
|
+
postType,
|
|
20
22
|
onSave,
|
|
21
23
|
onClose
|
|
22
24
|
}) {
|
|
23
|
-
const
|
|
25
|
+
const labels = (0, _data.useSelect)(select => select(_coreData.store).getPostType(postType)?.labels, [postType]);
|
|
26
|
+
const [isCreatingPost, setIsCreatingPost] = (0, _element.useState)(false);
|
|
24
27
|
const [title, setTitle] = (0, _element.useState)('');
|
|
25
28
|
const {
|
|
26
29
|
saveEntityRecord
|
|
@@ -29,45 +32,54 @@ function AddNewPageModal({
|
|
|
29
32
|
createErrorNotice,
|
|
30
33
|
createSuccessNotice
|
|
31
34
|
} = (0, _data.useDispatch)(_notices.store);
|
|
32
|
-
|
|
35
|
+
const {
|
|
36
|
+
resolveSelect
|
|
37
|
+
} = (0, _data.useRegistry)();
|
|
38
|
+
async function createPost(event) {
|
|
33
39
|
event.preventDefault();
|
|
34
|
-
if (
|
|
40
|
+
if (isCreatingPost) {
|
|
35
41
|
return;
|
|
36
42
|
}
|
|
37
|
-
|
|
43
|
+
setIsCreatingPost(true);
|
|
38
44
|
try {
|
|
39
|
-
const
|
|
45
|
+
const postTypeObject = await resolveSelect(_coreData.store).getPostType(postType);
|
|
46
|
+
const newPage = await saveEntityRecord('postType', postType, {
|
|
40
47
|
status: 'draft',
|
|
41
48
|
title,
|
|
42
|
-
slug: title || (0, _i18n.__)('No title')
|
|
49
|
+
slug: title || (0, _i18n.__)('No title'),
|
|
50
|
+
content: !!postTypeObject.template && postTypeObject.template.length ? (0, _blocks.serialize)((0, _blocks.synchronizeBlocksWithTemplate)([], postTypeObject.template)) : undefined
|
|
43
51
|
}, {
|
|
44
52
|
throwOnError: true
|
|
45
53
|
});
|
|
46
54
|
onSave(newPage);
|
|
47
55
|
createSuccessNotice((0, _i18n.sprintf)(
|
|
48
|
-
// translators: %s: Title of the created
|
|
56
|
+
// translators: %s: Title of the created post e.g: "Hello world".
|
|
49
57
|
(0, _i18n.__)('"%s" successfully created.'), (0, _htmlEntities.decodeEntities)(newPage.title?.rendered || title)), {
|
|
50
58
|
type: 'snackbar'
|
|
51
59
|
});
|
|
52
60
|
} catch (error) {
|
|
53
|
-
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0, _i18n.__)('An error occurred while creating the
|
|
61
|
+
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0, _i18n.__)('An error occurred while creating the item.');
|
|
54
62
|
createErrorNotice(errorMessage, {
|
|
55
63
|
type: 'snackbar'
|
|
56
64
|
});
|
|
57
65
|
} finally {
|
|
58
|
-
|
|
66
|
+
setIsCreatingPost(false);
|
|
59
67
|
}
|
|
60
68
|
}
|
|
61
69
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Modal, {
|
|
62
|
-
title:
|
|
70
|
+
title:
|
|
71
|
+
// translators: %s: post type singular_name label e.g: "Page".
|
|
72
|
+
(0, _i18n.sprintf)((0, _i18n.__)('Draft new: %s'), labels?.singular_name),
|
|
63
73
|
onRequestClose: onClose,
|
|
74
|
+
focusOnMount: "firstContentElement",
|
|
75
|
+
size: "small",
|
|
64
76
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("form", {
|
|
65
|
-
onSubmit:
|
|
77
|
+
onSubmit: createPost,
|
|
66
78
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
|
|
67
79
|
spacing: 3,
|
|
68
80
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
|
|
69
81
|
__next40pxDefaultSize: true,
|
|
70
|
-
label: (0, _i18n.__)('
|
|
82
|
+
label: (0, _i18n.__)('Title'),
|
|
71
83
|
onChange: setTitle,
|
|
72
84
|
placeholder: (0, _i18n.__)('No title'),
|
|
73
85
|
value: title
|
|
@@ -83,8 +95,8 @@ function AddNewPageModal({
|
|
|
83
95
|
__next40pxDefaultSize: true,
|
|
84
96
|
variant: "primary",
|
|
85
97
|
type: "submit",
|
|
86
|
-
isBusy:
|
|
87
|
-
"aria-disabled":
|
|
98
|
+
isBusy: isCreatingPost,
|
|
99
|
+
"aria-disabled": isCreatingPost,
|
|
88
100
|
children: (0, _i18n.__)('Create draft')
|
|
89
101
|
})]
|
|
90
102
|
})]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_data","_element","_coreData","_notices","_htmlEntities","_blocks","_jsxRuntime","AddNewPostModal","postType","onSave","onClose","labels","useSelect","select","coreStore","getPostType","isCreatingPost","setIsCreatingPost","useState","title","setTitle","saveEntityRecord","useDispatch","createErrorNotice","createSuccessNotice","noticesStore","resolveSelect","useRegistry","createPost","event","preventDefault","postTypeObject","newPage","status","slug","__","content","template","length","serialize","synchronizeBlocksWithTemplate","undefined","throwOnError","sprintf","decodeEntities","rendered","type","error","errorMessage","message","code","jsx","Modal","singular_name","onRequestClose","focusOnMount","size","children","onSubmit","jsxs","__experimentalVStack","spacing","TextControl","__next40pxDefaultSize","label","onChange","placeholder","value","__experimentalHStack","justify","Button","variant","onClick","isBusy"],"sources":["@wordpress/edit-site/src/components/add-new-post/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tTextControl,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { serialize, synchronizeBlocksWithTemplate } from '@wordpress/blocks';\n\nexport default function AddNewPostModal( { postType, onSave, onClose } ) {\n\tconst labels = useSelect(\n\t\t( select ) => select( coreStore ).getPostType( postType )?.labels,\n\t\t[ postType ]\n\t);\n\tconst [ isCreatingPost, setIsCreatingPost ] = useState( false );\n\tconst [ title, setTitle ] = useState( '' );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { resolveSelect } = useRegistry();\n\n\tasync function createPost( event ) {\n\t\tevent.preventDefault();\n\n\t\tif ( isCreatingPost ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsCreatingPost( true );\n\t\ttry {\n\t\t\tconst postTypeObject =\n\t\t\t\tawait resolveSelect( coreStore ).getPostType( postType );\n\t\t\tconst newPage = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\t{\n\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\ttitle,\n\t\t\t\t\tslug: title || __( 'No title' ),\n\t\t\t\t\tcontent:\n\t\t\t\t\t\t!! postTypeObject.template &&\n\t\t\t\t\t\tpostTypeObject.template.length\n\t\t\t\t\t\t\t? serialize(\n\t\t\t\t\t\t\t\t\tsynchronizeBlocksWithTemplate(\n\t\t\t\t\t\t\t\t\t\t[],\n\t\t\t\t\t\t\t\t\t\tpostTypeObject.template\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tonSave( newPage );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Title of the created post e.g: \"Hello world\".\n\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\tdecodeEntities( newPage.title?.rendered || title )\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar' }\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the item.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsCreatingPost( false );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={\n\t\t\t\t// translators: %s: post type singular_name label e.g: \"Page\".\n\t\t\t\tsprintf( __( 'Draft new: %s' ), labels?.singular_name )\n\t\t\t}\n\t\t\tonRequestClose={ onClose }\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<form onSubmit={ createPost }>\n\t\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\tplaceholder={ __( 'No title' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack spacing={ 2 } justify=\"end\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisBusy={ isCreatingPost }\n\t\t\t\t\t\t\taria-disabled={ isCreatingPost }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create draft' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -119,7 +119,7 @@ function useSpecificEditorSettings() {
|
|
|
119
119
|
templateSlug,
|
|
120
120
|
canvasMode,
|
|
121
121
|
settings,
|
|
122
|
-
|
|
122
|
+
shouldUseTemplateAsDefaultRenderingMode
|
|
123
123
|
} = (0, _data.useSelect)(select => {
|
|
124
124
|
const {
|
|
125
125
|
getEditedPostType,
|
|
@@ -139,11 +139,13 @@ function useSpecificEditorSettings() {
|
|
|
139
139
|
templateSlug: _record.slug,
|
|
140
140
|
canvasMode: getCanvasMode(),
|
|
141
141
|
settings: getSettings(),
|
|
142
|
-
|
|
142
|
+
// TODO: The `postType` check should be removed when the default rendering mode per post type is merged.
|
|
143
|
+
// @see https://github.com/WordPress/gutenberg/pull/62304/
|
|
144
|
+
shouldUseTemplateAsDefaultRenderingMode: _context?.postId && _context?.postType !== 'post'
|
|
143
145
|
};
|
|
144
146
|
}, []);
|
|
145
147
|
const archiveLabels = useArchiveLabel(templateSlug);
|
|
146
|
-
const defaultRenderingMode =
|
|
148
|
+
const defaultRenderingMode = shouldUseTemplateAsDefaultRenderingMode ? 'template-locked' : 'post-only';
|
|
147
149
|
const onNavigateToPreviousEntityRecord = useNavigateToPreviousEntityRecord();
|
|
148
150
|
const defaultEditorSettings = (0, _element.useMemo)(() => {
|
|
149
151
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_element","_coreData","_editor","_router","_compose","_store","_lockUnlock","_useNavigateToEntityRecord","_interopRequireDefault","_constants","useBlockEditorSettings","unlock","editorPrivateApis","useLocation","useHistory","routerPrivateApis","useArchiveLabel","templateSlug","taxonomyMatches","match","taxonomy","term","isAuthor","authorSlug","authorMatches","useSelect","select","getEntityRecords","getTaxonomy","getAuthors","coreStore","archiveTypeLabel","archiveNameLabel","labels","singular_name","records","slug","per_page","name","authorRecords","useNavigateToPreviousEntityRecord","location","previousLocation","usePrevious","history","goBack","useMemo","isFocusMode","params","focusMode","postId","FOCUSABLE_ENTITIES","includes","postType","didComeFromEditorCanvas","canvas","showBackButton","back","undefined","useSpecificEditorSettings","onNavigateToEntityRecord","useNavigateToEntityRecord","canvasMode","settings","postWithTemplate","getEditedPostType","getEditedPostId","getEditedPostContext","getCanvasMode","getSettings","editSiteStore","getEditedEntityRecord","usedPostType","usedPostId","_record","_context","archiveLabels","defaultRenderingMode","onNavigateToPreviousEntityRecord","defaultEditorSettings","richEditingEnabled","supportsTemplateMode","__experimentalArchiveTitleTypeLabel","__experimentalArchiveTitleNameLabel","__unstableIsPreviewMode","useSiteEditorSettings"],"sources":["@wordpress/edit-site/src/components/block-editor/use-site-editor-settings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport useNavigateToEntityRecord from './use-navigate-to-entity-record';\nimport { FOCUSABLE_ENTITIES } from '../../utils/constants';\n\nconst { useBlockEditorSettings } = unlock( editorPrivateApis );\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nfunction useArchiveLabel( templateSlug ) {\n\tconst taxonomyMatches = templateSlug?.match(\n\t\t/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/\n\t);\n\tlet taxonomy;\n\tlet term;\n\tlet isAuthor = false;\n\tlet authorSlug;\n\tif ( taxonomyMatches ) {\n\t\t// If is for a all taxonomies of a type\n\t\tif ( taxonomyMatches[ 1 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 2 ]\n\t\t\t\t? taxonomyMatches[ 2 ]\n\t\t\t\t: taxonomyMatches[ 1 ];\n\t\t}\n\t\t// If is for a all taxonomies of a type\n\t\telse if ( taxonomyMatches[ 3 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 6 ]\n\t\t\t\t? taxonomyMatches[ 6 ]\n\t\t\t\t: taxonomyMatches[ 4 ];\n\t\t\tterm = taxonomyMatches[ 7 ];\n\t\t}\n\t\ttaxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;\n\n\t\t//getTaxonomy( 'category' );\n\t\t//wp.data.select('core').getEntityRecords( 'taxonomy', 'category', {slug: 'newcat'} );\n\t} else {\n\t\tconst authorMatches = templateSlug?.match( /^(author)$|^author-(.+)$/ );\n\t\tif ( authorMatches ) {\n\t\t\tisAuthor = true;\n\t\t\tif ( authorMatches[ 2 ] ) {\n\t\t\t\tauthorSlug = authorMatches[ 2 ];\n\t\t\t}\n\t\t}\n\t}\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getTaxonomy, getAuthors } =\n\t\t\t\tselect( coreStore );\n\t\t\tlet archiveTypeLabel;\n\t\t\tlet archiveNameLabel;\n\t\t\tif ( taxonomy ) {\n\t\t\t\tarchiveTypeLabel =\n\t\t\t\t\tgetTaxonomy( taxonomy )?.labels?.singular_name;\n\t\t\t}\n\t\t\tif ( term ) {\n\t\t\t\tconst records = getEntityRecords( 'taxonomy', taxonomy, {\n\t\t\t\t\tslug: term,\n\t\t\t\t\tper_page: 1,\n\t\t\t\t} );\n\t\t\t\tif ( records && records[ 0 ] ) {\n\t\t\t\t\tarchiveNameLabel = records[ 0 ].name;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( isAuthor ) {\n\t\t\t\tarchiveTypeLabel = 'Author';\n\t\t\t\tif ( authorSlug ) {\n\t\t\t\t\tconst authorRecords = getAuthors( { slug: authorSlug } );\n\t\t\t\t\tif ( authorRecords && authorRecords[ 0 ] ) {\n\t\t\t\t\t\tarchiveNameLabel = authorRecords[ 0 ].name;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tarchiveTypeLabel,\n\t\t\t\tarchiveNameLabel,\n\t\t\t};\n\t\t},\n\t\t[ authorSlug, isAuthor, taxonomy, term ]\n\t);\n}\n\nfunction useNavigateToPreviousEntityRecord() {\n\tconst location = useLocation();\n\tconst previousLocation = usePrevious( location );\n\tconst history = useHistory();\n\tconst goBack = useMemo( () => {\n\t\tconst isFocusMode =\n\t\t\tlocation.params.focusMode ||\n\t\t\t( location.params.postId &&\n\t\t\t\tFOCUSABLE_ENTITIES.includes( location.params.postType ) );\n\t\tconst didComeFromEditorCanvas =\n\t\t\tpreviousLocation?.params.canvas === 'edit';\n\t\tconst showBackButton = isFocusMode && didComeFromEditorCanvas;\n\t\treturn showBackButton ? () => history.back() : undefined;\n\t\t// Disable reason: previousLocation changes when the component updates for any reason, not\n\t\t// just when location changes. Until this is fixed we can't add it to deps. See\n\t\t// https://github.com/WordPress/gutenberg/pull/58710#discussion_r1479219465.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ location, history ] );\n\treturn goBack;\n}\n\nexport function useSpecificEditorSettings() {\n\tconst onNavigateToEntityRecord = useNavigateToEntityRecord();\n\tconst { templateSlug, canvasMode, settings, postWithTemplate } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEditedPostType,\n\t\t\t\tgetEditedPostId,\n\t\t\t\tgetEditedPostContext,\n\t\t\t\tgetCanvasMode,\n\t\t\t\tgetSettings,\n\t\t\t} = unlock( select( editSiteStore ) );\n\t\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\t\tconst usedPostType = getEditedPostType();\n\t\t\tconst usedPostId = getEditedPostId();\n\t\t\tconst _record = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tusedPostType,\n\t\t\t\tusedPostId\n\t\t\t);\n\t\t\tconst _context = getEditedPostContext();\n\t\t\treturn {\n\t\t\t\ttemplateSlug: _record.slug,\n\t\t\t\tcanvasMode: getCanvasMode(),\n\t\t\t\tsettings: getSettings(),\n\t\t\t\tpostWithTemplate: _context?.postId,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst archiveLabels = useArchiveLabel( templateSlug );\n\tconst defaultRenderingMode = postWithTemplate\n\t\t? 'template-locked'\n\t\t: 'post-only';\n\tconst onNavigateToPreviousEntityRecord =\n\t\tuseNavigateToPreviousEntityRecord();\n\tconst defaultEditorSettings = useMemo( () => {\n\t\treturn {\n\t\t\t...settings,\n\n\t\t\trichEditingEnabled: true,\n\t\t\tsupportsTemplateMode: true,\n\t\t\tfocusMode: canvasMode !== 'view',\n\t\t\tdefaultRenderingMode,\n\t\t\tonNavigateToEntityRecord,\n\t\t\tonNavigateToPreviousEntityRecord,\n\t\t\t// I wonder if they should be set in the post editor too\n\t\t\t__experimentalArchiveTitleTypeLabel: archiveLabels.archiveTypeLabel,\n\t\t\t__experimentalArchiveTitleNameLabel: archiveLabels.archiveNameLabel,\n\t\t\t__unstableIsPreviewMode: canvasMode === 'view',\n\t\t};\n\t}, [\n\t\tsettings,\n\t\tcanvasMode,\n\t\tdefaultRenderingMode,\n\t\tonNavigateToEntityRecord,\n\t\tonNavigateToPreviousEntityRecord,\n\t\tarchiveLabels.archiveTypeLabel,\n\t\tarchiveLabels.archiveNameLabel,\n\t] );\n\n\treturn defaultEditorSettings;\n}\n\nexport default function useSiteEditorSettings() {\n\tconst defaultEditorSettings = useSpecificEditorSettings();\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, getEditedPostId } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\t\tconst usedPostType = getEditedPostType();\n\t\tconst usedPostId = getEditedPostId();\n\t\treturn {\n\t\t\tpostType: usedPostType,\n\t\t\tpostId: usedPostId,\n\t\t};\n\t}, [] );\n\treturn useBlockEditorSettings( defaultEditorSettings, postType, postId );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_data","require","_element","_coreData","_editor","_router","_compose","_store","_lockUnlock","_useNavigateToEntityRecord","_interopRequireDefault","_constants","useBlockEditorSettings","unlock","editorPrivateApis","useLocation","useHistory","routerPrivateApis","useArchiveLabel","templateSlug","taxonomyMatches","match","taxonomy","term","isAuthor","authorSlug","authorMatches","useSelect","select","getEntityRecords","getTaxonomy","getAuthors","coreStore","archiveTypeLabel","archiveNameLabel","labels","singular_name","records","slug","per_page","name","authorRecords","useNavigateToPreviousEntityRecord","location","previousLocation","usePrevious","history","goBack","useMemo","isFocusMode","params","focusMode","postId","FOCUSABLE_ENTITIES","includes","postType","didComeFromEditorCanvas","canvas","showBackButton","back","undefined","useSpecificEditorSettings","onNavigateToEntityRecord","useNavigateToEntityRecord","canvasMode","settings","shouldUseTemplateAsDefaultRenderingMode","getEditedPostType","getEditedPostId","getEditedPostContext","getCanvasMode","getSettings","editSiteStore","getEditedEntityRecord","usedPostType","usedPostId","_record","_context","archiveLabels","defaultRenderingMode","onNavigateToPreviousEntityRecord","defaultEditorSettings","richEditingEnabled","supportsTemplateMode","__experimentalArchiveTitleTypeLabel","__experimentalArchiveTitleNameLabel","__unstableIsPreviewMode","useSiteEditorSettings"],"sources":["@wordpress/edit-site/src/components/block-editor/use-site-editor-settings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport useNavigateToEntityRecord from './use-navigate-to-entity-record';\nimport { FOCUSABLE_ENTITIES } from '../../utils/constants';\n\nconst { useBlockEditorSettings } = unlock( editorPrivateApis );\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nfunction useArchiveLabel( templateSlug ) {\n\tconst taxonomyMatches = templateSlug?.match(\n\t\t/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/\n\t);\n\tlet taxonomy;\n\tlet term;\n\tlet isAuthor = false;\n\tlet authorSlug;\n\tif ( taxonomyMatches ) {\n\t\t// If is for a all taxonomies of a type\n\t\tif ( taxonomyMatches[ 1 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 2 ]\n\t\t\t\t? taxonomyMatches[ 2 ]\n\t\t\t\t: taxonomyMatches[ 1 ];\n\t\t}\n\t\t// If is for a all taxonomies of a type\n\t\telse if ( taxonomyMatches[ 3 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 6 ]\n\t\t\t\t? taxonomyMatches[ 6 ]\n\t\t\t\t: taxonomyMatches[ 4 ];\n\t\t\tterm = taxonomyMatches[ 7 ];\n\t\t}\n\t\ttaxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;\n\n\t\t//getTaxonomy( 'category' );\n\t\t//wp.data.select('core').getEntityRecords( 'taxonomy', 'category', {slug: 'newcat'} );\n\t} else {\n\t\tconst authorMatches = templateSlug?.match( /^(author)$|^author-(.+)$/ );\n\t\tif ( authorMatches ) {\n\t\t\tisAuthor = true;\n\t\t\tif ( authorMatches[ 2 ] ) {\n\t\t\t\tauthorSlug = authorMatches[ 2 ];\n\t\t\t}\n\t\t}\n\t}\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getTaxonomy, getAuthors } =\n\t\t\t\tselect( coreStore );\n\t\t\tlet archiveTypeLabel;\n\t\t\tlet archiveNameLabel;\n\t\t\tif ( taxonomy ) {\n\t\t\t\tarchiveTypeLabel =\n\t\t\t\t\tgetTaxonomy( taxonomy )?.labels?.singular_name;\n\t\t\t}\n\t\t\tif ( term ) {\n\t\t\t\tconst records = getEntityRecords( 'taxonomy', taxonomy, {\n\t\t\t\t\tslug: term,\n\t\t\t\t\tper_page: 1,\n\t\t\t\t} );\n\t\t\t\tif ( records && records[ 0 ] ) {\n\t\t\t\t\tarchiveNameLabel = records[ 0 ].name;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( isAuthor ) {\n\t\t\t\tarchiveTypeLabel = 'Author';\n\t\t\t\tif ( authorSlug ) {\n\t\t\t\t\tconst authorRecords = getAuthors( { slug: authorSlug } );\n\t\t\t\t\tif ( authorRecords && authorRecords[ 0 ] ) {\n\t\t\t\t\t\tarchiveNameLabel = authorRecords[ 0 ].name;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tarchiveTypeLabel,\n\t\t\t\tarchiveNameLabel,\n\t\t\t};\n\t\t},\n\t\t[ authorSlug, isAuthor, taxonomy, term ]\n\t);\n}\n\nfunction useNavigateToPreviousEntityRecord() {\n\tconst location = useLocation();\n\tconst previousLocation = usePrevious( location );\n\tconst history = useHistory();\n\tconst goBack = useMemo( () => {\n\t\tconst isFocusMode =\n\t\t\tlocation.params.focusMode ||\n\t\t\t( location.params.postId &&\n\t\t\t\tFOCUSABLE_ENTITIES.includes( location.params.postType ) );\n\t\tconst didComeFromEditorCanvas =\n\t\t\tpreviousLocation?.params.canvas === 'edit';\n\t\tconst showBackButton = isFocusMode && didComeFromEditorCanvas;\n\t\treturn showBackButton ? () => history.back() : undefined;\n\t\t// Disable reason: previousLocation changes when the component updates for any reason, not\n\t\t// just when location changes. Until this is fixed we can't add it to deps. See\n\t\t// https://github.com/WordPress/gutenberg/pull/58710#discussion_r1479219465.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ location, history ] );\n\treturn goBack;\n}\n\nexport function useSpecificEditorSettings() {\n\tconst onNavigateToEntityRecord = useNavigateToEntityRecord();\n\tconst {\n\t\ttemplateSlug,\n\t\tcanvasMode,\n\t\tsettings,\n\t\tshouldUseTemplateAsDefaultRenderingMode,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetEditedPostType,\n\t\t\tgetEditedPostId,\n\t\t\tgetEditedPostContext,\n\t\t\tgetCanvasMode,\n\t\t\tgetSettings,\n\t\t} = unlock( select( editSiteStore ) );\n\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\tconst usedPostType = getEditedPostType();\n\t\tconst usedPostId = getEditedPostId();\n\t\tconst _record = getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\tusedPostType,\n\t\t\tusedPostId\n\t\t);\n\t\tconst _context = getEditedPostContext();\n\t\treturn {\n\t\t\ttemplateSlug: _record.slug,\n\t\t\tcanvasMode: getCanvasMode(),\n\t\t\tsettings: getSettings(),\n\t\t\t// TODO: The `postType` check should be removed when the default rendering mode per post type is merged.\n\t\t\t// @see https://github.com/WordPress/gutenberg/pull/62304/\n\t\t\tshouldUseTemplateAsDefaultRenderingMode:\n\t\t\t\t_context?.postId && _context?.postType !== 'post',\n\t\t};\n\t}, [] );\n\tconst archiveLabels = useArchiveLabel( templateSlug );\n\tconst defaultRenderingMode = shouldUseTemplateAsDefaultRenderingMode\n\t\t? 'template-locked'\n\t\t: 'post-only';\n\tconst onNavigateToPreviousEntityRecord =\n\t\tuseNavigateToPreviousEntityRecord();\n\tconst defaultEditorSettings = useMemo( () => {\n\t\treturn {\n\t\t\t...settings,\n\n\t\t\trichEditingEnabled: true,\n\t\t\tsupportsTemplateMode: true,\n\t\t\tfocusMode: canvasMode !== 'view',\n\t\t\tdefaultRenderingMode,\n\t\t\tonNavigateToEntityRecord,\n\t\t\tonNavigateToPreviousEntityRecord,\n\t\t\t// I wonder if they should be set in the post editor too\n\t\t\t__experimentalArchiveTitleTypeLabel: archiveLabels.archiveTypeLabel,\n\t\t\t__experimentalArchiveTitleNameLabel: archiveLabels.archiveNameLabel,\n\t\t\t__unstableIsPreviewMode: canvasMode === 'view',\n\t\t};\n\t}, [\n\t\tsettings,\n\t\tcanvasMode,\n\t\tdefaultRenderingMode,\n\t\tonNavigateToEntityRecord,\n\t\tonNavigateToPreviousEntityRecord,\n\t\tarchiveLabels.archiveTypeLabel,\n\t\tarchiveLabels.archiveNameLabel,\n\t] );\n\n\treturn defaultEditorSettings;\n}\n\nexport default function useSiteEditorSettings() {\n\tconst defaultEditorSettings = useSpecificEditorSettings();\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, getEditedPostId } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\t\tconst usedPostType = getEditedPostType();\n\t\tconst usedPostId = getEditedPostId();\n\t\treturn {\n\t\t\tpostType: usedPostType,\n\t\t\tpostId: usedPostId,\n\t\t};\n\t}, [] );\n\treturn useBlockEditorSettings( defaultEditorSettings, postType, postId );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -29,10 +29,12 @@ var _globalStylesSidebar = _interopRequireDefault(require("../global-styles-side
|
|
|
29
29
|
var _isPreviewingTheme2 = require("../../utils/is-previewing-theme");
|
|
30
30
|
var _editorCanvasContainer = require("../editor-canvas-container");
|
|
31
31
|
var _saveButton = _interopRequireDefault(require("../save-button"));
|
|
32
|
+
var _savePanel = _interopRequireDefault(require("../save-panel"));
|
|
32
33
|
var _moreMenu = _interopRequireDefault(require("../more-menu"));
|
|
33
34
|
var _siteIcon = _interopRequireDefault(require("../site-icon"));
|
|
34
35
|
var _useEditorIframeProps = _interopRequireDefault(require("../block-editor/use-editor-iframe-props"));
|
|
35
36
|
var _useEditorTitle = _interopRequireDefault(require("./use-editor-title"));
|
|
37
|
+
var _hooks = require("../layout/hooks");
|
|
36
38
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
37
39
|
/**
|
|
38
40
|
* External dependencies
|
|
@@ -51,14 +53,19 @@ const {
|
|
|
51
53
|
BackButton
|
|
52
54
|
} = (0, _lockUnlock.unlock)(_editor.privateApis);
|
|
53
55
|
const {
|
|
54
|
-
useHistory
|
|
56
|
+
useHistory,
|
|
57
|
+
useLocation
|
|
55
58
|
} = (0, _lockUnlock.unlock)(_router.privateApis);
|
|
56
59
|
const {
|
|
57
60
|
BlockKeyboardShortcuts
|
|
58
61
|
} = (0, _lockUnlock.unlock)(_blockLibrary.privateApis);
|
|
59
62
|
function EditSiteEditor({
|
|
60
|
-
|
|
63
|
+
isPostsList = false
|
|
61
64
|
}) {
|
|
65
|
+
const {
|
|
66
|
+
params
|
|
67
|
+
} = useLocation();
|
|
68
|
+
const isLoading = (0, _hooks.useIsSiteEditorLoading)();
|
|
62
69
|
const {
|
|
63
70
|
editedPostType,
|
|
64
71
|
editedPostId,
|
|
@@ -72,6 +79,7 @@ function EditSiteEditor({
|
|
|
72
79
|
currentPostIsTrashed
|
|
73
80
|
} = (0, _data.useSelect)(select => {
|
|
74
81
|
const {
|
|
82
|
+
getEditorCanvasContainerView,
|
|
75
83
|
getEditedPostContext,
|
|
76
84
|
getCanvasMode,
|
|
77
85
|
isPage,
|
|
@@ -97,7 +105,7 @@ function EditSiteEditor({
|
|
|
97
105
|
isEditingPage: isPage(),
|
|
98
106
|
supportsGlobalStyles: getCurrentTheme()?.is_block_theme,
|
|
99
107
|
showIconLabels: get('core', 'showIconLabels'),
|
|
100
|
-
editorCanvasView:
|
|
108
|
+
editorCanvasView: getEditorCanvasContainerView(),
|
|
101
109
|
currentPostIsTrashed: select(_editor.store).getCurrentPostAttribute('status') === 'trash'
|
|
102
110
|
};
|
|
103
111
|
}, []);
|
|
@@ -112,8 +120,7 @@ function EditSiteEditor({
|
|
|
112
120
|
const styles = (0, _element.useMemo)(() => [...settings.styles, {
|
|
113
121
|
// Forming a "block formatting context" to prevent margin collapsing.
|
|
114
122
|
// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context
|
|
115
|
-
|
|
116
|
-
css: `body{${canvasMode === 'view' ? `min-height: 100vh; ${currentPostIsTrashed ? '' : 'cursor: pointer;'}` : ''}}}`
|
|
123
|
+
css: canvasMode === 'view' ? `body{min-height: 100vh; ${currentPostIsTrashed ? '' : 'cursor: pointer;'}}` : undefined
|
|
117
124
|
}], [settings.styles, canvasMode, currentPostIsTrashed]);
|
|
118
125
|
const {
|
|
119
126
|
setCanvasMode
|
|
@@ -156,6 +163,12 @@ function EditSiteEditor({
|
|
|
156
163
|
break;
|
|
157
164
|
}
|
|
158
165
|
}, [history, createSuccessNotice]);
|
|
166
|
+
|
|
167
|
+
// Replace the title and icon displayed in the DocumentBar when there's an overlay visible.
|
|
168
|
+
const {
|
|
169
|
+
title,
|
|
170
|
+
icon
|
|
171
|
+
} = (0, _editorCanvasContainer.getEditorCanvasContainerTitleAndIcon)(editorCanvasView);
|
|
159
172
|
const isReady = !isLoading;
|
|
160
173
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
161
174
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_globalStylesRenderer.GlobalStylesRenderer, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_editor.EditorKeyboardShortcutsRegister, {}), isEditMode && /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockKeyboardShortcuts, {}), !isReady ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_canvasLoader.default, {
|
|
@@ -173,8 +186,10 @@ function EditSiteEditor({
|
|
|
173
186
|
customSaveButton: _isPreviewingTheme && /*#__PURE__*/(0, _jsxRuntime.jsx)(_saveButton.default, {
|
|
174
187
|
size: "compact"
|
|
175
188
|
}),
|
|
189
|
+
customSavePanel: _isPreviewingTheme && /*#__PURE__*/(0, _jsxRuntime.jsx)(_savePanel.default, {}),
|
|
176
190
|
forceDisableBlockTools: !hasDefaultEditorCanvasView,
|
|
177
|
-
title:
|
|
191
|
+
title: title,
|
|
192
|
+
icon: icon,
|
|
178
193
|
iframeProps: iframeProps,
|
|
179
194
|
onActionPerformed: onActionPerformed,
|
|
180
195
|
extraSidebarPanels: !isEditingPage && /*#__PURE__*/(0, _jsxRuntime.jsx)(_pluginTemplateSettingPanel.default.Slot, {}),
|
|
@@ -184,7 +199,17 @@ function EditSiteEditor({
|
|
|
184
199
|
}) => length <= 1 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
185
200
|
label: (0, _i18n.__)('Open Navigation'),
|
|
186
201
|
className: "edit-site-layout__view-mode-toggle",
|
|
187
|
-
onClick: () =>
|
|
202
|
+
onClick: () => {
|
|
203
|
+
setCanvasMode('view');
|
|
204
|
+
// TODO: this is a temporary solution to navigate to the posts list if we are
|
|
205
|
+
// come here through `posts list` and are in focus mode editing a template, template part etc..
|
|
206
|
+
if (isPostsList && params?.focusMode) {
|
|
207
|
+
history.push({
|
|
208
|
+
page: 'gutenberg-posts-dashboard',
|
|
209
|
+
postType: 'post'
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
},
|
|
188
213
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_siteIcon.default, {
|
|
189
214
|
className: "edit-site-layout__view-mode-toggle-icon"
|
|
190
215
|
})
|