@wordpress/edit-post 7.11.0 → 7.12.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/block-manager/category.js +14 -22
- package/build/components/block-manager/category.js.map +1 -1
- package/build/components/block-manager/checklist.js +6 -13
- package/build/components/block-manager/checklist.js.map +1 -1
- package/build/components/block-manager/index.js +10 -14
- package/build/components/block-manager/index.js.map +1 -1
- package/build/components/block-settings-menu/plugin-block-settings-menu-item.js +21 -26
- package/build/components/block-settings-menu/plugin-block-settings-menu-item.js.map +1 -1
- package/build/components/device-preview/index.js +1 -1
- package/build/components/device-preview/index.js.map +1 -1
- package/build/components/editor-initialization/index.js +3 -4
- package/build/components/editor-initialization/index.js.map +1 -1
- package/build/components/header/document-title/index.js +103 -0
- package/build/components/header/document-title/index.js.map +1 -0
- package/build/components/header/fullscreen-mode-close/index.js +8 -9
- package/build/components/header/fullscreen-mode-close/index.js.map +1 -1
- package/build/components/header/header-toolbar/index.native.js +12 -13
- package/build/components/header/header-toolbar/index.native.js.map +1 -1
- package/build/components/header/index.js +7 -6
- package/build/components/header/index.js.map +1 -1
- package/build/components/header/main-dashboard-button/index.js +3 -4
- package/build/components/header/main-dashboard-button/index.js.map +1 -1
- package/build/components/header/more-menu/index.js +19 -23
- package/build/components/header/more-menu/index.js.map +1 -1
- package/build/components/header/post-publish-button-or-toggle.js +15 -16
- package/build/components/header/post-publish-button-or-toggle.js.map +1 -1
- package/build/components/header/tools-more-menu-group/index.js +7 -10
- package/build/components/header/tools-more-menu-group/index.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +3 -4
- package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/index.js +44 -54
- package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/shortcut.js +10 -12
- package/build/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -1
- package/build/components/layout/actions-panel.js +5 -6
- package/build/components/layout/actions-panel.js.map +1 -1
- package/build/components/layout/index.js +3 -4
- package/build/components/layout/index.js.map +1 -1
- package/build/components/layout/index.native.js +3 -7
- package/build/components/layout/index.native.js.map +1 -1
- package/build/components/meta-boxes/index.js +9 -13
- package/build/components/meta-boxes/index.js.map +1 -1
- package/build/components/meta-boxes/meta-box-visibility.js +5 -8
- package/build/components/meta-boxes/meta-box-visibility.js.map +1 -1
- package/build/components/meta-boxes/meta-boxes-area/index.js +3 -4
- package/build/components/meta-boxes/meta-boxes-area/index.js.map +1 -1
- package/build/components/preferences-modal/meta-boxes-section.js +16 -23
- package/build/components/preferences-modal/meta-boxes-section.js.map +1 -1
- package/build/components/preferences-modal/options/enable-custom-fields.js +7 -9
- package/build/components/preferences-modal/options/enable-custom-fields.js.map +1 -1
- package/build/components/preferences-modal/options/enable-feature.js +12 -16
- package/build/components/preferences-modal/options/enable-feature.js.map +1 -1
- package/build/components/preferences-modal/options/enable-panel.js +10 -17
- package/build/components/preferences-modal/options/enable-panel.js.map +1 -1
- package/build/components/preferences-modal/options/enable-plugin-document-setting-panel.js +7 -10
- package/build/components/preferences-modal/options/enable-plugin-document-setting-panel.js.map +1 -1
- package/build/components/secondary-sidebar/list-view-sidebar.js +58 -44
- package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
- package/build/components/sidebar/discussion-panel/index.js +5 -7
- package/build/components/sidebar/discussion-panel/index.js.map +1 -1
- package/build/components/sidebar/featured-image/index.js +9 -17
- package/build/components/sidebar/featured-image/index.js.map +1 -1
- package/build/components/sidebar/page-attributes/index.js +3 -9
- package/build/components/sidebar/page-attributes/index.js.map +1 -1
- package/build/components/sidebar/plugin-document-setting-panel/index.js +20 -25
- package/build/components/sidebar/plugin-document-setting-panel/index.js.map +1 -1
- package/build/components/sidebar/plugin-post-publish-panel/index.js +12 -15
- package/build/components/sidebar/plugin-post-publish-panel/index.js.map +1 -1
- package/build/components/sidebar/plugin-post-status-info/index.js +6 -9
- package/build/components/sidebar/plugin-post-status-info/index.js.map +1 -1
- package/build/components/sidebar/plugin-pre-publish-panel/index.js +12 -15
- package/build/components/sidebar/plugin-pre-publish-panel/index.js.map +1 -1
- package/build/components/sidebar/plugin-sidebar/index.js +4 -5
- package/build/components/sidebar/plugin-sidebar/index.js.map +1 -1
- package/build/components/sidebar/post-excerpt/index.js +5 -7
- package/build/components/sidebar/post-excerpt/index.js.map +1 -1
- package/build/components/sidebar/post-schedule/index.js +16 -23
- package/build/components/sidebar/post-schedule/index.js.map +1 -1
- package/build/components/sidebar/post-status/index.js +7 -11
- package/build/components/sidebar/post-status/index.js.map +1 -1
- package/build/components/sidebar/post-taxonomies/taxonomy-panel.js +9 -15
- package/build/components/sidebar/post-taxonomies/taxonomy-panel.js.map +1 -1
- package/build/components/sidebar/post-template/create-modal.js +3 -4
- package/build/components/sidebar/post-template/create-modal.js.map +1 -1
- package/build/components/sidebar/post-template/form.js +13 -20
- package/build/components/sidebar/post-template/form.js.map +1 -1
- package/build/components/sidebar/post-template/index.js +18 -25
- package/build/components/sidebar/post-template/index.js.map +1 -1
- package/build/components/sidebar/post-url/index.js +16 -23
- package/build/components/sidebar/post-url/index.js.map +1 -1
- package/build/components/sidebar/post-visibility/index.js +26 -36
- package/build/components/sidebar/post-visibility/index.js.map +1 -1
- package/build/components/sidebar/settings-header/index.js +3 -4
- package/build/components/sidebar/settings-header/index.js.map +1 -1
- package/build/components/sidebar/template-summary/index.js +1 -1
- package/build/components/sidebar/template-summary/index.js.map +1 -1
- package/build/components/start-page-options/index.js +3 -4
- package/build/components/start-page-options/index.js.map +1 -1
- package/build/components/view-link/index.js +1 -1
- package/build/components/view-link/index.js.map +1 -1
- package/build/components/visual-editor/block-inspector-button.js +4 -5
- package/build/components/visual-editor/block-inspector-button.js.map +1 -1
- package/build/components/visual-editor/header.native.js +6 -7
- package/build/components/visual-editor/header.native.js.map +1 -1
- package/build/components/visual-editor/index.js +32 -48
- package/build/components/visual-editor/index.js.map +1 -1
- package/build/components/welcome-guide/image.js +4 -5
- package/build/components/welcome-guide/image.js.map +1 -1
- package/build/editor.js +14 -20
- package/build/editor.js.map +1 -1
- package/build/editor.native.js +3 -6
- package/build/editor.native.js.map +1 -1
- package/build/hooks/validate-multiple-use/index.js +18 -29
- package/build/hooks/validate-multiple-use/index.js.map +1 -1
- package/build/plugins/index.js +20 -23
- package/build/plugins/index.js.map +1 -1
- package/build/plugins/keyboard-shortcuts-help-menu-item/index.js +3 -4
- package/build/plugins/keyboard-shortcuts-help-menu-item/index.js.map +1 -1
- package/build/store/actions.js +60 -88
- package/build/store/actions.js.map +1 -1
- package/build/store/reducer.js +11 -43
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +11 -16
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/block-manager/category.js +14 -22
- package/build-module/components/block-manager/category.js.map +1 -1
- package/build-module/components/block-manager/checklist.js +6 -13
- package/build-module/components/block-manager/checklist.js.map +1 -1
- package/build-module/components/block-manager/index.js +10 -14
- package/build-module/components/block-manager/index.js.map +1 -1
- package/build-module/components/block-settings-menu/plugin-block-settings-menu-item.js +21 -26
- package/build-module/components/block-settings-menu/plugin-block-settings-menu-item.js.map +1 -1
- package/build-module/components/device-preview/index.js +1 -1
- package/build-module/components/device-preview/index.js.map +1 -1
- package/build-module/components/editor-initialization/index.js +3 -4
- package/build-module/components/editor-initialization/index.js.map +1 -1
- package/build-module/components/header/document-title/index.js +88 -0
- package/build-module/components/header/document-title/index.js.map +1 -0
- package/build-module/components/header/fullscreen-mode-close/index.js +7 -8
- package/build-module/components/header/fullscreen-mode-close/index.js.map +1 -1
- package/build-module/components/header/header-toolbar/index.native.js +12 -13
- package/build-module/components/header/header-toolbar/index.native.js.map +1 -1
- package/build-module/components/header/index.js +7 -6
- package/build-module/components/header/index.js.map +1 -1
- package/build-module/components/header/main-dashboard-button/index.js +3 -4
- package/build-module/components/header/main-dashboard-button/index.js.map +1 -1
- package/build-module/components/header/more-menu/index.js +19 -23
- package/build-module/components/header/more-menu/index.js.map +1 -1
- package/build-module/components/header/post-publish-button-or-toggle.js +15 -16
- package/build-module/components/header/post-publish-button-or-toggle.js.map +1 -1
- package/build-module/components/header/tools-more-menu-group/index.js +7 -10
- package/build-module/components/header/tools-more-menu-group/index.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +3 -4
- package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/index.js +42 -52
- package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/shortcut.js +10 -12
- package/build-module/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -1
- package/build-module/components/layout/actions-panel.js +5 -6
- package/build-module/components/layout/actions-panel.js.map +1 -1
- package/build-module/components/layout/index.js +3 -4
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/layout/index.native.js +3 -7
- package/build-module/components/layout/index.native.js.map +1 -1
- package/build-module/components/meta-boxes/index.js +9 -13
- package/build-module/components/meta-boxes/index.js.map +1 -1
- package/build-module/components/meta-boxes/meta-box-visibility.js +5 -8
- package/build-module/components/meta-boxes/meta-box-visibility.js.map +1 -1
- package/build-module/components/meta-boxes/meta-boxes-area/index.js +3 -4
- package/build-module/components/meta-boxes/meta-boxes-area/index.js.map +1 -1
- package/build-module/components/preferences-modal/meta-boxes-section.js +16 -23
- package/build-module/components/preferences-modal/meta-boxes-section.js.map +1 -1
- package/build-module/components/preferences-modal/options/enable-custom-fields.js +7 -9
- package/build-module/components/preferences-modal/options/enable-custom-fields.js.map +1 -1
- package/build-module/components/preferences-modal/options/enable-feature.js +12 -16
- package/build-module/components/preferences-modal/options/enable-feature.js.map +1 -1
- package/build-module/components/preferences-modal/options/enable-panel.js +10 -17
- package/build-module/components/preferences-modal/options/enable-panel.js.map +1 -1
- package/build-module/components/preferences-modal/options/enable-plugin-document-setting-panel.js +7 -10
- package/build-module/components/preferences-modal/options/enable-plugin-document-setting-panel.js.map +1 -1
- package/build-module/components/secondary-sidebar/list-view-sidebar.js +58 -44
- package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
- package/build-module/components/sidebar/discussion-panel/index.js +5 -7
- package/build-module/components/sidebar/discussion-panel/index.js.map +1 -1
- package/build-module/components/sidebar/featured-image/index.js +9 -17
- package/build-module/components/sidebar/featured-image/index.js.map +1 -1
- package/build-module/components/sidebar/page-attributes/index.js +3 -9
- package/build-module/components/sidebar/page-attributes/index.js.map +1 -1
- package/build-module/components/sidebar/plugin-document-setting-panel/index.js +20 -25
- package/build-module/components/sidebar/plugin-document-setting-panel/index.js.map +1 -1
- package/build-module/components/sidebar/plugin-post-publish-panel/index.js +12 -15
- package/build-module/components/sidebar/plugin-post-publish-panel/index.js.map +1 -1
- package/build-module/components/sidebar/plugin-post-status-info/index.js +6 -9
- package/build-module/components/sidebar/plugin-post-status-info/index.js.map +1 -1
- package/build-module/components/sidebar/plugin-pre-publish-panel/index.js +12 -15
- package/build-module/components/sidebar/plugin-pre-publish-panel/index.js.map +1 -1
- package/build-module/components/sidebar/plugin-sidebar/index.js +4 -5
- package/build-module/components/sidebar/plugin-sidebar/index.js.map +1 -1
- package/build-module/components/sidebar/post-excerpt/index.js +5 -7
- package/build-module/components/sidebar/post-excerpt/index.js.map +1 -1
- package/build-module/components/sidebar/post-schedule/index.js +16 -23
- package/build-module/components/sidebar/post-schedule/index.js.map +1 -1
- package/build-module/components/sidebar/post-status/index.js +7 -11
- package/build-module/components/sidebar/post-status/index.js.map +1 -1
- package/build-module/components/sidebar/post-taxonomies/taxonomy-panel.js +9 -15
- package/build-module/components/sidebar/post-taxonomies/taxonomy-panel.js.map +1 -1
- package/build-module/components/sidebar/post-template/create-modal.js +3 -4
- package/build-module/components/sidebar/post-template/create-modal.js.map +1 -1
- package/build-module/components/sidebar/post-template/form.js +13 -20
- package/build-module/components/sidebar/post-template/form.js.map +1 -1
- package/build-module/components/sidebar/post-template/index.js +18 -25
- package/build-module/components/sidebar/post-template/index.js.map +1 -1
- package/build-module/components/sidebar/post-url/index.js +16 -23
- package/build-module/components/sidebar/post-url/index.js.map +1 -1
- package/build-module/components/sidebar/post-visibility/index.js +26 -36
- package/build-module/components/sidebar/post-visibility/index.js.map +1 -1
- package/build-module/components/sidebar/settings-header/index.js +3 -4
- package/build-module/components/sidebar/settings-header/index.js.map +1 -1
- package/build-module/components/sidebar/template-summary/index.js +1 -1
- package/build-module/components/sidebar/template-summary/index.js.map +1 -1
- package/build-module/components/start-page-options/index.js +3 -4
- package/build-module/components/start-page-options/index.js.map +1 -1
- package/build-module/components/view-link/index.js +1 -1
- package/build-module/components/view-link/index.js.map +1 -1
- package/build-module/components/visual-editor/block-inspector-button.js +4 -5
- package/build-module/components/visual-editor/block-inspector-button.js.map +1 -1
- package/build-module/components/visual-editor/header.native.js +6 -7
- package/build-module/components/visual-editor/header.native.js.map +1 -1
- package/build-module/components/visual-editor/index.js +35 -49
- package/build-module/components/visual-editor/index.js.map +1 -1
- package/build-module/components/welcome-guide/image.js +4 -5
- package/build-module/components/welcome-guide/image.js.map +1 -1
- package/build-module/editor.js +14 -20
- package/build-module/editor.js.map +1 -1
- package/build-module/editor.native.js +3 -6
- package/build-module/editor.native.js.map +1 -1
- package/build-module/hooks/validate-multiple-use/index.js +18 -29
- package/build-module/hooks/validate-multiple-use/index.js.map +1 -1
- package/build-module/plugins/index.js +20 -23
- package/build-module/plugins/index.js.map +1 -1
- package/build-module/plugins/keyboard-shortcuts-help-menu-item/index.js +3 -4
- package/build-module/plugins/keyboard-shortcuts-help-menu-item/index.js.map +1 -1
- package/build-module/store/actions.js +60 -88
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/reducer.js +11 -43
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +11 -16
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +63 -101
- package/build-style/style.css +63 -101
- package/package.json +32 -32
- package/src/components/header/document-title/index.js +86 -0
- package/src/components/header/document-title/style.scss +61 -0
- package/src/components/header/header-toolbar/style.scss +0 -1
- package/src/components/header/index.js +4 -2
- package/src/components/header/style.scss +6 -0
- package/src/components/secondary-sidebar/list-view-sidebar.js +68 -66
- package/src/components/secondary-sidebar/style.scss +28 -31
- package/src/components/visual-editor/index.js +10 -21
- package/src/components/visual-editor/style.scss +0 -13
- package/src/style.scss +1 -1
- package/build/components/header/template-title/delete-template.js +0 -117
- package/build/components/header/template-title/delete-template.js.map +0 -1
- package/build/components/header/template-title/edit-template-title.js +0 -95
- package/build/components/header/template-title/edit-template-title.js.map +0 -1
- package/build/components/header/template-title/index.js +0 -124
- package/build/components/header/template-title/index.js.map +0 -1
- package/build/components/header/template-title/template-description.js +0 -55
- package/build/components/header/template-title/template-description.js.map +0 -1
- package/build-module/components/header/template-title/delete-template.js +0 -104
- package/build-module/components/header/template-title/delete-template.js.map +0 -1
- package/build-module/components/header/template-title/edit-template-title.js +0 -83
- package/build-module/components/header/template-title/edit-template-title.js.map +0 -1
- package/build-module/components/header/template-title/index.js +0 -105
- package/build-module/components/header/template-title/index.js.map +0 -1
- package/build-module/components/header/template-title/template-description.js +0 -45
- package/build-module/components/header/template-title/template-description.js.map +0 -1
- package/src/components/header/template-title/delete-template.js +0 -106
- package/src/components/header/template-title/edit-template-title.js +0 -78
- package/src/components/header/template-title/index.js +0 -115
- package/src/components/header/template-title/style.scss +0 -94
- package/src/components/header/template-title/template-description.js +0 -42
|
@@ -18,7 +18,7 @@ import { default as DevicePreview } from '../device-preview';
|
|
|
18
18
|
import ViewLink from '../view-link';
|
|
19
19
|
import MainDashboardButton from './main-dashboard-button';
|
|
20
20
|
import { store as editPostStore } from '../../store';
|
|
21
|
-
import
|
|
21
|
+
import DocumentTitle from './document-title';
|
|
22
22
|
|
|
23
23
|
function Header( { setEntitiesSavedStatesCallback } ) {
|
|
24
24
|
const isLargeViewport = useViewportMatch( 'large' );
|
|
@@ -70,7 +70,9 @@ function Header( { setEntitiesSavedStatesCallback } ) {
|
|
|
70
70
|
className="edit-post-header__toolbar"
|
|
71
71
|
>
|
|
72
72
|
<HeaderToolbar />
|
|
73
|
-
<
|
|
73
|
+
<div className="edit-post-header__document-title">
|
|
74
|
+
<DocumentTitle />
|
|
75
|
+
</div>
|
|
74
76
|
</motion.div>
|
|
75
77
|
<motion.div
|
|
76
78
|
variants={ slideY }
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import classnames from 'classnames';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* WordPress dependencies
|
|
8
3
|
*/
|
|
9
4
|
import { __experimentalListView as ListView } from '@wordpress/block-editor';
|
|
10
|
-
import { Button } from '@wordpress/components';
|
|
5
|
+
import { Button, TabPanel } from '@wordpress/components';
|
|
11
6
|
import {
|
|
12
7
|
useFocusOnMount,
|
|
13
8
|
useFocusReturn,
|
|
@@ -30,7 +25,9 @@ import ListViewOutline from './list-view-outline';
|
|
|
30
25
|
export default function ListViewSidebar() {
|
|
31
26
|
const { setIsListViewOpened } = useDispatch( editPostStore );
|
|
32
27
|
|
|
28
|
+
// This hook handles focus when the sidebar first renders.
|
|
33
29
|
const focusOnMountRef = useFocusOnMount( 'firstElement' );
|
|
30
|
+
// The next 2 hooks handle focus for when the sidebar closes and returning focus to the element that had focus before sidebar opened.
|
|
34
31
|
const headerFocusReturnRef = useFocusReturn();
|
|
35
32
|
const contentFocusReturnRef = useFocusReturn();
|
|
36
33
|
|
|
@@ -41,17 +38,27 @@ export default function ListViewSidebar() {
|
|
|
41
38
|
}
|
|
42
39
|
}
|
|
43
40
|
|
|
41
|
+
// Use internal state instead of a ref to make sure that the component
|
|
42
|
+
// re-renders when the dropZoneElement updates.
|
|
43
|
+
const [ dropZoneElement, setDropZoneElement ] = useState( null );
|
|
44
|
+
// Tracks our current tab.
|
|
44
45
|
const [ tab, setTab ] = useState( 'list-view' );
|
|
45
46
|
|
|
46
47
|
// This ref refers to the sidebar as a whole.
|
|
47
48
|
const sidebarRef = useRef();
|
|
48
|
-
// This ref refers to the
|
|
49
|
-
const
|
|
50
|
-
// This ref refers to the outline tab button.
|
|
51
|
-
const outlineTabRef = useRef();
|
|
49
|
+
// This ref refers to the tab panel.
|
|
50
|
+
const tabPanelRef = useRef();
|
|
52
51
|
// This ref refers to the list view application area.
|
|
53
52
|
const listViewRef = useRef();
|
|
54
53
|
|
|
54
|
+
// Must merge the refs together so focus can be handled properly in the next function.
|
|
55
|
+
const listViewContainerRef = useMergeRefs( [
|
|
56
|
+
contentFocusReturnRef,
|
|
57
|
+
focusOnMountRef,
|
|
58
|
+
listViewRef,
|
|
59
|
+
setDropZoneElement,
|
|
60
|
+
] );
|
|
61
|
+
|
|
55
62
|
/*
|
|
56
63
|
* Callback function to handle list view or outline focus.
|
|
57
64
|
*
|
|
@@ -60,9 +67,11 @@ export default function ListViewSidebar() {
|
|
|
60
67
|
* @return void
|
|
61
68
|
*/
|
|
62
69
|
function handleSidebarFocus( currentTab ) {
|
|
70
|
+
// Tab panel focus.
|
|
71
|
+
const tabPanelFocus = focus.tabbable.find( tabPanelRef.current )[ 0 ];
|
|
63
72
|
// List view tab is selected.
|
|
64
73
|
if ( currentTab === 'list-view' ) {
|
|
65
|
-
// Either focus the list view or the
|
|
74
|
+
// Either focus the list view or the tab panel. Must have a fallback because the list view does not render when there are no blocks.
|
|
66
75
|
const listViewApplicationFocus = focus.tabbable.find(
|
|
67
76
|
listViewRef.current
|
|
68
77
|
)[ 0 ];
|
|
@@ -70,11 +79,11 @@ export default function ListViewSidebar() {
|
|
|
70
79
|
listViewApplicationFocus
|
|
71
80
|
)
|
|
72
81
|
? listViewApplicationFocus
|
|
73
|
-
:
|
|
82
|
+
: tabPanelFocus;
|
|
74
83
|
listViewFocusArea.focus();
|
|
75
84
|
// Outline tab is selected.
|
|
76
85
|
} else {
|
|
77
|
-
|
|
86
|
+
tabPanelFocus.focus();
|
|
78
87
|
}
|
|
79
88
|
}
|
|
80
89
|
|
|
@@ -93,6 +102,22 @@ export default function ListViewSidebar() {
|
|
|
93
102
|
}
|
|
94
103
|
} );
|
|
95
104
|
|
|
105
|
+
/**
|
|
106
|
+
* Render tab content for a given tab name.
|
|
107
|
+
*
|
|
108
|
+
* @param {string} tabName The name of the tab to render.
|
|
109
|
+
*/
|
|
110
|
+
function renderTabContent( tabName ) {
|
|
111
|
+
if ( tabName === 'list-view' ) {
|
|
112
|
+
return (
|
|
113
|
+
<div className="edit-post-editor__list-view-panel-content">
|
|
114
|
+
<ListView dropZoneElement={ dropZoneElement } />
|
|
115
|
+
</div>
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
return <ListViewOutline />;
|
|
119
|
+
}
|
|
120
|
+
|
|
96
121
|
return (
|
|
97
122
|
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
98
123
|
<div
|
|
@@ -100,63 +125,40 @@ export default function ListViewSidebar() {
|
|
|
100
125
|
onKeyDown={ closeOnEscape }
|
|
101
126
|
ref={ sidebarRef }
|
|
102
127
|
>
|
|
103
|
-
<
|
|
104
|
-
className="edit-post-editor__document-overview-
|
|
128
|
+
<Button
|
|
129
|
+
className="edit-post-editor__document-overview-panel__close-button"
|
|
105
130
|
ref={ headerFocusReturnRef }
|
|
131
|
+
icon={ closeSmall }
|
|
132
|
+
label={ __( 'Close' ) }
|
|
133
|
+
onClick={ () => setIsListViewOpened( false ) }
|
|
134
|
+
/>
|
|
135
|
+
<TabPanel
|
|
136
|
+
className="edit-post-editor__document-overview-panel__tab-panel"
|
|
137
|
+
ref={ tabPanelRef }
|
|
138
|
+
onSelect={ ( tabName ) => setTab( tabName ) }
|
|
139
|
+
selectOnMove={ false }
|
|
140
|
+
tabs={ [
|
|
141
|
+
{
|
|
142
|
+
name: 'list-view',
|
|
143
|
+
title: 'List View',
|
|
144
|
+
className: 'edit-post-sidebar__panel-tab',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
name: 'outline',
|
|
148
|
+
title: 'Outline',
|
|
149
|
+
className: 'edit-post-sidebar__panel-tab',
|
|
150
|
+
},
|
|
151
|
+
] }
|
|
106
152
|
>
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
<li>
|
|
114
|
-
<Button
|
|
115
|
-
ref={ listViewTabRef }
|
|
116
|
-
onClick={ () => {
|
|
117
|
-
setTab( 'list-view' );
|
|
118
|
-
} }
|
|
119
|
-
className={ classnames(
|
|
120
|
-
'edit-post-sidebar__panel-tab',
|
|
121
|
-
{ 'is-active': tab === 'list-view' }
|
|
122
|
-
) }
|
|
123
|
-
aria-current={ tab === 'list-view' }
|
|
124
|
-
>
|
|
125
|
-
{ __( 'List View' ) }
|
|
126
|
-
</Button>
|
|
127
|
-
</li>
|
|
128
|
-
<li>
|
|
129
|
-
<Button
|
|
130
|
-
ref={ outlineTabRef }
|
|
131
|
-
onClick={ () => {
|
|
132
|
-
setTab( 'outline' );
|
|
133
|
-
} }
|
|
134
|
-
className={ classnames(
|
|
135
|
-
'edit-post-sidebar__panel-tab',
|
|
136
|
-
{ 'is-active': tab === 'outline' }
|
|
137
|
-
) }
|
|
138
|
-
aria-current={ tab === 'outline' }
|
|
139
|
-
>
|
|
140
|
-
{ __( 'Outline' ) }
|
|
141
|
-
</Button>
|
|
142
|
-
</li>
|
|
143
|
-
</ul>
|
|
144
|
-
</div>
|
|
145
|
-
<div
|
|
146
|
-
ref={ useMergeRefs( [
|
|
147
|
-
contentFocusReturnRef,
|
|
148
|
-
focusOnMountRef,
|
|
149
|
-
listViewRef,
|
|
150
|
-
] ) }
|
|
151
|
-
className="edit-post-editor__list-view-container"
|
|
152
|
-
>
|
|
153
|
-
{ tab === 'list-view' && (
|
|
154
|
-
<div className="edit-post-editor__list-view-panel-content">
|
|
155
|
-
<ListView />
|
|
153
|
+
{ ( currentTab ) => (
|
|
154
|
+
<div
|
|
155
|
+
className="edit-post-editor__list-view-container"
|
|
156
|
+
ref={ listViewContainerRef }
|
|
157
|
+
>
|
|
158
|
+
{ renderTabContent( currentTab.name ) }
|
|
156
159
|
</div>
|
|
157
160
|
) }
|
|
158
|
-
|
|
159
|
-
</div>
|
|
161
|
+
</TabPanel>
|
|
160
162
|
</div>
|
|
161
163
|
);
|
|
162
164
|
}
|
|
@@ -17,8 +17,29 @@
|
|
|
17
17
|
width: 350px;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
.edit-post-
|
|
21
|
-
|
|
20
|
+
.edit-post-editor__document-overview-panel__close-button {
|
|
21
|
+
position: absolute;
|
|
22
|
+
right: $grid-unit-10;
|
|
23
|
+
top: math.div($grid-unit-60 - $button-size, 2); // ( tab height - button size ) / 2
|
|
24
|
+
z-index: 1;
|
|
25
|
+
background: $white;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// The TabPanel style overrides in the following blocks should be removed when the new TabPanel is available.
|
|
29
|
+
.components-tab-panel__tabs {
|
|
30
|
+
border-bottom: $border-width solid $gray-300;
|
|
31
|
+
box-sizing: border-box;
|
|
32
|
+
display: flex;
|
|
33
|
+
width: 100%;
|
|
34
|
+
padding-right: $grid-unit-70;
|
|
35
|
+
|
|
36
|
+
.edit-post-sidebar__panel-tab {
|
|
37
|
+
width: 50%;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.components-tab-panel__tab-content {
|
|
42
|
+
height: calc(100% - #{$grid-unit-60});
|
|
22
43
|
}
|
|
23
44
|
}
|
|
24
45
|
|
|
@@ -37,34 +58,6 @@
|
|
|
37
58
|
}
|
|
38
59
|
}
|
|
39
60
|
|
|
40
|
-
.edit-post-editor__document-overview-panel-header {
|
|
41
|
-
border-bottom: $border-width solid $gray-300;
|
|
42
|
-
display: flex;
|
|
43
|
-
justify-content: space-between;
|
|
44
|
-
height: $grid-unit-60;
|
|
45
|
-
padding-left: $grid-unit-20;
|
|
46
|
-
padding-right: $grid-unit-05;
|
|
47
|
-
ul {
|
|
48
|
-
width: calc(100% - #{ $grid-unit-50 });
|
|
49
|
-
}
|
|
50
|
-
li {
|
|
51
|
-
width: 50%;
|
|
52
|
-
button {
|
|
53
|
-
width: 100%;
|
|
54
|
-
text-align: initial;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
li:only-child {
|
|
58
|
-
width: 100%;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
&.components-panel__header.edit-post-sidebar__panel-tabs {
|
|
62
|
-
.components-button.has-icon {
|
|
63
|
-
display: flex;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
61
|
.edit-post-editor__list-view-panel-content,
|
|
69
62
|
.edit-post-editor__list-view-container > .document-outline,
|
|
70
63
|
.edit-post-editor__list-view-empty-headings {
|
|
@@ -118,5 +111,9 @@
|
|
|
118
111
|
.edit-post-editor__list-view-container {
|
|
119
112
|
display: flex;
|
|
120
113
|
flex-direction: column;
|
|
121
|
-
height:
|
|
114
|
+
height: 100%;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.edit-post-editor__document-overview-panel__tab-panel {
|
|
118
|
+
height: 100%;
|
|
122
119
|
}
|
|
@@ -31,12 +31,10 @@ import {
|
|
|
31
31
|
__experimentaluseLayoutStyles as useLayoutStyles,
|
|
32
32
|
} from '@wordpress/block-editor';
|
|
33
33
|
import { useEffect, useRef, useMemo } from '@wordpress/element';
|
|
34
|
-
import {
|
|
35
|
-
import { useSelect
|
|
34
|
+
import { __unstableMotion as motion } from '@wordpress/components';
|
|
35
|
+
import { useSelect } from '@wordpress/data';
|
|
36
36
|
import { useMergeRefs } from '@wordpress/compose';
|
|
37
|
-
import {
|
|
38
|
-
import { __ } from '@wordpress/i18n';
|
|
39
|
-
import { parse } from '@wordpress/blocks';
|
|
37
|
+
import { parse, store as blocksStore } from '@wordpress/blocks';
|
|
40
38
|
import { store as coreStore } from '@wordpress/core-data';
|
|
41
39
|
|
|
42
40
|
/**
|
|
@@ -114,6 +112,7 @@ export default function VisualEditor( { styles } ) {
|
|
|
114
112
|
wrapperBlockName,
|
|
115
113
|
wrapperUniqueId,
|
|
116
114
|
isBlockBasedTheme,
|
|
115
|
+
hasV3BlocksOnly,
|
|
117
116
|
} = useSelect( ( select ) => {
|
|
118
117
|
const {
|
|
119
118
|
isFeatureActive,
|
|
@@ -123,6 +122,7 @@ export default function VisualEditor( { styles } ) {
|
|
|
123
122
|
} = select( editPostStore );
|
|
124
123
|
const { getCurrentPostId, getCurrentPostType, getEditorSettings } =
|
|
125
124
|
select( editorStore );
|
|
125
|
+
const { getBlockTypes } = select( blocksStore );
|
|
126
126
|
const _isTemplateMode = isEditingTemplate();
|
|
127
127
|
let _wrapperBlockName;
|
|
128
128
|
|
|
@@ -153,6 +153,9 @@ export default function VisualEditor( { styles } ) {
|
|
|
153
153
|
wrapperBlockName: _wrapperBlockName,
|
|
154
154
|
wrapperUniqueId: getCurrentPostId(),
|
|
155
155
|
isBlockBasedTheme: editorSettings.__unstableIsBlockBasedTheme,
|
|
156
|
+
hasV3BlocksOnly: getBlockTypes().every( ( type ) => {
|
|
157
|
+
return type.apiVersion >= 3;
|
|
158
|
+
} ),
|
|
156
159
|
};
|
|
157
160
|
}, [] );
|
|
158
161
|
const { isCleanNewPost } = useSelect( editorStore );
|
|
@@ -175,8 +178,6 @@ export default function VisualEditor( { styles } ) {
|
|
|
175
178
|
_settings.__experimentalFeatures?.useRootPaddingAwareAlignments,
|
|
176
179
|
};
|
|
177
180
|
}, [] );
|
|
178
|
-
const { clearSelectedBlock } = useDispatch( blockEditorStore );
|
|
179
|
-
const { setIsEditingTemplate } = useDispatch( editPostStore );
|
|
180
181
|
const desktopCanvasStyles = {
|
|
181
182
|
height: '100%',
|
|
182
183
|
width: '100%',
|
|
@@ -349,18 +350,6 @@ export default function VisualEditor( { styles } ) {
|
|
|
349
350
|
} }
|
|
350
351
|
ref={ blockSelectionClearerRef }
|
|
351
352
|
>
|
|
352
|
-
{ isTemplateMode && (
|
|
353
|
-
<Button
|
|
354
|
-
className="edit-post-visual-editor__exit-template-mode"
|
|
355
|
-
icon={ arrowLeft }
|
|
356
|
-
onClick={ () => {
|
|
357
|
-
clearSelectedBlock();
|
|
358
|
-
setIsEditingTemplate( false );
|
|
359
|
-
} }
|
|
360
|
-
>
|
|
361
|
-
{ __( 'Back' ) }
|
|
362
|
-
</Button>
|
|
363
|
-
) }
|
|
364
353
|
<motion.div
|
|
365
354
|
animate={ animatedStyles }
|
|
366
355
|
initial={ desktopCanvasStyles }
|
|
@@ -368,8 +357,8 @@ export default function VisualEditor( { styles } ) {
|
|
|
368
357
|
>
|
|
369
358
|
<MaybeIframe
|
|
370
359
|
shouldIframe={
|
|
371
|
-
(
|
|
372
|
-
isBlockBasedTheme &&
|
|
360
|
+
( ( hasV3BlocksOnly ||
|
|
361
|
+
( isGutenbergPlugin && isBlockBasedTheme ) ) &&
|
|
373
362
|
! hasMetaBoxes ) ||
|
|
374
363
|
isTemplateMode ||
|
|
375
364
|
deviceType === 'Tablet' ||
|
|
@@ -50,19 +50,6 @@
|
|
|
50
50
|
margin-bottom: var(--wp--style--block-gap);
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
.edit-post-visual-editor__exit-template-mode {
|
|
54
|
-
position: absolute;
|
|
55
|
-
top: $grid-unit-10;
|
|
56
|
-
left: $grid-unit-10;
|
|
57
|
-
color: $white;
|
|
58
|
-
|
|
59
|
-
&:active:not([aria-disabled="true"]),
|
|
60
|
-
&:focus:not([aria-disabled="true"]),
|
|
61
|
-
&:hover {
|
|
62
|
-
color: $gray-100;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
53
|
.edit-post-visual-editor__content-area {
|
|
67
54
|
width: 100%;
|
|
68
55
|
height: 100%;
|
package/src/style.scss
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
@import "./components/header/style.scss";
|
|
3
3
|
@import "./components/header/fullscreen-mode-close/style.scss";
|
|
4
4
|
@import "./components/header/header-toolbar/style.scss";
|
|
5
|
-
@import "./components/header/
|
|
5
|
+
@import "./components/header/document-title/style.scss";
|
|
6
6
|
@import "./components/keyboard-shortcut-help-modal/style.scss";
|
|
7
7
|
@import "./components/layout/style.scss";
|
|
8
8
|
@import "./components/block-manager/style.scss";
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = DeleteTemplate;
|
|
7
|
-
|
|
8
|
-
var _element = require("@wordpress/element");
|
|
9
|
-
|
|
10
|
-
var _i18n = require("@wordpress/i18n");
|
|
11
|
-
|
|
12
|
-
var _components = require("@wordpress/components");
|
|
13
|
-
|
|
14
|
-
var _blockEditor = require("@wordpress/block-editor");
|
|
15
|
-
|
|
16
|
-
var _data = require("@wordpress/data");
|
|
17
|
-
|
|
18
|
-
var _editor = require("@wordpress/editor");
|
|
19
|
-
|
|
20
|
-
var _coreData = require("@wordpress/core-data");
|
|
21
|
-
|
|
22
|
-
var _store = require("../../../store");
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* WordPress dependencies
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Internal dependencies
|
|
30
|
-
*/
|
|
31
|
-
function DeleteTemplate() {
|
|
32
|
-
const {
|
|
33
|
-
clearSelectedBlock
|
|
34
|
-
} = (0, _data.useDispatch)(_blockEditor.store);
|
|
35
|
-
const {
|
|
36
|
-
setIsEditingTemplate
|
|
37
|
-
} = (0, _data.useDispatch)(_store.store);
|
|
38
|
-
const {
|
|
39
|
-
getEditorSettings
|
|
40
|
-
} = (0, _data.useSelect)(_editor.store);
|
|
41
|
-
const {
|
|
42
|
-
updateEditorSettings,
|
|
43
|
-
editPost
|
|
44
|
-
} = (0, _data.useDispatch)(_editor.store);
|
|
45
|
-
const {
|
|
46
|
-
deleteEntityRecord
|
|
47
|
-
} = (0, _data.useDispatch)(_coreData.store);
|
|
48
|
-
const {
|
|
49
|
-
template
|
|
50
|
-
} = (0, _data.useSelect)(select => {
|
|
51
|
-
const {
|
|
52
|
-
isEditingTemplate,
|
|
53
|
-
getEditedPostTemplate
|
|
54
|
-
} = select(_store.store);
|
|
55
|
-
|
|
56
|
-
const _isEditing = isEditingTemplate();
|
|
57
|
-
|
|
58
|
-
return {
|
|
59
|
-
template: _isEditing ? getEditedPostTemplate() : null
|
|
60
|
-
};
|
|
61
|
-
}, []);
|
|
62
|
-
const [showConfirmDialog, setShowConfirmDialog] = (0, _element.useState)(false);
|
|
63
|
-
|
|
64
|
-
if (!template || !template.wp_id) {
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
let templateTitle = template.slug;
|
|
69
|
-
|
|
70
|
-
if (template !== null && template !== void 0 && template.title) {
|
|
71
|
-
templateTitle = template.title;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const isRevertable = template === null || template === void 0 ? void 0 : template.has_theme_file;
|
|
75
|
-
|
|
76
|
-
const onDelete = () => {
|
|
77
|
-
var _settings$availableTe;
|
|
78
|
-
|
|
79
|
-
clearSelectedBlock();
|
|
80
|
-
setIsEditingTemplate(false);
|
|
81
|
-
setShowConfirmDialog(false);
|
|
82
|
-
editPost({
|
|
83
|
-
template: ''
|
|
84
|
-
});
|
|
85
|
-
const settings = getEditorSettings();
|
|
86
|
-
const newAvailableTemplates = Object.fromEntries(Object.entries((_settings$availableTe = settings.availableTemplates) !== null && _settings$availableTe !== void 0 ? _settings$availableTe : {}).filter(_ref => {
|
|
87
|
-
let [id] = _ref;
|
|
88
|
-
return id !== template.slug;
|
|
89
|
-
}));
|
|
90
|
-
updateEditorSettings({
|
|
91
|
-
availableTemplates: newAvailableTemplates
|
|
92
|
-
});
|
|
93
|
-
deleteEntityRecord('postType', 'wp_template', template.id, {
|
|
94
|
-
throwOnError: true
|
|
95
|
-
});
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
return (0, _element.createElement)(_components.MenuGroup, {
|
|
99
|
-
className: "edit-post-template-top-area__second-menu-group"
|
|
100
|
-
}, (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.MenuItem, {
|
|
101
|
-
className: "edit-post-template-top-area__delete-template-button",
|
|
102
|
-
isDestructive: !isRevertable,
|
|
103
|
-
onClick: () => {
|
|
104
|
-
setShowConfirmDialog(true);
|
|
105
|
-
},
|
|
106
|
-
info: isRevertable ? (0, _i18n.__)('Use the template as supplied by the theme.') : undefined
|
|
107
|
-
}, isRevertable ? (0, _i18n.__)('Clear customizations') : (0, _i18n.__)('Delete template')), (0, _element.createElement)(_components.__experimentalConfirmDialog, {
|
|
108
|
-
isOpen: showConfirmDialog,
|
|
109
|
-
onConfirm: onDelete,
|
|
110
|
-
onCancel: () => {
|
|
111
|
-
setShowConfirmDialog(false);
|
|
112
|
-
}
|
|
113
|
-
}, (0, _i18n.sprintf)(
|
|
114
|
-
/* translators: %s: template name */
|
|
115
|
-
(0, _i18n.__)('Are you sure you want to delete the %s template? It may be used by other pages or posts.'), templateTitle))));
|
|
116
|
-
}
|
|
117
|
-
//# sourceMappingURL=delete-template.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-post/src/components/header/template-title/delete-template.js"],"names":["DeleteTemplate","clearSelectedBlock","blockEditorStore","setIsEditingTemplate","editPostStore","getEditorSettings","editorStore","updateEditorSettings","editPost","deleteEntityRecord","coreStore","template","select","isEditingTemplate","getEditedPostTemplate","_isEditing","showConfirmDialog","setShowConfirmDialog","wp_id","templateTitle","slug","title","isRevertable","has_theme_file","onDelete","settings","newAvailableTemplates","Object","fromEntries","entries","availableTemplates","filter","id","throwOnError","undefined"],"mappings":";;;;;;;AAaA;;AAVA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AAMA;;AAlBA;AACA;AACA;;AAaA;AACA;AACA;AAGe,SAASA,cAAT,GAA0B;AACxC,QAAM;AAAEC,IAAAA;AAAF,MAAyB,uBAAaC,kBAAb,CAA/B;AACA,QAAM;AAAEC,IAAAA;AAAF,MAA2B,uBAAaC,YAAb,CAAjC;AACA,QAAM;AAAEC,IAAAA;AAAF,MAAwB,qBAAWC,aAAX,CAA9B;AACA,QAAM;AAAEC,IAAAA,oBAAF;AAAwBC,IAAAA;AAAxB,MAAqC,uBAAaF,aAAb,CAA3C;AACA,QAAM;AAAEG,IAAAA;AAAF,MAAyB,uBAAaC,eAAb,CAA/B;AACA,QAAM;AAAEC,IAAAA;AAAF,MAAe,qBAAaC,MAAF,IAAc;AAC7C,UAAM;AAAEC,MAAAA,iBAAF;AAAqBC,MAAAA;AAArB,QACLF,MAAM,CAAER,YAAF,CADP;;AAEA,UAAMW,UAAU,GAAGF,iBAAiB,EAApC;;AACA,WAAO;AACNF,MAAAA,QAAQ,EAAEI,UAAU,GAAGD,qBAAqB,EAAxB,GAA6B;AAD3C,KAAP;AAGA,GAPoB,EAOlB,EAPkB,CAArB;AAQA,QAAM,CAAEE,iBAAF,EAAqBC,oBAArB,IAA8C,uBAAU,KAAV,CAApD;;AAEA,MAAK,CAAEN,QAAF,IAAc,CAAEA,QAAQ,CAACO,KAA9B,EAAsC;AACrC,WAAO,IAAP;AACA;;AACD,MAAIC,aAAa,GAAGR,QAAQ,CAACS,IAA7B;;AACA,MAAKT,QAAL,aAAKA,QAAL,eAAKA,QAAQ,CAAEU,KAAf,EAAuB;AACtBF,IAAAA,aAAa,GAAGR,QAAQ,CAACU,KAAzB;AACA;;AAED,QAAMC,YAAY,GAAGX,QAAH,aAAGA,QAAH,uBAAGA,QAAQ,CAAEY,cAA/B;;AAEA,QAAMC,QAAQ,GAAG,MAAM;AAAA;;AACtBvB,IAAAA,kBAAkB;AAClBE,IAAAA,oBAAoB,CAAE,KAAF,CAApB;AACAc,IAAAA,oBAAoB,CAAE,KAAF,CAApB;AAEAT,IAAAA,QAAQ,CAAE;AACTG,MAAAA,QAAQ,EAAE;AADD,KAAF,CAAR;AAGA,UAAMc,QAAQ,GAAGpB,iBAAiB,EAAlC;AACA,UAAMqB,qBAAqB,GAAGC,MAAM,CAACC,WAAP,CAC7BD,MAAM,CAACE,OAAP,0BAAgBJ,QAAQ,CAACK,kBAAzB,yEAA+C,EAA/C,EAAoDC,MAApD,CACC;AAAA,UAAE,CAAEC,EAAF,CAAF;AAAA,aAAcA,EAAE,KAAKrB,QAAQ,CAACS,IAA9B;AAAA,KADD,CAD6B,CAA9B;AAKAb,IAAAA,oBAAoB,CAAE;AACrBuB,MAAAA,kBAAkB,EAAEJ;AADC,KAAF,CAApB;AAGAjB,IAAAA,kBAAkB,CAAE,UAAF,EAAc,aAAd,EAA6BE,QAAQ,CAACqB,EAAtC,EAA0C;AAC3DC,MAAAA,YAAY,EAAE;AAD6C,KAA1C,CAAlB;AAGA,GApBD;;AAsBA,SACC,4BAAC,qBAAD;AAAW,IAAA,SAAS,EAAC;AAArB,KACC,qDACC,4BAAC,oBAAD;AACC,IAAA,SAAS,EAAC,qDADX;AAEC,IAAA,aAAa,EAAG,CAAEX,YAFnB;AAGC,IAAA,OAAO,EAAG,MAAM;AACfL,MAAAA,oBAAoB,CAAE,IAAF,CAApB;AACA,KALF;AAMC,IAAA,IAAI,EACHK,YAAY,GACT,cAAI,4CAAJ,CADS,GAETY;AATL,KAYGZ,YAAY,GACX,cAAI,sBAAJ,CADW,GAEX,cAAI,iBAAJ,CAdJ,CADD,EAiBC,4BAAC,uCAAD;AACC,IAAA,MAAM,EAAGN,iBADV;AAEC,IAAA,SAAS,EAAGQ,QAFb;AAGC,IAAA,QAAQ,EAAG,MAAM;AAChBP,MAAAA,oBAAoB,CAAE,KAAF,CAApB;AACA;AALF,KAOG;AACD;AACA,gBACC,0FADD,CAFC,EAKDE,aALC,CAPH,CAjBD,CADD,CADD;AAqCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../../store';\n\nexport default function DeleteTemplate() {\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\tconst { setIsEditingTemplate } = useDispatch( editPostStore );\n\tconst { getEditorSettings } = useSelect( editorStore );\n\tconst { updateEditorSettings, editPost } = useDispatch( editorStore );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\tconst { template } = useSelect( ( select ) => {\n\t\tconst { isEditingTemplate, getEditedPostTemplate } =\n\t\t\tselect( editPostStore );\n\t\tconst _isEditing = isEditingTemplate();\n\t\treturn {\n\t\t\ttemplate: _isEditing ? getEditedPostTemplate() : null,\n\t\t};\n\t}, [] );\n\tconst [ showConfirmDialog, setShowConfirmDialog ] = useState( false );\n\n\tif ( ! template || ! template.wp_id ) {\n\t\treturn null;\n\t}\n\tlet templateTitle = template.slug;\n\tif ( template?.title ) {\n\t\ttemplateTitle = template.title;\n\t}\n\n\tconst isRevertable = template?.has_theme_file;\n\n\tconst onDelete = () => {\n\t\tclearSelectedBlock();\n\t\tsetIsEditingTemplate( false );\n\t\tsetShowConfirmDialog( false );\n\n\t\teditPost( {\n\t\t\ttemplate: '',\n\t\t} );\n\t\tconst settings = getEditorSettings();\n\t\tconst newAvailableTemplates = Object.fromEntries(\n\t\t\tObject.entries( settings.availableTemplates ?? {} ).filter(\n\t\t\t\t( [ id ] ) => id !== template.slug\n\t\t\t)\n\t\t);\n\t\tupdateEditorSettings( {\n\t\t\tavailableTemplates: newAvailableTemplates,\n\t\t} );\n\t\tdeleteEntityRecord( 'postType', 'wp_template', template.id, {\n\t\t\tthrowOnError: true,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<MenuGroup className=\"edit-post-template-top-area__second-menu-group\">\n\t\t\t<>\n\t\t\t\t<MenuItem\n\t\t\t\t\tclassName=\"edit-post-template-top-area__delete-template-button\"\n\t\t\t\t\tisDestructive={ ! isRevertable }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowConfirmDialog( true );\n\t\t\t\t\t} }\n\t\t\t\t\tinfo={\n\t\t\t\t\t\tisRevertable\n\t\t\t\t\t\t\t? __( 'Use the template as supplied by the theme.' )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isRevertable\n\t\t\t\t\t\t? __( 'Clear customizations' )\n\t\t\t\t\t\t: __( 'Delete template' ) }\n\t\t\t\t</MenuItem>\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tisOpen={ showConfirmDialog }\n\t\t\t\t\tonConfirm={ onDelete }\n\t\t\t\t\tonCancel={ () => {\n\t\t\t\t\t\tsetShowConfirmDialog( false );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: template name */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Are you sure you want to delete the %s template? It may be used by other pages or posts.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\ttemplateTitle\n\t\t\t\t\t) }\n\t\t\t\t</ConfirmDialog>\n\t\t\t</>\n\t\t</MenuGroup>\n\t);\n}\n"]}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = EditTemplateTitle;
|
|
7
|
-
|
|
8
|
-
var _element = require("@wordpress/element");
|
|
9
|
-
|
|
10
|
-
var _i18n = require("@wordpress/i18n");
|
|
11
|
-
|
|
12
|
-
var _components = require("@wordpress/components");
|
|
13
|
-
|
|
14
|
-
var _data = require("@wordpress/data");
|
|
15
|
-
|
|
16
|
-
var _editor = require("@wordpress/editor");
|
|
17
|
-
|
|
18
|
-
var _coreData = require("@wordpress/core-data");
|
|
19
|
-
|
|
20
|
-
var _store = require("../../../store");
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* WordPress dependencies
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Internal dependencies
|
|
28
|
-
*/
|
|
29
|
-
function EditTemplateTitle() {
|
|
30
|
-
const [forceEmpty, setForceEmpty] = (0, _element.useState)(false);
|
|
31
|
-
const {
|
|
32
|
-
template
|
|
33
|
-
} = (0, _data.useSelect)(select => {
|
|
34
|
-
const {
|
|
35
|
-
getEditedPostTemplate
|
|
36
|
-
} = select(_store.store);
|
|
37
|
-
return {
|
|
38
|
-
template: getEditedPostTemplate()
|
|
39
|
-
};
|
|
40
|
-
}, []);
|
|
41
|
-
const {
|
|
42
|
-
editEntityRecord
|
|
43
|
-
} = (0, _data.useDispatch)(_coreData.store);
|
|
44
|
-
const {
|
|
45
|
-
getEditorSettings
|
|
46
|
-
} = (0, _data.useSelect)(_editor.store);
|
|
47
|
-
const {
|
|
48
|
-
updateEditorSettings
|
|
49
|
-
} = (0, _data.useDispatch)(_editor.store); // Only user-created and non-default templates can change the name.
|
|
50
|
-
|
|
51
|
-
if (!template.is_custom || template.has_theme_file) {
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
let templateTitle = (0, _i18n.__)('Default');
|
|
56
|
-
|
|
57
|
-
if (template !== null && template !== void 0 && template.title) {
|
|
58
|
-
templateTitle = template.title;
|
|
59
|
-
} else if (!!template) {
|
|
60
|
-
templateTitle = template.slug;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return (0, _element.createElement)("div", {
|
|
64
|
-
className: "edit-site-template-details__group"
|
|
65
|
-
}, (0, _element.createElement)(_components.TextControl, {
|
|
66
|
-
__nextHasNoMarginBottom: true,
|
|
67
|
-
label: (0, _i18n.__)('Title'),
|
|
68
|
-
value: forceEmpty ? '' : templateTitle,
|
|
69
|
-
help: (0, _i18n.__)('Give the template a title that indicates its purpose, e.g. "Full Width".'),
|
|
70
|
-
onChange: newTitle => {
|
|
71
|
-
var _settings$availableTe;
|
|
72
|
-
|
|
73
|
-
// Allow having the field temporarily empty while typing.
|
|
74
|
-
if (!newTitle && !forceEmpty) {
|
|
75
|
-
setForceEmpty(true);
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
setForceEmpty(false);
|
|
80
|
-
const settings = getEditorSettings();
|
|
81
|
-
const newAvailableTemplates = Object.fromEntries(Object.entries((_settings$availableTe = settings.availableTemplates) !== null && _settings$availableTe !== void 0 ? _settings$availableTe : {}).map(_ref => {
|
|
82
|
-
let [id, existingTitle] = _ref;
|
|
83
|
-
return [id, id !== template.slug ? existingTitle : newTitle];
|
|
84
|
-
}));
|
|
85
|
-
updateEditorSettings({
|
|
86
|
-
availableTemplates: newAvailableTemplates
|
|
87
|
-
});
|
|
88
|
-
editEntityRecord('postType', 'wp_template', template.id, {
|
|
89
|
-
title: newTitle
|
|
90
|
-
});
|
|
91
|
-
},
|
|
92
|
-
onBlur: () => setForceEmpty(false)
|
|
93
|
-
}));
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=edit-template-title.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-post/src/components/header/template-title/edit-template-title.js"],"names":["EditTemplateTitle","forceEmpty","setForceEmpty","template","select","getEditedPostTemplate","editPostStore","editEntityRecord","coreStore","getEditorSettings","editorStore","updateEditorSettings","is_custom","has_theme_file","templateTitle","title","slug","newTitle","settings","newAvailableTemplates","Object","fromEntries","entries","availableTemplates","map","id","existingTitle"],"mappings":";;;;;;;AAMA;;AAHA;;AACA;;AACA;;AAEA;;AACA;;AAKA;;AAbA;AACA;AACA;;AAQA;AACA;AACA;AAGe,SAASA,iBAAT,GAA6B;AAC3C,QAAM,CAAEC,UAAF,EAAcC,aAAd,IAAgC,uBAAU,KAAV,CAAtC;AACA,QAAM;AAAEC,IAAAA;AAAF,MAAe,qBAAaC,MAAF,IAAc;AAC7C,UAAM;AAAEC,MAAAA;AAAF,QAA4BD,MAAM,CAAEE,YAAF,CAAxC;AACA,WAAO;AACNH,MAAAA,QAAQ,EAAEE,qBAAqB;AADzB,KAAP;AAGA,GALoB,EAKlB,EALkB,CAArB;AAOA,QAAM;AAAEE,IAAAA;AAAF,MAAuB,uBAAaC,eAAb,CAA7B;AACA,QAAM;AAAEC,IAAAA;AAAF,MAAwB,qBAAWC,aAAX,CAA9B;AACA,QAAM;AAAEC,IAAAA;AAAF,MAA2B,uBAAaD,aAAb,CAAjC,CAX2C,CAa3C;;AACA,MAAK,CAAEP,QAAQ,CAACS,SAAX,IAAwBT,QAAQ,CAACU,cAAtC,EAAuD;AACtD,WAAO,IAAP;AACA;;AAED,MAAIC,aAAa,GAAG,cAAI,SAAJ,CAApB;;AACA,MAAKX,QAAL,aAAKA,QAAL,eAAKA,QAAQ,CAAEY,KAAf,EAAuB;AACtBD,IAAAA,aAAa,GAAGX,QAAQ,CAACY,KAAzB;AACA,GAFD,MAEO,IAAK,CAAC,CAAEZ,QAAR,EAAmB;AACzBW,IAAAA,aAAa,GAAGX,QAAQ,CAACa,IAAzB;AACA;;AAED,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,uBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,OAAJ,CAFT;AAGC,IAAA,KAAK,EAAGf,UAAU,GAAG,EAAH,GAAQa,aAH3B;AAIC,IAAA,IAAI,EAAG,cACN,0EADM,CAJR;AAOC,IAAA,QAAQ,EAAKG,QAAF,IAAgB;AAAA;;AAC1B;AACA,UAAK,CAAEA,QAAF,IAAc,CAAEhB,UAArB,EAAkC;AACjCC,QAAAA,aAAa,CAAE,IAAF,CAAb;AACA;AACA;;AACDA,MAAAA,aAAa,CAAE,KAAF,CAAb;AAEA,YAAMgB,QAAQ,GAAGT,iBAAiB,EAAlC;AACA,YAAMU,qBAAqB,GAAGC,MAAM,CAACC,WAAP,CAC7BD,MAAM,CAACE,OAAP,0BAAgBJ,QAAQ,CAACK,kBAAzB,yEAA+C,EAA/C,EAAoDC,GAApD,CACC;AAAA,YAAE,CAAEC,EAAF,EAAMC,aAAN,CAAF;AAAA,eAA6B,CAC5BD,EAD4B,EAE5BA,EAAE,KAAKtB,QAAQ,CAACa,IAAhB,GAAuBU,aAAvB,GAAuCT,QAFX,CAA7B;AAAA,OADD,CAD6B,CAA9B;AAQAN,MAAAA,oBAAoB,CAAE;AACrBY,QAAAA,kBAAkB,EAAEJ;AADC,OAAF,CAApB;AAGAZ,MAAAA,gBAAgB,CAAE,UAAF,EAAc,aAAd,EAA6BJ,QAAQ,CAACsB,EAAtC,EAA0C;AACzDV,QAAAA,KAAK,EAAEE;AADkD,OAA1C,CAAhB;AAGA,KA9BF;AA+BC,IAAA,MAAM,EAAG,MAAMf,aAAa,CAAE,KAAF;AA/B7B,IADD,CADD;AAqCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { TextControl } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../../store';\n\nexport default function EditTemplateTitle() {\n\tconst [ forceEmpty, setForceEmpty ] = useState( false );\n\tconst { template } = useSelect( ( select ) => {\n\t\tconst { getEditedPostTemplate } = select( editPostStore );\n\t\treturn {\n\t\t\ttemplate: getEditedPostTemplate(),\n\t\t};\n\t}, [] );\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst { getEditorSettings } = useSelect( editorStore );\n\tconst { updateEditorSettings } = useDispatch( editorStore );\n\n\t// Only user-created and non-default templates can change the name.\n\tif ( ! template.is_custom || template.has_theme_file ) {\n\t\treturn null;\n\t}\n\n\tlet templateTitle = __( 'Default' );\n\tif ( template?.title ) {\n\t\ttemplateTitle = template.title;\n\t} else if ( !! template ) {\n\t\ttemplateTitle = template.slug;\n\t}\n\n\treturn (\n\t\t<div className=\"edit-site-template-details__group\">\n\t\t\t<TextControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\tvalue={ forceEmpty ? '' : templateTitle }\n\t\t\t\thelp={ __(\n\t\t\t\t\t'Give the template a title that indicates its purpose, e.g. \"Full Width\".'\n\t\t\t\t) }\n\t\t\t\tonChange={ ( newTitle ) => {\n\t\t\t\t\t// Allow having the field temporarily empty while typing.\n\t\t\t\t\tif ( ! newTitle && ! forceEmpty ) {\n\t\t\t\t\t\tsetForceEmpty( true );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tsetForceEmpty( false );\n\n\t\t\t\t\tconst settings = getEditorSettings();\n\t\t\t\t\tconst newAvailableTemplates = Object.fromEntries(\n\t\t\t\t\t\tObject.entries( settings.availableTemplates ?? {} ).map(\n\t\t\t\t\t\t\t( [ id, existingTitle ] ) => [\n\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\tid !== template.slug ? existingTitle : newTitle,\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t\tupdateEditorSettings( {\n\t\t\t\t\t\tavailableTemplates: newAvailableTemplates,\n\t\t\t\t\t} );\n\t\t\t\t\teditEntityRecord( 'postType', 'wp_template', template.id, {\n\t\t\t\t\t\ttitle: newTitle,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tonBlur={ () => setForceEmpty( false ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"]}
|