@wordpress/edit-site 3.0.26 → 3.1.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/LICENSE.md +1 -1
- package/build/components/block-editor/resizable-editor.js +1 -0
- package/build/components/block-editor/resizable-editor.js.map +1 -1
- package/build/components/code-editor/code-editor-text-area.js +95 -0
- package/build/components/code-editor/code-editor-text-area.js.map +1 -0
- package/build/components/code-editor/index.js +79 -0
- package/build/components/code-editor/index.js.map +1 -0
- package/build/components/editor/index.js +10 -5
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/border-panel.js +81 -22
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/context-menu.js +4 -6
- package/build/components/global-styles/context-menu.js.map +1 -1
- package/build/components/global-styles/global-styles-provider.js +1 -0
- package/build/components/global-styles/global-styles-provider.js.map +1 -1
- package/build/components/global-styles/header.js +2 -7
- package/build/components/global-styles/header.js.map +1 -1
- package/build/components/global-styles/navigation-button.js +27 -12
- package/build/components/global-styles/navigation-button.js.map +1 -1
- package/build/components/global-styles/palette.js +2 -2
- package/build/components/global-styles/palette.js.map +1 -1
- package/build/components/global-styles/preview.js +46 -15
- package/build/components/global-styles/preview.js.map +1 -1
- package/build/components/global-styles/screen-background-color.js +9 -12
- package/build/components/global-styles/screen-background-color.js.map +1 -1
- package/build/components/global-styles/screen-block-list.js +2 -3
- package/build/components/global-styles/screen-block-list.js.map +1 -1
- package/build/components/global-styles/screen-block.js +0 -1
- package/build/components/global-styles/screen-block.js.map +1 -1
- package/build/components/global-styles/screen-color-palette.js +0 -2
- package/build/components/global-styles/screen-color-palette.js.map +1 -1
- package/build/components/global-styles/screen-colors.js +5 -6
- package/build/components/global-styles/screen-colors.js.map +1 -1
- package/build/components/global-styles/screen-layout.js +0 -2
- package/build/components/global-styles/screen-layout.js.map +1 -1
- package/build/components/global-styles/screen-link-color.js +6 -12
- package/build/components/global-styles/screen-link-color.js.map +1 -1
- package/build/components/global-styles/screen-root.js +22 -3
- package/build/components/global-styles/screen-root.js.map +1 -1
- package/build/components/global-styles/screen-style-variations.js +138 -0
- package/build/components/global-styles/screen-style-variations.js.map +1 -0
- package/build/components/global-styles/screen-text-color.js +6 -12
- package/build/components/global-styles/screen-text-color.js.map +1 -1
- package/build/components/global-styles/screen-typography-element.js +0 -2
- package/build/components/global-styles/screen-typography-element.js.map +1 -1
- package/build/components/global-styles/screen-typography.js +2 -3
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/global-styles/ui.js +31 -14
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/header/index.js +12 -4
- package/build/components/header/index.js.map +1 -1
- package/build/components/header/mode-switcher/index.js +78 -0
- package/build/components/header/mode-switcher/index.js.map +1 -0
- package/build/components/header/more-menu/copy-content-menu-item.js +74 -0
- package/build/components/header/more-menu/copy-content-menu-item.js.map +1 -0
- package/build/components/header/more-menu/index.js +72 -39
- package/build/components/header/more-menu/index.js.map +1 -1
- package/build/{plugins → components/header/more-menu}/site-export.js +0 -0
- package/build/components/header/more-menu/site-export.js.map +1 -0
- package/build/{plugins → components/header/more-menu}/welcome-guide-menu-item.js +1 -1
- package/build/components/header/more-menu/welcome-guide-menu-item.js.map +1 -0
- package/build/components/header/tools-more-menu-group/index.js +1 -5
- package/build/components/header/tools-more-menu-group/index.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/config.js +45 -0
- package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -0
- package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +56 -0
- package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -0
- package/build/components/keyboard-shortcut-help-modal/index.js +137 -0
- package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -0
- package/build/components/keyboard-shortcut-help-modal/shortcut.js +65 -0
- package/build/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -0
- package/build/components/keyboard-shortcuts/index.js +26 -1
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/list/actions/index.js +5 -4
- package/build/components/list/actions/index.js.map +1 -1
- package/build/components/list/actions/rename-menu-item.js +3 -3
- package/build/components/list/actions/rename-menu-item.js.map +1 -1
- package/build/components/list/added-by.js +51 -50
- package/build/components/list/added-by.js.map +1 -1
- package/build/components/routes/redirect-to-homepage.js +87 -0
- package/build/components/routes/redirect-to-homepage.js.map +1 -0
- package/build/components/secondary-sidebar/inserter-sidebar.js +13 -3
- package/build/components/secondary-sidebar/inserter-sidebar.js.map +1 -1
- package/build/components/secondary-sidebar/list-view-sidebar.js +7 -5
- package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
- package/build/components/sidebar/default-sidebar.js +4 -2
- package/build/components/sidebar/default-sidebar.js.map +1 -1
- package/build/components/sidebar/global-styles-sidebar.js +1 -0
- package/build/components/sidebar/global-styles-sidebar.js.map +1 -1
- package/build/components/url-query-controller/index.js +1 -38
- package/build/components/url-query-controller/index.js.map +1 -1
- package/build/index.js +9 -4
- package/build/index.js.map +1 -1
- package/build/store/actions.js +26 -25
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +2 -1
- package/build/store/defaults.js.map +1 -1
- package/build/store/reducer.js +11 -0
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +13 -0
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/block-editor/resizable-editor.js +1 -0
- package/build-module/components/block-editor/resizable-editor.js.map +1 -1
- package/build-module/components/code-editor/code-editor-text-area.js +83 -0
- package/build-module/components/code-editor/code-editor-text-area.js.map +1 -0
- package/build-module/components/code-editor/index.js +62 -0
- package/build-module/components/code-editor/index.js.map +1 -0
- package/build-module/components/editor/index.js +9 -5
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +82 -23
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/context-menu.js +1 -1
- package/build-module/components/global-styles/context-menu.js.map +1 -1
- package/build-module/components/global-styles/global-styles-provider.js +1 -1
- package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
- package/build-module/components/global-styles/header.js +2 -5
- package/build-module/components/global-styles/header.js.map +1 -1
- package/build-module/components/global-styles/navigation-button.js +27 -10
- package/build-module/components/global-styles/navigation-button.js.map +1 -1
- package/build-module/components/global-styles/palette.js +1 -1
- package/build-module/components/global-styles/palette.js.map +1 -1
- package/build-module/components/global-styles/preview.js +45 -15
- package/build-module/components/global-styles/preview.js.map +1 -1
- package/build-module/components/global-styles/screen-background-color.js +9 -13
- package/build-module/components/global-styles/screen-background-color.js.map +1 -1
- package/build-module/components/global-styles/screen-block-list.js +1 -2
- package/build-module/components/global-styles/screen-block-list.js.map +1 -1
- package/build-module/components/global-styles/screen-block.js +0 -1
- package/build-module/components/global-styles/screen-block.js.map +1 -1
- package/build-module/components/global-styles/screen-color-palette.js +0 -2
- package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
- package/build-module/components/global-styles/screen-colors.js +2 -3
- package/build-module/components/global-styles/screen-colors.js.map +1 -1
- package/build-module/components/global-styles/screen-layout.js +0 -2
- package/build-module/components/global-styles/screen-layout.js.map +1 -1
- package/build-module/components/global-styles/screen-link-color.js +7 -13
- package/build-module/components/global-styles/screen-link-color.js.map +1 -1
- package/build-module/components/global-styles/screen-root.js +21 -4
- package/build-module/components/global-styles/screen-root.js.map +1 -1
- package/build-module/components/global-styles/screen-style-variations.js +119 -0
- package/build-module/components/global-styles/screen-style-variations.js.map +1 -0
- package/build-module/components/global-styles/screen-text-color.js +7 -13
- package/build-module/components/global-styles/screen-text-color.js.map +1 -1
- package/build-module/components/global-styles/screen-typography-element.js +0 -2
- package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js +1 -2
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/global-styles/ui.js +29 -14
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/header/index.js +13 -5
- package/build-module/components/header/index.js.map +1 -1
- package/build-module/components/header/mode-switcher/index.js +65 -0
- package/build-module/components/header/mode-switcher/index.js.map +1 -0
- package/build-module/components/header/more-menu/copy-content-menu-item.js +59 -0
- package/build-module/components/header/more-menu/copy-content-menu-item.js.map +1 -0
- package/build-module/components/header/more-menu/index.js +67 -40
- package/build-module/components/header/more-menu/index.js.map +1 -1
- package/build-module/{plugins → components/header/more-menu}/site-export.js +0 -0
- package/build-module/components/header/more-menu/site-export.js.map +1 -0
- package/build-module/{plugins → components/header/more-menu}/welcome-guide-menu-item.js +1 -1
- package/build-module/components/header/more-menu/welcome-guide-menu-item.js.map +1 -0
- package/build-module/components/header/tools-more-menu-group/index.js +2 -5
- package/build-module/components/header/tools-more-menu-group/index.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/config.js +36 -0
- package/build-module/components/keyboard-shortcut-help-modal/config.js.map +1 -0
- package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +44 -0
- package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -0
- package/build-module/components/keyboard-shortcut-help-modal/index.js +120 -0
- package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -0
- package/build-module/components/keyboard-shortcut-help-modal/shortcut.js +58 -0
- package/build-module/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -0
- package/build-module/components/keyboard-shortcuts/index.js +26 -1
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/list/actions/index.js +5 -4
- package/build-module/components/list/actions/index.js.map +1 -1
- package/build-module/components/list/actions/rename-menu-item.js +3 -3
- package/build-module/components/list/actions/rename-menu-item.js.map +1 -1
- package/build-module/components/list/added-by.js +52 -51
- package/build-module/components/list/added-by.js.map +1 -1
- package/build-module/components/routes/redirect-to-homepage.js +75 -0
- package/build-module/components/routes/redirect-to-homepage.js.map +1 -0
- package/build-module/components/secondary-sidebar/inserter-sidebar.js +14 -4
- package/build-module/components/secondary-sidebar/inserter-sidebar.js.map +1 -1
- package/build-module/components/secondary-sidebar/list-view-sidebar.js +7 -5
- package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
- package/build-module/components/sidebar/default-sidebar.js +4 -2
- package/build-module/components/sidebar/default-sidebar.js.map +1 -1
- package/build-module/components/sidebar/global-styles-sidebar.js +1 -0
- package/build-module/components/sidebar/global-styles-sidebar.js.map +1 -1
- package/build-module/components/url-query-controller/index.js +3 -40
- package/build-module/components/url-query-controller/index.js.map +1 -1
- package/build-module/index.js +8 -3
- package/build-module/index.js.map +1 -1
- package/build-module/store/actions.js +22 -23
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +2 -1
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/reducer.js +11 -0
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +11 -0
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +199 -68
- package/build-style/style.css +199 -68
- package/package.json +29 -28
- package/src/components/block-editor/resizable-editor.js +1 -0
- package/src/components/block-editor/style.scss +10 -18
- package/src/components/code-editor/code-editor-text-area.js +79 -0
- package/src/components/code-editor/index.js +65 -0
- package/src/components/code-editor/style.scss +100 -0
- package/src/components/editor/index.js +16 -7
- package/src/components/global-styles/border-panel.js +106 -42
- package/src/components/global-styles/context-menu.js +1 -1
- package/src/components/global-styles/global-styles-provider.js +1 -2
- package/src/components/global-styles/header.js +3 -5
- package/src/components/global-styles/navigation-button.js +14 -10
- package/src/components/global-styles/palette.js +1 -1
- package/src/components/global-styles/preview.js +46 -18
- package/src/components/global-styles/screen-background-color.js +7 -12
- package/src/components/global-styles/screen-block-list.js +1 -2
- package/src/components/global-styles/screen-block.js +1 -1
- package/src/components/global-styles/screen-color-palette.js +0 -2
- package/src/components/global-styles/screen-colors.js +2 -3
- package/src/components/global-styles/screen-layout.js +1 -5
- package/src/components/global-styles/screen-link-color.js +6 -16
- package/src/components/global-styles/screen-root.js +32 -3
- package/src/components/global-styles/screen-style-variations.js +130 -0
- package/src/components/global-styles/screen-text-color.js +6 -16
- package/src/components/global-styles/screen-typography-element.js +0 -4
- package/src/components/global-styles/screen-typography.js +2 -3
- package/src/components/global-styles/style.scss +24 -25
- package/src/components/global-styles/ui.js +55 -25
- package/src/components/header/document-actions/style.scss +1 -9
- package/src/components/header/index.js +10 -2
- package/src/components/header/mode-switcher/index.js +67 -0
- package/src/components/header/more-menu/copy-content-menu-item.js +53 -0
- package/src/components/header/more-menu/index.js +107 -44
- package/src/{plugins → components/header/more-menu}/site-export.js +0 -0
- package/src/{plugins → components/header/more-menu}/welcome-guide-menu-item.js +1 -1
- package/src/components/header/style.scss +2 -1
- package/src/components/header/tools-more-menu-group/index.js +2 -7
- package/src/components/keyboard-shortcut-help-modal/config.js +27 -0
- package/src/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +41 -0
- package/src/components/keyboard-shortcut-help-modal/index.js +135 -0
- package/src/components/keyboard-shortcut-help-modal/shortcut.js +73 -0
- package/src/components/keyboard-shortcut-help-modal/style.scss +66 -0
- package/src/components/keyboard-shortcuts/index.js +27 -1
- package/src/components/list/actions/index.js +5 -4
- package/src/components/list/actions/rename-menu-item.js +3 -3
- package/src/components/list/added-by.js +57 -63
- package/src/components/routes/redirect-to-homepage.js +71 -0
- package/src/components/secondary-sidebar/inserter-sidebar.js +14 -3
- package/src/components/secondary-sidebar/list-view-sidebar.js +12 -5
- package/src/components/secondary-sidebar/style.scss +0 -4
- package/src/components/sidebar/default-sidebar.js +2 -0
- package/src/components/sidebar/global-styles-sidebar.js +1 -0
- package/src/components/sidebar/style.scss +21 -14
- package/src/components/url-query-controller/index.js +3 -35
- package/src/index.js +9 -2
- package/src/store/actions.js +22 -35
- package/src/store/defaults.js +1 -0
- package/src/store/reducer.js +6 -0
- package/src/store/selectors.js +11 -0
- package/src/store/test/actions.js +2 -92
- package/src/style.scss +2 -0
- package/build/plugins/index.js +0 -28
- package/build/plugins/index.js.map +0 -1
- package/build/plugins/site-export.js.map +0 -1
- package/build/plugins/welcome-guide-menu-item.js.map +0 -1
- package/build-module/plugins/index.js +0 -20
- package/build-module/plugins/index.js.map +0 -1
- package/build-module/plugins/site-export.js.map +0 -1
- package/build-module/plugins/welcome-guide-menu-item.js.map +0 -1
- package/src/plugins/index.js +0 -24
|
@@ -23,6 +23,7 @@ function KeyboardShortcuts( { openEntitiesSavedStates } ) {
|
|
|
23
23
|
__experimentalGetDirtyEntityRecords,
|
|
24
24
|
isSavingEntityRecord,
|
|
25
25
|
} = useSelect( coreStore );
|
|
26
|
+
const { getEditorMode } = useSelect( editSiteStore );
|
|
26
27
|
const isListViewOpen = useSelect(
|
|
27
28
|
( select ) => select( editSiteStore ).isListViewOpened(),
|
|
28
29
|
[]
|
|
@@ -35,7 +36,9 @@ function KeyboardShortcuts( { openEntitiesSavedStates } ) {
|
|
|
35
36
|
[]
|
|
36
37
|
);
|
|
37
38
|
const { redo, undo } = useDispatch( coreStore );
|
|
38
|
-
const { setIsListViewOpened } = useDispatch(
|
|
39
|
+
const { setIsListViewOpened, switchEditorMode } = useDispatch(
|
|
40
|
+
editSiteStore
|
|
41
|
+
);
|
|
39
42
|
const { enableComplementaryArea, disableComplementaryArea } = useDispatch(
|
|
40
43
|
interfaceStore
|
|
41
44
|
);
|
|
@@ -80,6 +83,10 @@ function KeyboardShortcuts( { openEntitiesSavedStates } ) {
|
|
|
80
83
|
}
|
|
81
84
|
} );
|
|
82
85
|
|
|
86
|
+
useShortcut( 'core/edit-site/toggle-mode', () => {
|
|
87
|
+
switchEditorMode( getEditorMode() === 'visual' ? 'text' : 'visual' );
|
|
88
|
+
} );
|
|
89
|
+
|
|
83
90
|
return null;
|
|
84
91
|
}
|
|
85
92
|
|
|
@@ -137,6 +144,16 @@ function KeyboardShortcutsRegister() {
|
|
|
137
144
|
},
|
|
138
145
|
} );
|
|
139
146
|
|
|
147
|
+
registerShortcut( {
|
|
148
|
+
name: 'core/edit-site/keyboard-shortcuts',
|
|
149
|
+
category: 'main',
|
|
150
|
+
description: __( 'Display these keyboard shortcuts.' ),
|
|
151
|
+
keyCombination: {
|
|
152
|
+
modifier: 'access',
|
|
153
|
+
character: 'h',
|
|
154
|
+
},
|
|
155
|
+
} );
|
|
156
|
+
|
|
140
157
|
registerShortcut( {
|
|
141
158
|
name: 'core/edit-site/next-region',
|
|
142
159
|
category: 'global',
|
|
@@ -168,6 +185,15 @@ function KeyboardShortcutsRegister() {
|
|
|
168
185
|
},
|
|
169
186
|
],
|
|
170
187
|
} );
|
|
188
|
+
registerShortcut( {
|
|
189
|
+
name: 'core/edit-site/toggle-mode',
|
|
190
|
+
category: 'global',
|
|
191
|
+
description: __( 'Switch between visual editor and code editor.' ),
|
|
192
|
+
keyCombination: {
|
|
193
|
+
modifier: 'secondary',
|
|
194
|
+
character: 'm',
|
|
195
|
+
},
|
|
196
|
+
} );
|
|
171
197
|
}, [ registerShortcut ] );
|
|
172
198
|
|
|
173
199
|
return null;
|
|
@@ -39,14 +39,14 @@ export default function Actions( { template } ) {
|
|
|
39
39
|
template.id
|
|
40
40
|
);
|
|
41
41
|
|
|
42
|
-
createSuccessNotice( __( '
|
|
42
|
+
createSuccessNotice( __( 'Entity reverted.' ), {
|
|
43
43
|
type: 'snackbar',
|
|
44
44
|
} );
|
|
45
45
|
} catch ( error ) {
|
|
46
46
|
const errorMessage =
|
|
47
47
|
error.message && error.code !== 'unknown_error'
|
|
48
48
|
? error.message
|
|
49
|
-
: __( 'An error occurred while reverting the
|
|
49
|
+
: __( 'An error occurred while reverting the entity.' );
|
|
50
50
|
|
|
51
51
|
createErrorNotice( errorMessage, { type: 'snackbar' } );
|
|
52
52
|
}
|
|
@@ -68,18 +68,19 @@ export default function Actions( { template } ) {
|
|
|
68
68
|
/>
|
|
69
69
|
<MenuItem
|
|
70
70
|
isDestructive
|
|
71
|
+
isTertiary
|
|
71
72
|
onClick={ () => {
|
|
72
73
|
removeTemplate( template );
|
|
73
74
|
onClose();
|
|
74
75
|
} }
|
|
75
76
|
>
|
|
76
|
-
{ __( 'Delete
|
|
77
|
+
{ __( 'Delete' ) }
|
|
77
78
|
</MenuItem>
|
|
78
79
|
</>
|
|
79
80
|
) }
|
|
80
81
|
{ isRevertable && (
|
|
81
82
|
<MenuItem
|
|
82
|
-
info={ __( 'Restore
|
|
83
|
+
info={ __( 'Restore to default state' ) }
|
|
83
84
|
onClick={ () => {
|
|
84
85
|
revertAndSaveTemplate();
|
|
85
86
|
onClose();
|
|
@@ -61,14 +61,14 @@ export default function RenameMenuItem( { template, onClose } ) {
|
|
|
61
61
|
throw lastError;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
createSuccessNotice( __( '
|
|
64
|
+
createSuccessNotice( __( 'Entity renamed.' ), {
|
|
65
65
|
type: 'snackbar',
|
|
66
66
|
} );
|
|
67
67
|
} catch ( error ) {
|
|
68
68
|
const errorMessage =
|
|
69
69
|
error.message && error.code !== 'unknown_error'
|
|
70
70
|
? error.message
|
|
71
|
-
: __( 'An error occurred while renaming the
|
|
71
|
+
: __( 'An error occurred while renaming the entity.' );
|
|
72
72
|
|
|
73
73
|
createErrorNotice( errorMessage, { type: 'snackbar' } );
|
|
74
74
|
}
|
|
@@ -86,7 +86,7 @@ export default function RenameMenuItem( { template, onClose } ) {
|
|
|
86
86
|
</MenuItem>
|
|
87
87
|
{ isModalOpen && (
|
|
88
88
|
<Modal
|
|
89
|
-
title={ __( 'Rename
|
|
89
|
+
title={ __( 'Rename' ) }
|
|
90
90
|
closeLabel={ __( 'Close' ) }
|
|
91
91
|
onRequestClose={ () => {
|
|
92
92
|
setIsModalOpen( false );
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
commentAuthorAvatar as authorIcon,
|
|
19
19
|
layout as themeIcon,
|
|
20
20
|
plugins as pluginIcon,
|
|
21
|
+
globe as globeIcon,
|
|
21
22
|
} from '@wordpress/icons';
|
|
22
23
|
import { __ } from '@wordpress/i18n';
|
|
23
24
|
|
|
@@ -35,6 +36,45 @@ function CustomizedTooltip( { isCustomized, children } ) {
|
|
|
35
36
|
);
|
|
36
37
|
}
|
|
37
38
|
|
|
39
|
+
function BaseAddedBy( { text, icon, imageUrl, isCustomized } ) {
|
|
40
|
+
const [ isImageLoaded, setIsImageLoaded ] = useState( false );
|
|
41
|
+
|
|
42
|
+
return (
|
|
43
|
+
<HStack alignment="left">
|
|
44
|
+
<CustomizedTooltip isCustomized={ isCustomized }>
|
|
45
|
+
{ imageUrl ? (
|
|
46
|
+
<div
|
|
47
|
+
className={ classnames(
|
|
48
|
+
'edit-site-list-added-by__avatar',
|
|
49
|
+
{
|
|
50
|
+
'is-loaded': isImageLoaded,
|
|
51
|
+
}
|
|
52
|
+
) }
|
|
53
|
+
>
|
|
54
|
+
<img
|
|
55
|
+
onLoad={ () => setIsImageLoaded( true ) }
|
|
56
|
+
alt=""
|
|
57
|
+
src={ imageUrl }
|
|
58
|
+
/>
|
|
59
|
+
</div>
|
|
60
|
+
) : (
|
|
61
|
+
<div
|
|
62
|
+
className={ classnames(
|
|
63
|
+
'edit-site-list-added-by__icon',
|
|
64
|
+
{
|
|
65
|
+
'is-customized': isCustomized,
|
|
66
|
+
}
|
|
67
|
+
) }
|
|
68
|
+
>
|
|
69
|
+
<Icon icon={ icon } />
|
|
70
|
+
</div>
|
|
71
|
+
) }
|
|
72
|
+
</CustomizedTooltip>
|
|
73
|
+
<span>{ text }</span>
|
|
74
|
+
</HStack>
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
|
|
38
78
|
function AddedByTheme( { slug, isCustomized } ) {
|
|
39
79
|
const theme = useSelect(
|
|
40
80
|
( select ) => select( coreStore ).getTheme( slug ),
|
|
@@ -42,18 +82,11 @@ function AddedByTheme( { slug, isCustomized } ) {
|
|
|
42
82
|
);
|
|
43
83
|
|
|
44
84
|
return (
|
|
45
|
-
<
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
} ) }
|
|
51
|
-
>
|
|
52
|
-
<Icon icon={ themeIcon } />
|
|
53
|
-
</div>
|
|
54
|
-
</CustomizedTooltip>
|
|
55
|
-
<span>{ theme?.name?.rendered || slug }</span>
|
|
56
|
-
</HStack>
|
|
85
|
+
<BaseAddedBy
|
|
86
|
+
icon={ themeIcon }
|
|
87
|
+
text={ theme?.name?.rendered || slug }
|
|
88
|
+
isCustomized={ isCustomized }
|
|
89
|
+
/>
|
|
57
90
|
);
|
|
58
91
|
}
|
|
59
92
|
|
|
@@ -64,14 +97,11 @@ function AddedByPlugin( { slug, isCustomized } ) {
|
|
|
64
97
|
);
|
|
65
98
|
|
|
66
99
|
return (
|
|
67
|
-
<
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
</CustomizedTooltip>
|
|
73
|
-
<span>{ plugin?.name || slug }</span>
|
|
74
|
-
</HStack>
|
|
100
|
+
<BaseAddedBy
|
|
101
|
+
icon={ pluginIcon }
|
|
102
|
+
text={ plugin?.name || slug }
|
|
103
|
+
isCustomized={ isCustomized }
|
|
104
|
+
/>
|
|
75
105
|
);
|
|
76
106
|
}
|
|
77
107
|
|
|
@@ -79,35 +109,13 @@ function AddedByAuthor( { id } ) {
|
|
|
79
109
|
const user = useSelect( ( select ) => select( coreStore ).getUser( id ), [
|
|
80
110
|
id,
|
|
81
111
|
] );
|
|
82
|
-
const [ isImageLoaded, setIsImageLoaded ] = useState( false );
|
|
83
|
-
|
|
84
|
-
const avatarURL = user?.avatar_urls?.[ 48 ];
|
|
85
|
-
const hasAvatar = !! avatarURL;
|
|
86
112
|
|
|
87
113
|
return (
|
|
88
|
-
<
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
: 'edit-site-list-added-by__icon',
|
|
94
|
-
{
|
|
95
|
-
'is-loaded': isImageLoaded,
|
|
96
|
-
}
|
|
97
|
-
) }
|
|
98
|
-
>
|
|
99
|
-
{ hasAvatar ? (
|
|
100
|
-
<img
|
|
101
|
-
onLoad={ () => setIsImageLoaded( true ) }
|
|
102
|
-
alt=""
|
|
103
|
-
src={ avatarURL }
|
|
104
|
-
/>
|
|
105
|
-
) : (
|
|
106
|
-
<Icon icon={ authorIcon } />
|
|
107
|
-
) }
|
|
108
|
-
</div>
|
|
109
|
-
<span>{ user?.nickname }</span>
|
|
110
|
-
</HStack>
|
|
114
|
+
<BaseAddedBy
|
|
115
|
+
icon={ authorIcon }
|
|
116
|
+
imageUrl={ user?.avatar_urls?.[ 48 ] }
|
|
117
|
+
text={ user?.nickname }
|
|
118
|
+
/>
|
|
111
119
|
);
|
|
112
120
|
}
|
|
113
121
|
|
|
@@ -117,29 +125,15 @@ function AddedBySite() {
|
|
|
117
125
|
const siteData = getEntityRecord( 'root', '__unstableBase' );
|
|
118
126
|
|
|
119
127
|
return {
|
|
120
|
-
name: siteData
|
|
128
|
+
name: siteData?.name,
|
|
121
129
|
logoURL: siteData?.site_logo
|
|
122
130
|
? getMedia( siteData.site_logo )?.source_url
|
|
123
131
|
: undefined,
|
|
124
132
|
};
|
|
125
133
|
}, [] );
|
|
126
|
-
const [ isImageLoaded, setIsImageLoaded ] = useState( false );
|
|
127
134
|
|
|
128
135
|
return (
|
|
129
|
-
<
|
|
130
|
-
<div
|
|
131
|
-
className={ classnames( 'edit-site-list-added-by__avatar', {
|
|
132
|
-
'is-loaded': isImageLoaded,
|
|
133
|
-
} ) }
|
|
134
|
-
>
|
|
135
|
-
<img
|
|
136
|
-
onLoad={ () => setIsImageLoaded( true ) }
|
|
137
|
-
alt=""
|
|
138
|
-
src={ logoURL }
|
|
139
|
-
/>
|
|
140
|
-
</div>
|
|
141
|
-
<span>{ name }</span>
|
|
142
|
-
</HStack>
|
|
136
|
+
<BaseAddedBy icon={ globeIcon } imageUrl={ logoURL } text={ name } />
|
|
143
137
|
);
|
|
144
138
|
}
|
|
145
139
|
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import apiFetch from '@wordpress/api-fetch';
|
|
5
|
+
import { addQueryArgs } from '@wordpress/url';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Internal dependencies
|
|
9
|
+
*/
|
|
10
|
+
import history from '../../utils/history';
|
|
11
|
+
import getIsListPage from '../../utils/get-is-list-page';
|
|
12
|
+
|
|
13
|
+
function getNeedsHomepageRedirect( params ) {
|
|
14
|
+
const { postType } = params;
|
|
15
|
+
return (
|
|
16
|
+
! getIsListPage( params ) &&
|
|
17
|
+
! [ 'post', 'page', 'wp_template', 'wp_template_part' ].includes(
|
|
18
|
+
postType
|
|
19
|
+
)
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async function getHomepageParams( siteUrl ) {
|
|
24
|
+
const siteSettings = await apiFetch( { path: '/wp/v2/settings' } );
|
|
25
|
+
if ( ! siteSettings ) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const {
|
|
30
|
+
show_on_front: showOnFront,
|
|
31
|
+
page_on_front: frontpageId,
|
|
32
|
+
} = siteSettings;
|
|
33
|
+
|
|
34
|
+
// If the user has set a page as the homepage, use those details.
|
|
35
|
+
if ( showOnFront === 'page' ) {
|
|
36
|
+
return {
|
|
37
|
+
postType: 'page',
|
|
38
|
+
postId: frontpageId,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Else get the home template.
|
|
43
|
+
// This matches the logic in `__experimentalGetTemplateForLink`.
|
|
44
|
+
// (packages/core-data/src/resolvers.js)
|
|
45
|
+
const template = await window
|
|
46
|
+
.fetch( addQueryArgs( siteUrl, { '_wp-find-template': true } ) )
|
|
47
|
+
.then( ( res ) => res.json() )
|
|
48
|
+
.then( ( { data } ) => data );
|
|
49
|
+
|
|
50
|
+
if ( ! template?.id ) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return {
|
|
55
|
+
postType: 'wp_template',
|
|
56
|
+
postId: template.id,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export default async function redirectToHomepage( siteUrl ) {
|
|
61
|
+
const searchParams = new URLSearchParams( history.location.search );
|
|
62
|
+
const params = Object.fromEntries( searchParams.entries() );
|
|
63
|
+
|
|
64
|
+
if ( getNeedsHomepageRedirect( params ) ) {
|
|
65
|
+
const homepageParams = await getHomepageParams( siteUrl );
|
|
66
|
+
|
|
67
|
+
if ( homepageParams ) {
|
|
68
|
+
history.replace( homepageParams );
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
5
|
-
import { Button } from '@wordpress/components';
|
|
5
|
+
import { Button, VisuallyHidden } from '@wordpress/components';
|
|
6
6
|
import { __experimentalLibrary as Library } from '@wordpress/block-editor';
|
|
7
7
|
import { close } from '@wordpress/icons';
|
|
8
8
|
import {
|
|
9
9
|
useViewportMatch,
|
|
10
10
|
__experimentalUseDialog as useDialog,
|
|
11
11
|
} from '@wordpress/compose';
|
|
12
|
+
import { __ } from '@wordpress/i18n';
|
|
13
|
+
import { useEffect, useRef } from '@wordpress/element';
|
|
12
14
|
|
|
13
15
|
/**
|
|
14
16
|
* Internal dependencies
|
|
@@ -23,22 +25,30 @@ export default function InserterSidebar() {
|
|
|
23
25
|
);
|
|
24
26
|
|
|
25
27
|
const isMobile = useViewportMatch( 'medium', '<' );
|
|
28
|
+
const TagName = ! isMobile ? VisuallyHidden : 'div';
|
|
26
29
|
const [ inserterDialogRef, inserterDialogProps ] = useDialog( {
|
|
27
30
|
onClose: () => setIsInserterOpened( false ),
|
|
31
|
+
focusOnMount: null,
|
|
28
32
|
} );
|
|
29
33
|
|
|
34
|
+
const libraryRef = useRef();
|
|
35
|
+
useEffect( () => {
|
|
36
|
+
libraryRef.current.focusSearch();
|
|
37
|
+
}, [] );
|
|
38
|
+
|
|
30
39
|
return (
|
|
31
40
|
<div
|
|
32
41
|
ref={ inserterDialogRef }
|
|
33
42
|
{ ...inserterDialogProps }
|
|
34
43
|
className="edit-site-editor__inserter-panel"
|
|
35
44
|
>
|
|
36
|
-
<
|
|
45
|
+
<TagName className="edit-site-editor__inserter-panel-header">
|
|
37
46
|
<Button
|
|
38
47
|
icon={ close }
|
|
48
|
+
label={ __( 'Close block inserter' ) }
|
|
39
49
|
onClick={ () => setIsInserterOpened( false ) }
|
|
40
50
|
/>
|
|
41
|
-
</
|
|
51
|
+
</TagName>
|
|
42
52
|
<div className="edit-site-editor__inserter-panel-content">
|
|
43
53
|
<Library
|
|
44
54
|
showInserterHelpPanel
|
|
@@ -48,6 +58,7 @@ export default function InserterSidebar() {
|
|
|
48
58
|
insertionPoint.insertionIndex
|
|
49
59
|
}
|
|
50
60
|
__experimentalFilterValue={ insertionPoint.filterValue }
|
|
61
|
+
ref={ libraryRef }
|
|
51
62
|
/>
|
|
52
63
|
</div>
|
|
53
64
|
</div>
|
|
@@ -32,7 +32,8 @@ export default function ListViewSidebar() {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
const focusOnMountRef = useFocusOnMount( 'firstElement' );
|
|
35
|
-
const
|
|
35
|
+
const headerFocusReturnRef = useFocusReturn();
|
|
36
|
+
const contentFocusReturnRef = useFocusReturn();
|
|
36
37
|
function closeOnEscape( event ) {
|
|
37
38
|
if ( event.keyCode === ESCAPE && ! event.defaultPrevented ) {
|
|
38
39
|
setIsListViewOpened( false );
|
|
@@ -49,17 +50,23 @@ export default function ListViewSidebar() {
|
|
|
49
50
|
className="edit-site-editor__list-view-panel"
|
|
50
51
|
onKeyDown={ closeOnEscape }
|
|
51
52
|
>
|
|
52
|
-
<div
|
|
53
|
-
|
|
53
|
+
<div
|
|
54
|
+
className="edit-site-editor__list-view-panel-header"
|
|
55
|
+
ref={ headerFocusReturnRef }
|
|
56
|
+
>
|
|
57
|
+
<strong id={ labelId }>{ __( 'List View' ) }</strong>
|
|
54
58
|
<Button
|
|
55
59
|
icon={ closeSmall }
|
|
56
|
-
label={ __( 'Close
|
|
60
|
+
label={ __( 'Close List View Sidebar' ) }
|
|
57
61
|
onClick={ () => setIsListViewOpened( false ) }
|
|
58
62
|
/>
|
|
59
63
|
</div>
|
|
60
64
|
<div
|
|
61
65
|
className="edit-site-editor__list-view-panel-content"
|
|
62
|
-
ref={ useMergeRefs( [
|
|
66
|
+
ref={ useMergeRefs( [
|
|
67
|
+
contentFocusReturnRef,
|
|
68
|
+
focusOnMountRef,
|
|
69
|
+
] ) }
|
|
63
70
|
>
|
|
64
71
|
<ListView
|
|
65
72
|
onSelect={ selectEditorBlock }
|
|
@@ -15,6 +15,7 @@ export default function DefaultSidebar( {
|
|
|
15
15
|
closeLabel,
|
|
16
16
|
header,
|
|
17
17
|
headerClassName,
|
|
18
|
+
panelClassName,
|
|
18
19
|
} ) {
|
|
19
20
|
return (
|
|
20
21
|
<>
|
|
@@ -27,6 +28,7 @@ export default function DefaultSidebar( {
|
|
|
27
28
|
closeLabel={ closeLabel }
|
|
28
29
|
header={ header }
|
|
29
30
|
headerClassName={ headerClassName }
|
|
31
|
+
panelClassName={ panelClassName }
|
|
30
32
|
>
|
|
31
33
|
{ children }
|
|
32
34
|
</ComplementaryArea>
|
|
@@ -17,6 +17,23 @@
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
.edit-site-global-styles-sidebar {
|
|
21
|
+
display: flex;
|
|
22
|
+
flex-direction: column;
|
|
23
|
+
height: 100%;
|
|
24
|
+
|
|
25
|
+
&__panel,
|
|
26
|
+
&__navigator-provider {
|
|
27
|
+
display: flex;
|
|
28
|
+
flex-direction: column;
|
|
29
|
+
flex: 1;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&__navigator-screen {
|
|
33
|
+
flex: 1;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
20
37
|
.edit-site-global-styles-sidebar .interface-complementary-area-header .components-button.has-icon {
|
|
21
38
|
margin-left: 0;
|
|
22
39
|
}
|
|
@@ -25,20 +42,6 @@
|
|
|
25
42
|
margin-left: auto;
|
|
26
43
|
}
|
|
27
44
|
|
|
28
|
-
.edit-site-global-styles-sidebar__border-controls-row {
|
|
29
|
-
display: flex;
|
|
30
|
-
justify-content: space-between;
|
|
31
|
-
margin-bottom: $grid-unit-15;
|
|
32
|
-
|
|
33
|
-
> * {
|
|
34
|
-
width: calc(50% - #{ $grid-unit-10 });
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.components-border-style-control__buttons {
|
|
38
|
-
margin-bottom: 0;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
45
|
.edit-site-global-styles-sidebar .components-navigation__menu-title-heading {
|
|
43
46
|
font-size: $default-font-size * 1.2;
|
|
44
47
|
font-weight: 500;
|
|
@@ -53,6 +56,10 @@
|
|
|
53
56
|
border: 0;
|
|
54
57
|
}
|
|
55
58
|
|
|
59
|
+
.edit-site-global-styles-sidebar .components-tools-panel-item.single-column {
|
|
60
|
+
grid-column: span 1;
|
|
61
|
+
}
|
|
62
|
+
|
|
56
63
|
.edit-site-global-styles-sidebar__blocks-group {
|
|
57
64
|
padding-top: $grid-unit-30;
|
|
58
65
|
border-top: $border-width solid $gray-200;
|
|
@@ -2,63 +2,31 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { useEffect } from '@wordpress/element';
|
|
5
|
-
import { useDispatch
|
|
5
|
+
import { useDispatch } from '@wordpress/data';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
|
-
import { useLocation
|
|
10
|
+
import { useLocation } from '../routes';
|
|
11
11
|
import { store as editSiteStore } from '../../store';
|
|
12
12
|
|
|
13
13
|
export default function URLQueryController() {
|
|
14
|
-
const { setTemplate, setTemplatePart,
|
|
14
|
+
const { setTemplate, setTemplatePart, setPage } = useDispatch(
|
|
15
15
|
editSiteStore
|
|
16
16
|
);
|
|
17
|
-
const history = useHistory();
|
|
18
17
|
const {
|
|
19
18
|
params: { postId, postType },
|
|
20
19
|
} = useLocation();
|
|
21
|
-
const { getPage, getEditedPostId, getEditedPostType } = useSelect(
|
|
22
|
-
editSiteStore
|
|
23
|
-
);
|
|
24
20
|
|
|
25
21
|
// Set correct entity on page navigation.
|
|
26
22
|
useEffect( () => {
|
|
27
|
-
let isMounted = true;
|
|
28
|
-
|
|
29
23
|
if ( 'page' === postType || 'post' === postType ) {
|
|
30
24
|
setPage( { context: { postType, postId } } ); // Resolves correct template based on ID.
|
|
31
25
|
} else if ( 'wp_template' === postType ) {
|
|
32
26
|
setTemplate( postId );
|
|
33
27
|
} else if ( 'wp_template_part' === postType ) {
|
|
34
28
|
setTemplatePart( postId );
|
|
35
|
-
} else {
|
|
36
|
-
showHomepage().then( () => {
|
|
37
|
-
if ( ! isMounted ) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
const page = getPage();
|
|
42
|
-
const editedPostId = getEditedPostId();
|
|
43
|
-
const editedPostType = getEditedPostType();
|
|
44
|
-
|
|
45
|
-
if ( page?.context?.postId && page?.context?.postType ) {
|
|
46
|
-
history.replace( {
|
|
47
|
-
postId: page.context.postId,
|
|
48
|
-
postType: page.context.postType,
|
|
49
|
-
} );
|
|
50
|
-
} else if ( editedPostId && editedPostType ) {
|
|
51
|
-
history.replace( {
|
|
52
|
-
postId: editedPostId,
|
|
53
|
-
postType: editedPostType,
|
|
54
|
-
} );
|
|
55
|
-
}
|
|
56
|
-
} );
|
|
57
29
|
}
|
|
58
|
-
|
|
59
|
-
return () => {
|
|
60
|
-
isMounted = false;
|
|
61
|
-
};
|
|
62
30
|
}, [ postId, postType ] );
|
|
63
31
|
|
|
64
32
|
return null;
|
package/src/index.js
CHANGED
|
@@ -19,11 +19,11 @@ import { getQueryArgs } from '@wordpress/url';
|
|
|
19
19
|
/**
|
|
20
20
|
* Internal dependencies
|
|
21
21
|
*/
|
|
22
|
-
import './plugins';
|
|
23
22
|
import './hooks';
|
|
24
23
|
import { store as editSiteStore } from './store';
|
|
25
24
|
import EditSiteApp from './components/app';
|
|
26
25
|
import getIsListPage from './utils/get-is-list-page';
|
|
26
|
+
import redirectToHomepage from './components/routes/redirect-to-homepage';
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* Reinitializes the editor after the user chooses to reboot the editor after
|
|
@@ -33,7 +33,13 @@ import getIsListPage from './utils/get-is-list-page';
|
|
|
33
33
|
* @param {Element} target DOM node in which editor is rendered.
|
|
34
34
|
* @param {?Object} settings Editor settings object.
|
|
35
35
|
*/
|
|
36
|
-
export function reinitializeEditor( target, settings ) {
|
|
36
|
+
export async function reinitializeEditor( target, settings ) {
|
|
37
|
+
// The site editor relies on `postType` and `postId` params in the URL to
|
|
38
|
+
// define what's being edited. When visiting via the dashboard link, these
|
|
39
|
+
// won't be present. Do a client side redirect to the 'homepage' if that's
|
|
40
|
+
// the case.
|
|
41
|
+
await redirectToHomepage( settings.siteUrl );
|
|
42
|
+
|
|
37
43
|
// This will be a no-op if the target doesn't have any React nodes.
|
|
38
44
|
unmountComponentAtNode( target );
|
|
39
45
|
const reboot = reinitializeEditor.bind( null, target, settings );
|
|
@@ -42,6 +48,7 @@ export function reinitializeEditor( target, settings ) {
|
|
|
42
48
|
// so that we won't trigger unnecessary re-renders with useEffect.
|
|
43
49
|
{
|
|
44
50
|
dispatch( editSiteStore ).updateSettings( settings );
|
|
51
|
+
|
|
45
52
|
// Keep the defaultTemplateTypes in the core/editor settings too,
|
|
46
53
|
// so that they can be selected with core/editor selectors in any editor.
|
|
47
54
|
// This is needed because edit-site doesn't initialize with EditorProvider,
|