@wordpress/edit-site 5.4.0 → 5.5.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 +2 -0
- package/build/components/add-new-template/add-custom-template-modal.js +12 -3
- package/build/components/add-new-template/add-custom-template-modal.js.map +1 -1
- package/build/components/add-new-template/new-template-part.js +8 -7
- package/build/components/add-new-template/new-template-part.js.map +1 -1
- package/build/components/add-new-template/new-template.js +3 -6
- package/build/components/add-new-template/new-template.js.map +1 -1
- package/build/components/editor/index.js +3 -3
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/border-panel.js +1 -1
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/context-menu.js +11 -8
- package/build/components/global-styles/context-menu.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +41 -487
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/duotone-panel.js +78 -0
- package/build/components/global-styles/duotone-panel.js.map +1 -0
- package/build/components/global-styles/filter-utils.js +17 -0
- package/build/components/global-styles/filter-utils.js.map +1 -0
- package/build/components/global-styles/preview.js +9 -5
- package/build/components/global-styles/preview.js.map +1 -1
- package/build/components/global-styles/screen-block-list.js +4 -8
- package/build/components/global-styles/screen-block-list.js.map +1 -1
- package/build/components/global-styles/screen-border.js +1 -1
- package/build/components/global-styles/screen-border.js.map +1 -1
- package/build/components/global-styles/screen-filters.js +46 -0
- package/build/components/global-styles/screen-filters.js.map +1 -0
- package/build/components/global-styles/screen-layout.js +13 -5
- package/build/components/global-styles/screen-layout.js.map +1 -1
- package/build/components/global-styles/screen-variations.js +1 -1
- package/build/components/global-styles/screen-variations.js.map +1 -1
- package/build/components/global-styles/shadow-panel.js +6 -4
- package/build/components/global-styles/shadow-panel.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +2 -5
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/ui.js +7 -1
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/config.js +12 -0
- package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
- package/build/components/keyboard-shortcuts/edit-mode.js +124 -0
- package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -0
- package/build/components/keyboard-shortcuts/global.js +48 -0
- package/build/components/keyboard-shortcuts/global.js.map +1 -0
- package/build/components/keyboard-shortcuts/index.js +67 -0
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/keyboard-shortcuts/register.js +153 -0
- package/build/components/keyboard-shortcuts/register.js.map +1 -0
- package/build/components/layout/index.js +5 -1
- package/build/components/layout/index.js.map +1 -1
- package/build/components/list/added-by.js +41 -42
- package/build/components/list/added-by.js.map +1 -1
- package/build/components/list/table.js +3 -2
- package/build/components/list/table.js.map +1 -1
- package/build/components/navigation-inspector/navigation-menu.js +22 -5
- package/build/components/navigation-inspector/navigation-menu.js.map +1 -1
- package/build/components/save-button/index.js +5 -2
- package/build/components/save-button/index.js.map +1 -1
- package/build/components/save-panel/index.js +11 -1
- package/build/components/save-panel/index.js.map +1 -1
- package/build/components/sidebar/index.js +28 -16
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar-button/index.js +30 -0
- package/build/components/sidebar-button/index.js.map +1 -0
- package/build/components/sidebar-edit-mode/global-styles-sidebar.js +8 -2
- package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
- package/build/components/sidebar-navigation-screen/index.js +10 -10
- package/build/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-main/index.js +3 -3
- package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-item/index.js +17 -16
- package/build/components/sidebar-navigation-screen-navigation-item/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/index.js +10 -4
- package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-template/index.js +9 -19
- package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-templates/index.js +25 -15
- package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-templates-browse/index.js +8 -7
- package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
- package/build/components/style-book/index.js +17 -2
- package/build/components/style-book/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +36 -34
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build/components/sync-state-with-url/use-sync-path-with-url.js +65 -18
- package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
- package/build/components/template-details/index.js +7 -9
- package/build/components/template-details/index.js.map +1 -1
- package/build/index.js +10 -22
- package/build/index.js.map +1 -1
- package/build/store/actions.js +2 -2
- package/build/store/actions.js.map +1 -1
- package/build/utils/get-is-list-page.js +1 -1
- package/build/utils/get-is-list-page.js.map +1 -1
- package/build-module/components/add-new-template/add-custom-template-modal.js +13 -4
- package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -1
- package/build-module/components/add-new-template/new-template-part.js +8 -7
- package/build-module/components/add-new-template/new-template-part.js.map +1 -1
- package/build-module/components/add-new-template/new-template.js +3 -6
- package/build-module/components/add-new-template/new-template.js.map +1 -1
- package/build-module/components/editor/index.js +3 -3
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +1 -1
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/context-menu.js +12 -9
- package/build-module/components/global-styles/context-menu.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +43 -480
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/duotone-panel.js +67 -0
- package/build-module/components/global-styles/duotone-panel.js.map +1 -0
- package/build-module/components/global-styles/filter-utils.js +9 -0
- package/build-module/components/global-styles/filter-utils.js.map +1 -0
- package/build-module/components/global-styles/preview.js +10 -6
- package/build-module/components/global-styles/preview.js.map +1 -1
- package/build-module/components/global-styles/screen-block-list.js +4 -6
- package/build-module/components/global-styles/screen-block-list.js.map +1 -1
- package/build-module/components/global-styles/screen-border.js +1 -1
- package/build-module/components/global-styles/screen-border.js.map +1 -1
- package/build-module/components/global-styles/screen-filters.js +33 -0
- package/build-module/components/global-styles/screen-filters.js.map +1 -0
- package/build-module/components/global-styles/screen-layout.js +11 -2
- package/build-module/components/global-styles/screen-layout.js.map +1 -1
- package/build-module/components/global-styles/screen-variations.js +1 -1
- package/build-module/components/global-styles/screen-variations.js.map +1 -1
- package/build-module/components/global-styles/shadow-panel.js +6 -4
- package/build-module/components/global-styles/shadow-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +2 -5
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/ui.js +6 -1
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/config.js +12 -0
- package/build-module/components/keyboard-shortcut-help-modal/config.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/edit-mode.js +108 -0
- package/build-module/components/keyboard-shortcuts/edit-mode.js.map +1 -0
- package/build-module/components/keyboard-shortcuts/global.js +37 -0
- package/build-module/components/keyboard-shortcuts/global.js.map +1 -0
- package/build-module/components/keyboard-shortcuts/index.js +65 -0
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/register.js +141 -0
- package/build-module/components/keyboard-shortcuts/register.js.map +1 -0
- package/build-module/components/layout/index.js +3 -1
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/list/added-by.js +43 -44
- package/build-module/components/list/added-by.js.map +1 -1
- package/build-module/components/list/table.js +3 -2
- package/build-module/components/list/table.js.map +1 -1
- package/build-module/components/navigation-inspector/navigation-menu.js +25 -8
- package/build-module/components/navigation-inspector/navigation-menu.js.map +1 -1
- package/build-module/components/save-button/index.js +5 -2
- package/build-module/components/save-button/index.js.map +1 -1
- package/build-module/components/save-panel/index.js +8 -1
- package/build-module/components/save-panel/index.js.map +1 -1
- package/build-module/components/sidebar/index.js +25 -18
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar-button/index.js +18 -0
- package/build-module/components/sidebar-button/index.js.map +1 -0
- package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +8 -2
- package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen/index.js +8 -11
- package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-main/index.js +3 -3
- package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-item/index.js +16 -17
- package/build-module/components/sidebar-navigation-screen-navigation-item/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +10 -4
- package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-template/index.js +8 -18
- package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates/index.js +23 -16
- package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +7 -7
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
- package/build-module/components/style-book/index.js +17 -3
- package/build-module/components/style-book/index.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +36 -34
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +63 -18
- package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
- package/build-module/components/template-details/index.js +7 -8
- package/build-module/components/template-details/index.js.map +1 -1
- package/build-module/index.js +12 -22
- package/build-module/index.js.map +1 -1
- package/build-module/store/actions.js +2 -2
- package/build-module/store/actions.js.map +1 -1
- package/build-module/utils/get-is-list-page.js +1 -1
- package/build-module/utils/get-is-list-page.js.map +1 -1
- package/build-style/style-rtl.css +41 -38
- package/build-style/style.css +41 -38
- package/package.json +31 -31
- package/src/components/add-new-template/add-custom-template-modal.js +14 -10
- package/src/components/add-new-template/new-template-part.js +7 -9
- package/src/components/add-new-template/new-template.js +3 -6
- package/src/components/add-new-template/style.scss +0 -5
- package/src/components/block-editor/style.scss +1 -1
- package/src/components/editor/index.js +4 -3
- package/src/components/editor/style.scss +0 -6
- package/src/components/global-styles/border-panel.js +1 -1
- package/src/components/global-styles/context-menu.js +16 -10
- package/src/components/global-styles/dimensions-panel.js +43 -577
- package/src/components/global-styles/duotone-panel.js +82 -0
- package/src/components/global-styles/filter-utils.js +9 -0
- package/src/components/global-styles/preview.js +155 -140
- package/src/components/global-styles/screen-block-list.js +4 -9
- package/src/components/global-styles/screen-border.js +1 -1
- package/src/components/global-styles/screen-filters.js +27 -0
- package/src/components/global-styles/screen-layout.js +9 -2
- package/src/components/global-styles/screen-variations.js +0 -1
- package/src/components/global-styles/shadow-panel.js +4 -3
- package/src/components/global-styles/typography-panel.js +5 -7
- package/src/components/global-styles/ui.js +6 -1
- package/src/components/keyboard-shortcut-help-modal/config.js +10 -0
- package/src/components/keyboard-shortcuts/edit-mode.js +116 -0
- package/src/components/keyboard-shortcuts/global.js +35 -0
- package/src/components/keyboard-shortcuts/index.js +70 -0
- package/src/components/keyboard-shortcuts/register.js +157 -0
- package/src/components/layout/index.js +4 -0
- package/src/components/layout/style.scss +8 -1
- package/src/components/list/added-by.js +48 -55
- package/src/components/list/style.scss +5 -13
- package/src/components/list/table.js +4 -5
- package/src/components/navigation-inspector/navigation-menu.js +24 -6
- package/src/components/save-button/index.js +2 -2
- package/src/components/save-panel/index.js +8 -1
- package/src/components/sidebar/index.js +32 -14
- package/src/components/sidebar-button/index.js +21 -0
- package/src/components/sidebar-button/style.scss +23 -0
- package/src/components/sidebar-edit-mode/global-styles-sidebar.js +3 -7
- package/src/components/sidebar-edit-mode/style.scss +16 -0
- package/src/components/sidebar-navigation-screen/index.js +31 -38
- package/src/components/sidebar-navigation-screen/style.scss +1 -9
- package/src/components/sidebar-navigation-screen-main/index.js +3 -3
- package/src/components/sidebar-navigation-screen-navigation-item/index.js +24 -20
- package/src/components/sidebar-navigation-screen-navigation-menus/index.js +7 -3
- package/src/components/sidebar-navigation-screen-template/index.js +7 -19
- package/src/components/sidebar-navigation-screen-templates/index.js +22 -14
- package/src/components/sidebar-navigation-screen-templates/style.scss +0 -5
- package/src/components/sidebar-navigation-screen-templates-browse/index.js +6 -11
- package/src/components/style-book/index.js +25 -1
- package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +28 -23
- package/src/components/sync-state-with-url/use-sync-path-with-url.js +72 -17
- package/src/components/template-details/index.js +5 -6
- package/src/index.js +6 -21
- package/src/store/actions.js +2 -2
- package/src/style.scss +1 -0
- package/src/utils/get-is-list-page.js +1 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
|
+
import { __experimentalUseNavigator as useNavigator } from '@wordpress/components';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Internal dependencies
|
|
@@ -10,22 +11,16 @@ import SidebarNavigationScreen from '../sidebar-navigation-screen';
|
|
|
10
11
|
|
|
11
12
|
const config = {
|
|
12
13
|
wp_template: {
|
|
13
|
-
path: '/templates/all',
|
|
14
14
|
title: __( 'All templates' ),
|
|
15
15
|
},
|
|
16
16
|
wp_template_part: {
|
|
17
|
-
path: '/template-parts/all',
|
|
18
17
|
title: __( 'All template parts' ),
|
|
19
18
|
},
|
|
20
19
|
};
|
|
21
20
|
|
|
22
|
-
export default function SidebarNavigationScreenTemplatesBrowse( {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
path={ config[ postType ].path }
|
|
28
|
-
title={ config[ postType ].title }
|
|
29
|
-
/>
|
|
30
|
-
);
|
|
21
|
+
export default function SidebarNavigationScreenTemplatesBrowse() {
|
|
22
|
+
const {
|
|
23
|
+
params: { postType },
|
|
24
|
+
} = useNavigator();
|
|
25
|
+
return <SidebarNavigationScreen title={ config[ postType ].title } />;
|
|
31
26
|
}
|
|
@@ -24,8 +24,14 @@ import {
|
|
|
24
24
|
privateApis as blockEditorPrivateApis,
|
|
25
25
|
} from '@wordpress/block-editor';
|
|
26
26
|
import { closeSmall } from '@wordpress/icons';
|
|
27
|
-
import {
|
|
27
|
+
import {
|
|
28
|
+
useResizeObserver,
|
|
29
|
+
useFocusOnMount,
|
|
30
|
+
useFocusReturn,
|
|
31
|
+
useMergeRefs,
|
|
32
|
+
} from '@wordpress/compose';
|
|
28
33
|
import { useMemo, memo } from '@wordpress/element';
|
|
34
|
+
import { ESCAPE } from '@wordpress/keycodes';
|
|
29
35
|
|
|
30
36
|
/**
|
|
31
37
|
* Internal dependencies
|
|
@@ -90,6 +96,9 @@ function getExamples() {
|
|
|
90
96
|
|
|
91
97
|
function StyleBook( { isSelected, onSelect, onClose } ) {
|
|
92
98
|
const [ resizeObserver, sizes ] = useResizeObserver();
|
|
99
|
+
const focusOnMountRef = useFocusOnMount( 'firstElement' );
|
|
100
|
+
const sectionFocusReturnRef = useFocusReturn();
|
|
101
|
+
|
|
93
102
|
const [ textColor ] = useGlobalStyle( 'color.text' );
|
|
94
103
|
const [ backgroundColor ] = useGlobalStyle( 'color.background' );
|
|
95
104
|
const examples = useMemo( getExamples, [] );
|
|
@@ -108,8 +117,17 @@ function StyleBook( { isSelected, onSelect, onClose } ) {
|
|
|
108
117
|
} ) ),
|
|
109
118
|
[ examples ]
|
|
110
119
|
);
|
|
120
|
+
|
|
121
|
+
function closeOnEscape( event ) {
|
|
122
|
+
if ( event.keyCode === ESCAPE && ! event.defaultPrevented ) {
|
|
123
|
+
event.preventDefault();
|
|
124
|
+
onClose();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
111
128
|
return (
|
|
112
129
|
<StyleBookFill>
|
|
130
|
+
{ /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */ }
|
|
113
131
|
<section
|
|
114
132
|
className={ classnames( 'edit-site-style-book', {
|
|
115
133
|
'is-wide': sizes.width > 600,
|
|
@@ -119,6 +137,11 @@ function StyleBook( { isSelected, onSelect, onClose } ) {
|
|
|
119
137
|
background: backgroundColor,
|
|
120
138
|
} }
|
|
121
139
|
aria-label={ __( 'Style Book' ) }
|
|
140
|
+
onKeyDown={ closeOnEscape }
|
|
141
|
+
ref={ useMergeRefs( [
|
|
142
|
+
sectionFocusReturnRef,
|
|
143
|
+
focusOnMountRef,
|
|
144
|
+
] ) }
|
|
122
145
|
>
|
|
123
146
|
{ resizeObserver }
|
|
124
147
|
<Button
|
|
@@ -126,6 +149,7 @@ function StyleBook( { isSelected, onSelect, onClose } ) {
|
|
|
126
149
|
icon={ closeSmall }
|
|
127
150
|
label={ __( 'Close Style Book' ) }
|
|
128
151
|
onClick={ onClose }
|
|
152
|
+
showTooltip={ false }
|
|
129
153
|
/>
|
|
130
154
|
<TabPanel
|
|
131
155
|
className="edit-site-style-book__tab-panel"
|
|
@@ -12,8 +12,8 @@ import { useLocation } from '../routes';
|
|
|
12
12
|
import { store as editSiteStore } from '../../store';
|
|
13
13
|
|
|
14
14
|
export default function useInitEditedEntityFromURL() {
|
|
15
|
-
const { params: { postId, postType
|
|
16
|
-
const { isRequestingSite, homepageId } = useSelect( ( select ) => {
|
|
15
|
+
const { params: { postId, postType } = {} } = useLocation();
|
|
16
|
+
const { isRequestingSite, homepageId, url } = useSelect( ( select ) => {
|
|
17
17
|
const { getSite } = select( coreDataStore );
|
|
18
18
|
const siteData = getSite();
|
|
19
19
|
|
|
@@ -23,6 +23,7 @@ export default function useInitEditedEntityFromURL() {
|
|
|
23
23
|
siteData?.show_on_front === 'page'
|
|
24
24
|
? siteData.page_on_front
|
|
25
25
|
: null,
|
|
26
|
+
url: siteData?.url,
|
|
26
27
|
};
|
|
27
28
|
}, [] );
|
|
28
29
|
|
|
@@ -30,33 +31,37 @@ export default function useInitEditedEntityFromURL() {
|
|
|
30
31
|
useDispatch( editSiteStore );
|
|
31
32
|
|
|
32
33
|
useEffect( () => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
context: { postType, postId },
|
|
43
|
-
} );
|
|
44
|
-
break;
|
|
45
|
-
default: {
|
|
46
|
-
if ( homepageId ) {
|
|
34
|
+
if ( postType && postId ) {
|
|
35
|
+
switch ( postType ) {
|
|
36
|
+
case 'wp_template':
|
|
37
|
+
setTemplate( postId );
|
|
38
|
+
break;
|
|
39
|
+
case 'wp_template_part':
|
|
40
|
+
setTemplatePart( postId );
|
|
41
|
+
break;
|
|
42
|
+
default:
|
|
47
43
|
setPage( {
|
|
48
|
-
context: { postType
|
|
44
|
+
context: { postType, postId },
|
|
49
45
|
} );
|
|
50
|
-
} else if ( ! isRequestingSite ) {
|
|
51
|
-
setPage( {
|
|
52
|
-
path: '/',
|
|
53
|
-
} );
|
|
54
|
-
}
|
|
55
46
|
}
|
|
47
|
+
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// In all other cases, we need to set the home page in the site editor view.
|
|
52
|
+
if ( homepageId ) {
|
|
53
|
+
setPage( {
|
|
54
|
+
context: { postType: 'page', postId: homepageId },
|
|
55
|
+
} );
|
|
56
|
+
} else if ( ! isRequestingSite ) {
|
|
57
|
+
setPage( {
|
|
58
|
+
path: url,
|
|
59
|
+
} );
|
|
56
60
|
}
|
|
57
61
|
}, [
|
|
58
|
-
|
|
62
|
+
url,
|
|
59
63
|
postId,
|
|
64
|
+
postType,
|
|
60
65
|
homepageId,
|
|
61
66
|
isRequestingSite,
|
|
62
67
|
setPage,
|
|
@@ -9,28 +9,83 @@ import { useEffect, useRef } from '@wordpress/element';
|
|
|
9
9
|
*/
|
|
10
10
|
import { useLocation, useHistory } from '../routes';
|
|
11
11
|
|
|
12
|
+
export function getPathFromURL( urlParams ) {
|
|
13
|
+
let path = urlParams?.path ?? '/';
|
|
14
|
+
|
|
15
|
+
// Compute the navigator path based on the URL params.
|
|
16
|
+
if ( urlParams?.postType && urlParams?.postId ) {
|
|
17
|
+
switch ( urlParams.postType ) {
|
|
18
|
+
case 'wp_template':
|
|
19
|
+
case 'wp_template_part':
|
|
20
|
+
path = `/${ encodeURIComponent(
|
|
21
|
+
urlParams.postType
|
|
22
|
+
) }/${ encodeURIComponent( urlParams.postId ) }`;
|
|
23
|
+
break;
|
|
24
|
+
default:
|
|
25
|
+
path = `/navigation/${ encodeURIComponent(
|
|
26
|
+
urlParams.postType
|
|
27
|
+
) }/${ encodeURIComponent( urlParams.postId ) }`;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return path;
|
|
32
|
+
}
|
|
33
|
+
|
|
12
34
|
export default function useSyncPathWithURL() {
|
|
13
35
|
const history = useHistory();
|
|
14
|
-
const { params } = useLocation();
|
|
15
|
-
const {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
36
|
+
const { params: urlParams } = useLocation();
|
|
37
|
+
const {
|
|
38
|
+
location: navigatorLocation,
|
|
39
|
+
params: navigatorParams,
|
|
40
|
+
goTo,
|
|
41
|
+
} = useNavigator();
|
|
42
|
+
const currentUrlParams = useRef( urlParams );
|
|
43
|
+
const currentPath = useRef( navigatorLocation.path );
|
|
44
|
+
|
|
19
45
|
useEffect( () => {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
46
|
+
function updateUrlParams( newUrlParams ) {
|
|
47
|
+
if (
|
|
48
|
+
Object.entries( newUrlParams ).every( ( [ key, value ] ) => {
|
|
49
|
+
return currentUrlParams.current[ key ] === value;
|
|
50
|
+
} )
|
|
51
|
+
) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const updatedParams = {
|
|
55
|
+
...currentUrlParams.current,
|
|
56
|
+
...newUrlParams,
|
|
57
|
+
};
|
|
58
|
+
currentUrlParams.current = updatedParams;
|
|
59
|
+
history.push( updatedParams );
|
|
23
60
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
61
|
+
|
|
62
|
+
if ( navigatorParams?.postType && navigatorParams?.postId ) {
|
|
63
|
+
updateUrlParams( {
|
|
64
|
+
postType: navigatorParams?.postType,
|
|
65
|
+
postId: navigatorParams?.postId,
|
|
66
|
+
path: undefined,
|
|
67
|
+
} );
|
|
68
|
+
} else if ( navigatorParams?.postType && ! navigatorParams?.postId ) {
|
|
69
|
+
updateUrlParams( {
|
|
70
|
+
postType: navigatorParams?.postType,
|
|
71
|
+
path: navigatorLocation.path,
|
|
72
|
+
postId: undefined,
|
|
73
|
+
} );
|
|
74
|
+
} else {
|
|
75
|
+
updateUrlParams( {
|
|
76
|
+
postType: undefined,
|
|
77
|
+
postId: undefined,
|
|
78
|
+
path: navigatorLocation.path,
|
|
31
79
|
} );
|
|
32
80
|
}
|
|
33
|
-
}, [
|
|
81
|
+
}, [ navigatorLocation?.path, navigatorParams, history ] );
|
|
34
82
|
|
|
35
|
-
|
|
83
|
+
useEffect( () => {
|
|
84
|
+
currentUrlParams.current = urlParams;
|
|
85
|
+
const path = getPathFromURL( urlParams );
|
|
86
|
+
if ( currentPath.current !== path ) {
|
|
87
|
+
currentPath.current = path;
|
|
88
|
+
goTo( path );
|
|
89
|
+
}
|
|
90
|
+
}, [ urlParams, goTo ] );
|
|
36
91
|
}
|
|
@@ -18,7 +18,6 @@ import { decodeEntities } from '@wordpress/html-entities';
|
|
|
18
18
|
*/
|
|
19
19
|
import isTemplateRevertable from '../../utils/is-template-revertable';
|
|
20
20
|
import { store as editSiteStore } from '../../store';
|
|
21
|
-
import TemplateAreas from './template-areas';
|
|
22
21
|
import EditTemplateTitle from './edit-template-title';
|
|
23
22
|
import { useLink } from '../routes/link';
|
|
24
23
|
import TemplatePartAreaSelector from './template-part-area-selector';
|
|
@@ -31,10 +30,12 @@ export default function TemplateDetails( { template, onClose } ) {
|
|
|
31
30
|
);
|
|
32
31
|
const { revertTemplate } = useDispatch( editSiteStore );
|
|
33
32
|
|
|
33
|
+
// TODO: We should update this to filter by template part's areas as well.
|
|
34
34
|
const browseAllLinkProps = useLink( {
|
|
35
|
-
|
|
35
|
+
canvas: 'view',
|
|
36
36
|
postType: template.type,
|
|
37
37
|
postId: undefined,
|
|
38
|
+
path: '/' + template.type + '/all',
|
|
38
39
|
} );
|
|
39
40
|
|
|
40
41
|
const isTemplatePart = template.type === 'wp_template_part';
|
|
@@ -87,8 +88,6 @@ export default function TemplateDetails( { template, onClose } ) {
|
|
|
87
88
|
</div>
|
|
88
89
|
) }
|
|
89
90
|
|
|
90
|
-
<TemplateAreas closeTemplateDetailsDropdown={ onClose } />
|
|
91
|
-
|
|
92
91
|
{ isTemplateRevertable( template ) && (
|
|
93
92
|
<MenuGroup className="edit-site-template-details__group edit-site-template-details__revert">
|
|
94
93
|
<MenuItem
|
|
@@ -108,8 +107,8 @@ export default function TemplateDetails( { template, onClose } ) {
|
|
|
108
107
|
{ ...browseAllLinkProps }
|
|
109
108
|
>
|
|
110
109
|
{ template?.type === 'wp_template'
|
|
111
|
-
? __( '
|
|
112
|
-
: __( '
|
|
110
|
+
? __( 'Manage all templates' )
|
|
111
|
+
: __( 'Manage all template parts' ) }
|
|
113
112
|
</Button>
|
|
114
113
|
</div>
|
|
115
114
|
);
|
package/src/index.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { store as blocksStore } from '@wordpress/blocks';
|
|
5
5
|
import {
|
|
6
6
|
registerCoreBlocks,
|
|
7
|
+
__experimentalGetCoreBlocks,
|
|
7
8
|
__experimentalRegisterExperimentalCoreBlocks,
|
|
8
9
|
} from '@wordpress/block-library';
|
|
9
10
|
import { dispatch } from '@wordpress/data';
|
|
@@ -16,7 +17,6 @@ import {
|
|
|
16
17
|
import { store as editorStore } from '@wordpress/editor';
|
|
17
18
|
import { store as interfaceStore } from '@wordpress/interface';
|
|
18
19
|
import { store as preferencesStore } from '@wordpress/preferences';
|
|
19
|
-
import { addFilter } from '@wordpress/hooks';
|
|
20
20
|
import { registerLegacyWidgetBlock } from '@wordpress/widgets';
|
|
21
21
|
|
|
22
22
|
/**
|
|
@@ -41,32 +41,17 @@ export function initializeEditor( id, settings ) {
|
|
|
41
41
|
settings.__experimentalFetchRichUrlData = fetchUrlData;
|
|
42
42
|
|
|
43
43
|
dispatch( blocksStore ).__experimentalReapplyBlockTypeFilters();
|
|
44
|
-
|
|
44
|
+
const coreBlocks = __experimentalGetCoreBlocks().filter(
|
|
45
|
+
( { name } ) => name !== 'core/freeform'
|
|
46
|
+
);
|
|
47
|
+
registerCoreBlocks( coreBlocks );
|
|
48
|
+
dispatch( blocksStore ).setFreeformFallbackBlockName( 'core/html' );
|
|
45
49
|
registerLegacyWidgetBlock( { inserter: false } );
|
|
46
50
|
if ( process.env.IS_GUTENBERG_PLUGIN ) {
|
|
47
51
|
__experimentalRegisterExperimentalCoreBlocks( {
|
|
48
52
|
enableFSEBlocks: true,
|
|
49
53
|
} );
|
|
50
54
|
}
|
|
51
|
-
/*
|
|
52
|
-
* Prevent adding the Clasic block in the site editor.
|
|
53
|
-
* Only add the filter when the site editor is initialized, not imported.
|
|
54
|
-
* Also only add the filter(s) after registerCoreBlocks()
|
|
55
|
-
* so that common filters in the block library are not overwritten.
|
|
56
|
-
*
|
|
57
|
-
* This usage here is inspired by previous usage of the filter in the post editor:
|
|
58
|
-
* https://github.com/WordPress/gutenberg/pull/37157
|
|
59
|
-
*/
|
|
60
|
-
addFilter(
|
|
61
|
-
'blockEditor.__unstableCanInsertBlockType',
|
|
62
|
-
'removeClassicBlockFromInserter',
|
|
63
|
-
( canInsert, blockType ) => {
|
|
64
|
-
if ( blockType.name === 'core/freeform' ) {
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
return canInsert;
|
|
68
|
-
}
|
|
69
|
-
);
|
|
70
55
|
|
|
71
56
|
// We dispatch actions and update the store synchronously before rendering
|
|
72
57
|
// so that we won't trigger unnecessary re-renders with useEffect.
|
package/src/store/actions.js
CHANGED
|
@@ -526,7 +526,7 @@ export const switchEditorMode =
|
|
|
526
526
|
|
|
527
527
|
if ( mode === 'visual' ) {
|
|
528
528
|
speak( __( 'Visual editor selected' ), 'assertive' );
|
|
529
|
-
} else if ( mode === '
|
|
530
|
-
speak( __( '
|
|
529
|
+
} else if ( mode === 'text' ) {
|
|
530
|
+
speak( __( 'Code editor selected' ), 'assertive' );
|
|
531
531
|
}
|
|
532
532
|
};
|
package/src/style.scss
CHANGED
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
@import "./components/layout/style.scss";
|
|
23
23
|
@import "./components/save-panel/style.scss";
|
|
24
24
|
@import "./components/sidebar/style.scss";
|
|
25
|
+
@import "./components/sidebar-button/style.scss";
|
|
25
26
|
@import "./components/sidebar-navigation-item/style.scss";
|
|
26
27
|
@import "./components/sidebar-navigation-screen/style.scss";
|
|
27
28
|
@import "./components/sidebar-navigation-screen-templates/style.scss";
|