@wordpress/edit-post 6.6.0 → 6.9.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 +6 -0
- package/README.md +1 -1
- package/build/components/block-manager/category.js.map +1 -1
- package/build/components/block-manager/index.js +12 -4
- package/build/components/block-manager/index.js.map +1 -1
- package/build/components/device-preview/index.js.map +1 -1
- package/build/components/editor-initialization/listener-hooks.js.map +1 -1
- package/build/components/header/fullscreen-mode-close/index.js.map +1 -1
- package/build/components/header/header-toolbar/index.js.map +1 -1
- package/build/components/header/index.js.map +1 -1
- package/build/components/header/mode-switcher/index.js.map +1 -1
- package/build/components/header/post-publish-button-or-toggle.js.map +1 -1
- package/build/components/header/template-title/delete-template.js.map +1 -1
- package/build/components/header/template-title/index.js.map +1 -1
- package/build/components/header/tools-more-menu-group/index.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/config.js +12 -0
- package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/layout/actions-panel.js.map +1 -1
- package/build/components/layout/index.js.map +1 -1
- package/build/components/layout/index.native.js.map +1 -1
- package/build/components/preferences-modal/options/enable-custom-fields.js.map +1 -1
- package/build/components/preferences-modal/options/enable-panel.js.map +1 -1
- package/build/components/preferences-modal/options/enable-publish-sidebar.js.map +1 -1
- package/build/components/secondary-sidebar/inserter-sidebar.js.map +1 -1
- package/build/components/sidebar/discussion-panel/index.js.map +1 -1
- package/build/components/sidebar/featured-image/index.js.map +1 -1
- package/build/components/sidebar/page-attributes/index.js.map +1 -1
- package/build/components/sidebar/plugin-document-setting-panel/index.js.map +1 -1
- package/build/components/sidebar/plugin-post-status-info/index.js +2 -2
- package/build/components/sidebar/plugin-post-status-info/index.js.map +1 -1
- package/build/components/sidebar/plugin-sidebar/index.js.map +1 -1
- package/build/components/sidebar/post-excerpt/index.js.map +1 -1
- package/build/components/sidebar/post-link/index.js.map +1 -1
- package/build/components/sidebar/post-schedule/index.js +14 -7
- package/build/components/sidebar/post-schedule/index.js.map +1 -1
- package/build/components/sidebar/post-status/index.js +4 -2
- package/build/components/sidebar/post-status/index.js.map +1 -1
- package/build/components/sidebar/post-template/create-modal.js +116 -0
- package/build/components/sidebar/post-template/create-modal.js.map +1 -0
- package/build/components/sidebar/post-template/form.js +123 -0
- package/build/components/sidebar/post-template/form.js.map +1 -0
- package/build/components/sidebar/post-template/index.js +123 -0
- package/build/components/sidebar/post-template/index.js.map +1 -0
- package/build/components/sidebar/settings-sidebar/index.js +1 -3
- package/build/components/sidebar/settings-sidebar/index.js.map +1 -1
- package/build/components/start-page-options/index.js +31 -13
- package/build/components/start-page-options/index.js.map +1 -1
- package/build/components/visual-editor/block-inspector-button.js +3 -7
- package/build/components/visual-editor/block-inspector-button.js.map +1 -1
- package/build/editor.js +1 -1
- package/build/editor.js.map +1 -1
- package/build/editor.native.js +9 -1
- package/build/editor.native.js.map +1 -1
- package/build/plugins/copy-content-menu-item/index.js +1 -1
- package/build/plugins/copy-content-menu-item/index.js.map +1 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/selectors.js +8 -8
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/block-manager/category.js.map +1 -1
- package/build-module/components/block-manager/index.js +13 -5
- package/build-module/components/block-manager/index.js.map +1 -1
- package/build-module/components/device-preview/index.js.map +1 -1
- package/build-module/components/editor-initialization/listener-hooks.js.map +1 -1
- package/build-module/components/header/fullscreen-mode-close/index.js.map +1 -1
- package/build-module/components/header/header-toolbar/index.js.map +1 -1
- package/build-module/components/header/index.js.map +1 -1
- package/build-module/components/header/mode-switcher/index.js.map +1 -1
- package/build-module/components/header/post-publish-button-or-toggle.js.map +1 -1
- package/build-module/components/header/template-title/delete-template.js.map +1 -1
- package/build-module/components/header/template-title/index.js.map +1 -1
- package/build-module/components/header/tools-more-menu-group/index.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/config.js +12 -0
- package/build-module/components/keyboard-shortcut-help-modal/config.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/layout/actions-panel.js.map +1 -1
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/layout/index.native.js.map +1 -1
- package/build-module/components/preferences-modal/options/enable-custom-fields.js.map +1 -1
- package/build-module/components/preferences-modal/options/enable-panel.js.map +1 -1
- package/build-module/components/preferences-modal/options/enable-publish-sidebar.js.map +1 -1
- package/build-module/components/secondary-sidebar/inserter-sidebar.js.map +1 -1
- package/build-module/components/sidebar/discussion-panel/index.js.map +1 -1
- package/build-module/components/sidebar/featured-image/index.js.map +1 -1
- package/build-module/components/sidebar/page-attributes/index.js.map +1 -1
- package/build-module/components/sidebar/plugin-document-setting-panel/index.js.map +1 -1
- package/build-module/components/sidebar/plugin-post-status-info/index.js +2 -2
- package/build-module/components/sidebar/plugin-post-status-info/index.js.map +1 -1
- package/build-module/components/sidebar/plugin-sidebar/index.js.map +1 -1
- package/build-module/components/sidebar/post-excerpt/index.js.map +1 -1
- package/build-module/components/sidebar/post-link/index.js.map +1 -1
- package/build-module/components/sidebar/post-schedule/index.js +15 -5
- package/build-module/components/sidebar/post-schedule/index.js.map +1 -1
- package/build-module/components/sidebar/post-status/index.js +3 -2
- package/build-module/components/sidebar/post-status/index.js.map +1 -1
- package/build-module/components/sidebar/post-template/create-modal.js +104 -0
- package/build-module/components/sidebar/post-template/create-modal.js.map +1 -0
- package/build-module/components/sidebar/post-template/form.js +106 -0
- package/build-module/components/sidebar/post-template/form.js.map +1 -0
- package/build-module/components/sidebar/post-template/index.js +109 -0
- package/build-module/components/sidebar/post-template/index.js.map +1 -0
- package/build-module/components/sidebar/settings-sidebar/index.js +1 -2
- package/build-module/components/sidebar/settings-sidebar/index.js.map +1 -1
- package/build-module/components/start-page-options/index.js +32 -14
- package/build-module/components/start-page-options/index.js.map +1 -1
- package/build-module/components/visual-editor/block-inspector-button.js +3 -5
- package/build-module/components/visual-editor/block-inspector-button.js.map +1 -1
- package/build-module/editor.js +2 -2
- package/build-module/editor.js.map +1 -1
- package/build-module/editor.native.js +10 -2
- package/build-module/editor.native.js.map +1 -1
- package/build-module/plugins/copy-content-menu-item/index.js +1 -1
- package/build-module/plugins/copy-content-menu-item/index.js.map +1 -1
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/selectors.js +8 -7
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +60 -49
- package/build-style/style.css +60 -49
- package/package.json +28 -28
- package/src/components/block-manager/category.js +2 -2
- package/src/components/block-manager/index.js +15 -4
- package/src/components/device-preview/index.js +4 -6
- package/src/components/editor-initialization/listener-hooks.js +2 -3
- package/src/components/header/fullscreen-mode-close/index.js +2 -3
- package/src/components/header/header-toolbar/index.js +6 -11
- package/src/components/header/index.js +6 -9
- package/src/components/header/mode-switcher/index.js +4 -4
- package/src/components/header/post-publish-button-or-toggle.js +4 -6
- package/src/components/header/template-title/delete-template.js +2 -3
- package/src/components/header/template-title/index.js +2 -3
- package/src/components/header/tools-more-menu-group/index.js +2 -3
- package/src/components/keyboard-shortcut-help-modal/config.js +8 -0
- package/src/components/keyboard-shortcut-help-modal/test/__snapshots__/index.js.snap +14 -0
- package/src/components/keyboard-shortcut-help-modal/test/index.js +2 -1
- package/src/components/keyboard-shortcuts/index.js +4 -8
- package/src/components/layout/actions-panel.js +6 -9
- package/src/components/layout/index.js +12 -21
- package/src/components/layout/index.native.js +4 -5
- package/src/components/preferences-modal/options/enable-custom-fields.js +2 -2
- package/src/components/preferences-modal/options/enable-panel.js +2 -3
- package/src/components/preferences-modal/options/enable-publish-sidebar.js +2 -3
- package/src/components/secondary-sidebar/inserter-sidebar.js +2 -3
- package/src/components/sidebar/discussion-panel/index.js +2 -3
- package/src/components/sidebar/featured-image/index.js +2 -3
- package/src/components/sidebar/page-attributes/index.js +2 -3
- package/src/components/sidebar/plugin-document-setting-panel/index.js +2 -3
- package/src/components/sidebar/plugin-post-status-info/index.js +2 -2
- package/src/components/sidebar/plugin-sidebar/index.js +2 -3
- package/src/components/sidebar/post-excerpt/index.js +2 -3
- package/src/components/sidebar/post-link/index.js +2 -3
- package/src/components/sidebar/post-schedule/index.js +8 -4
- package/src/components/sidebar/post-schedule/style.scss +19 -6
- package/src/components/sidebar/post-status/index.js +5 -4
- package/src/components/sidebar/post-template/create-modal.js +146 -0
- package/src/components/sidebar/post-template/form.js +140 -0
- package/src/components/sidebar/post-template/index.js +101 -0
- package/src/components/sidebar/post-template/style.scss +46 -0
- package/src/components/sidebar/post-visibility/style.scss +5 -4
- package/src/components/sidebar/settings-sidebar/index.js +0 -2
- package/src/components/start-page-options/index.js +48 -28
- package/src/components/visual-editor/block-inspector-button.js +4 -8
- package/src/editor.js +8 -10
- package/src/editor.native.js +13 -6
- package/src/plugins/copy-content-menu-item/index.js +1 -1
- package/src/store/actions.js +322 -295
- package/src/store/selectors.js +21 -24
- package/src/style.scss +1 -1
- package/build/components/sidebar/template/actions.js +0 -167
- package/build/components/sidebar/template/actions.js.map +0 -1
- package/build/components/sidebar/template/index.js +0 -164
- package/build/components/sidebar/template/index.js.map +0 -1
- package/build-module/components/sidebar/template/actions.js +0 -153
- package/build-module/components/sidebar/template/actions.js.map +0 -1
- package/build-module/components/sidebar/template/index.js +0 -145
- package/build-module/components/sidebar/template/index.js.map +0 -1
- package/src/components/sidebar/template/actions.js +0 -203
- package/src/components/sidebar/template/index.js +0 -164
- package/src/components/sidebar/template/style.scss +0 -43
|
@@ -18,15 +18,11 @@ import { store as editPostStore } from '../../store';
|
|
|
18
18
|
|
|
19
19
|
function KeyboardShortcuts() {
|
|
20
20
|
const { getBlockSelectionStart } = useSelect( blockEditorStore );
|
|
21
|
-
const {
|
|
22
|
-
|
|
23
|
-
isEditorSidebarOpened,
|
|
24
|
-
isListViewOpened,
|
|
25
|
-
} = useSelect( editPostStore );
|
|
21
|
+
const { getEditorMode, isEditorSidebarOpened, isListViewOpened } =
|
|
22
|
+
useSelect( editPostStore );
|
|
26
23
|
const isModeToggleDisabled = useSelect( ( select ) => {
|
|
27
|
-
const { richEditingEnabled, codeEditingEnabled } =
|
|
28
|
-
editorStore
|
|
29
|
-
).getEditorSettings();
|
|
24
|
+
const { richEditingEnabled, codeEditingEnabled } =
|
|
25
|
+
select( editorStore ).getEditorSettings();
|
|
30
26
|
return ! richEditingEnabled || ! codeEditingEnabled;
|
|
31
27
|
}, [] );
|
|
32
28
|
|
|
@@ -26,9 +26,8 @@ export default function ActionsPanel( {
|
|
|
26
26
|
closeEntitiesSavedStates,
|
|
27
27
|
isEntitiesSavedStatesOpen,
|
|
28
28
|
} ) {
|
|
29
|
-
const { closePublishSidebar, togglePublishSidebar } =
|
|
30
|
-
editPostStore
|
|
31
|
-
);
|
|
29
|
+
const { closePublishSidebar, togglePublishSidebar } =
|
|
30
|
+
useDispatch( editPostStore );
|
|
32
31
|
const {
|
|
33
32
|
publishSidebarOpened,
|
|
34
33
|
hasActiveMetaboxes,
|
|
@@ -36,14 +35,12 @@ export default function ActionsPanel( {
|
|
|
36
35
|
hasNonPostEntityChanges,
|
|
37
36
|
} = useSelect( ( select ) => {
|
|
38
37
|
return {
|
|
39
|
-
publishSidebarOpened:
|
|
40
|
-
editPostStore
|
|
41
|
-
).isPublishSidebarOpened(),
|
|
38
|
+
publishSidebarOpened:
|
|
39
|
+
select( editPostStore ).isPublishSidebarOpened(),
|
|
42
40
|
hasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(),
|
|
43
41
|
isSavingMetaBoxes: select( editPostStore ).isSavingMetaBoxes(),
|
|
44
|
-
hasNonPostEntityChanges:
|
|
45
|
-
editorStore
|
|
46
|
-
).hasNonPostEntityChanges(),
|
|
42
|
+
hasNonPostEntityChanges:
|
|
43
|
+
select( editorStore ).hasNonPostEntityChanges(),
|
|
47
44
|
};
|
|
48
45
|
}, [] );
|
|
49
46
|
|
|
@@ -66,11 +66,8 @@ const interfaceLabels = {
|
|
|
66
66
|
function Layout( { styles } ) {
|
|
67
67
|
const isMobileViewport = useViewportMatch( 'medium', '<' );
|
|
68
68
|
const isHugeViewport = useViewportMatch( 'huge', '>=' );
|
|
69
|
-
const {
|
|
70
|
-
|
|
71
|
-
closeGeneralSidebar,
|
|
72
|
-
setIsInserterOpened,
|
|
73
|
-
} = useDispatch( editPostStore );
|
|
69
|
+
const { openGeneralSidebar, closeGeneralSidebar, setIsInserterOpened } =
|
|
70
|
+
useDispatch( editPostStore );
|
|
74
71
|
const { createErrorNotice } = useDispatch( noticesStore );
|
|
75
72
|
const {
|
|
76
73
|
mode,
|
|
@@ -96,17 +93,15 @@ function Layout( { styles } ) {
|
|
|
96
93
|
|
|
97
94
|
return {
|
|
98
95
|
isTemplateMode: select( editPostStore ).isEditingTemplate(),
|
|
99
|
-
hasFixedToolbar:
|
|
100
|
-
'fixedToolbar'
|
|
101
|
-
),
|
|
96
|
+
hasFixedToolbar:
|
|
97
|
+
select( editPostStore ).isFeatureActive( 'fixedToolbar' ),
|
|
102
98
|
sidebarIsOpened: !! (
|
|
103
99
|
select( interfaceStore ).getActiveComplementaryArea(
|
|
104
100
|
editPostStore.name
|
|
105
101
|
) || select( editPostStore ).isPublishSidebarOpened()
|
|
106
102
|
),
|
|
107
|
-
isFullscreenActive:
|
|
108
|
-
'fullscreenMode'
|
|
109
|
-
),
|
|
103
|
+
isFullscreenActive:
|
|
104
|
+
select( editPostStore ).isFeatureActive( 'fullscreenMode' ),
|
|
110
105
|
isInserterOpened: select( editPostStore ).isInserterOpened(),
|
|
111
106
|
isListViewOpened: select( editPostStore ).isListViewOpened(),
|
|
112
107
|
mode: select( editPostStore ).getEditorMode(),
|
|
@@ -118,12 +113,10 @@ function Layout( { styles } ) {
|
|
|
118
113
|
nextShortcut: select(
|
|
119
114
|
keyboardShortcutsStore
|
|
120
115
|
).getAllShortcutKeyCombinations( 'core/edit-post/next-region' ),
|
|
121
|
-
showIconLabels:
|
|
122
|
-
'showIconLabels'
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
'reducedUI'
|
|
126
|
-
),
|
|
116
|
+
showIconLabels:
|
|
117
|
+
select( editPostStore ).isFeatureActive( 'showIconLabels' ),
|
|
118
|
+
hasReducedUI:
|
|
119
|
+
select( editPostStore ).isFeatureActive( 'reducedUI' ),
|
|
127
120
|
showBlockBreadcrumbs: select( editPostStore ).isFeatureActive(
|
|
128
121
|
'showBlockBreadcrumbs'
|
|
129
122
|
),
|
|
@@ -156,10 +149,8 @@ function Layout( { styles } ) {
|
|
|
156
149
|
|
|
157
150
|
// Local state for save panel.
|
|
158
151
|
// Note 'truthy' callback implies an open panel.
|
|
159
|
-
const [
|
|
160
|
-
|
|
161
|
-
setEntitiesSavedStatesCallback,
|
|
162
|
-
] = useState( false );
|
|
152
|
+
const [ entitiesSavedStatesCallback, setEntitiesSavedStatesCallback ] =
|
|
153
|
+
useState( false );
|
|
163
154
|
const closeEntitiesSavedStates = useCallback(
|
|
164
155
|
( arg ) => {
|
|
165
156
|
if ( typeof entitiesSavedStatesCallback === 'function' ) {
|
|
@@ -187,13 +187,12 @@ class Layout extends Component {
|
|
|
187
187
|
|
|
188
188
|
export default compose( [
|
|
189
189
|
withSelect( ( select ) => {
|
|
190
|
-
const { __unstableIsEditorReady: isEditorReady } =
|
|
191
|
-
editorStore
|
|
192
|
-
);
|
|
190
|
+
const { __unstableIsEditorReady: isEditorReady } =
|
|
191
|
+
select( editorStore );
|
|
193
192
|
const { getEditorMode } = select( editPostStore );
|
|
194
193
|
const { getSettings } = select( blockEditorStore );
|
|
195
|
-
const globalStyles =
|
|
196
|
-
?.color;
|
|
194
|
+
const globalStyles =
|
|
195
|
+
getSettings()?.__experimentalGlobalStylesBaseStyles?.color;
|
|
197
196
|
|
|
198
197
|
return {
|
|
199
198
|
isReady: isEditorReady(),
|
|
@@ -55,6 +55,6 @@ export function EnableCustomFieldsOption( { label, areCustomFieldsEnabled } ) {
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
export default withSelect( ( select ) => ( {
|
|
58
|
-
areCustomFieldsEnabled:
|
|
59
|
-
.enableCustomFields,
|
|
58
|
+
areCustomFieldsEnabled:
|
|
59
|
+
!! select( editorStore ).getEditorSettings().enableCustomFields,
|
|
60
60
|
} ) )( EnableCustomFieldsOption );
|
|
@@ -12,9 +12,8 @@ import { store as editPostStore } from '../../../store';
|
|
|
12
12
|
|
|
13
13
|
export default compose(
|
|
14
14
|
withSelect( ( select, { panelName } ) => {
|
|
15
|
-
const { isEditorPanelEnabled, isEditorPanelRemoved } =
|
|
16
|
-
editPostStore
|
|
17
|
-
);
|
|
15
|
+
const { isEditorPanelEnabled, isEditorPanelRemoved } =
|
|
16
|
+
select( editPostStore );
|
|
18
17
|
return {
|
|
19
18
|
isRemoved: isEditorPanelRemoved( panelName ),
|
|
20
19
|
isChecked: isEditorPanelEnabled( panelName ),
|
|
@@ -12,9 +12,8 @@ export default compose(
|
|
|
12
12
|
isChecked: select( editorStore ).isPublishSidebarEnabled(),
|
|
13
13
|
} ) ),
|
|
14
14
|
withDispatch( ( dispatch ) => {
|
|
15
|
-
const { enablePublishSidebar, disablePublishSidebar } =
|
|
16
|
-
editorStore
|
|
17
|
-
);
|
|
15
|
+
const { enablePublishSidebar, disablePublishSidebar } =
|
|
16
|
+
dispatch( editorStore );
|
|
18
17
|
return {
|
|
19
18
|
onChange: ( isEnabled ) =>
|
|
20
19
|
isEnabled ? enablePublishSidebar() : disablePublishSidebar(),
|
|
@@ -19,9 +19,8 @@ import { store as editPostStore } from '../../store';
|
|
|
19
19
|
|
|
20
20
|
export default function InserterSidebar() {
|
|
21
21
|
const { insertionPoint, showMostUsedBlocks } = useSelect( ( select ) => {
|
|
22
|
-
const { isFeatureActive, __experimentalGetInsertionPoint } =
|
|
23
|
-
editPostStore
|
|
24
|
-
);
|
|
22
|
+
const { isFeatureActive, __experimentalGetInsertionPoint } =
|
|
23
|
+
select( editPostStore );
|
|
25
24
|
return {
|
|
26
25
|
insertionPoint: __experimentalGetInsertionPoint(),
|
|
27
26
|
showMostUsedBlocks: isFeatureActive( 'mostUsedBlocks' ),
|
|
@@ -52,9 +52,8 @@ function DiscussionPanel( { isEnabled, isOpened, onTogglePanel } ) {
|
|
|
52
52
|
export default compose( [
|
|
53
53
|
withSelect( ( select ) => {
|
|
54
54
|
return {
|
|
55
|
-
isEnabled:
|
|
56
|
-
PANEL_NAME
|
|
57
|
-
),
|
|
55
|
+
isEnabled:
|
|
56
|
+
select( editPostStore ).isEditorPanelEnabled( PANEL_NAME ),
|
|
58
57
|
isOpened: select( editPostStore ).isEditorPanelOpened( PANEL_NAME ),
|
|
59
58
|
};
|
|
60
59
|
} ),
|
|
@@ -52,9 +52,8 @@ function FeaturedImage( { isEnabled, isOpened, postType, onTogglePanel } ) {
|
|
|
52
52
|
const applyWithSelect = withSelect( ( select ) => {
|
|
53
53
|
const { getEditedPostAttribute } = select( editorStore );
|
|
54
54
|
const { getPostType } = select( coreStore );
|
|
55
|
-
const { isEditorPanelEnabled, isEditorPanelOpened } =
|
|
56
|
-
editPostStore
|
|
57
|
-
);
|
|
55
|
+
const { isEditorPanelEnabled, isEditorPanelOpened } =
|
|
56
|
+
select( editPostStore );
|
|
58
57
|
|
|
59
58
|
return {
|
|
60
59
|
postType: getPostType( getEditedPostAttribute( 'type' ) ),
|
|
@@ -30,9 +30,8 @@ const PANEL_NAME = 'page-attributes';
|
|
|
30
30
|
export function PageAttributes() {
|
|
31
31
|
const { isEnabled, isOpened, postType } = useSelect( ( select ) => {
|
|
32
32
|
const { getEditedPostAttribute } = select( editorStore );
|
|
33
|
-
const { isEditorPanelEnabled, isEditorPanelOpened } =
|
|
34
|
-
editPostStore
|
|
35
|
-
);
|
|
33
|
+
const { isEditorPanelEnabled, isEditorPanelOpened } =
|
|
34
|
+
select( editPostStore );
|
|
36
35
|
const { getPostType } = select( coreStore );
|
|
37
36
|
return {
|
|
38
37
|
isEnabled: isEditorPanelEnabled( PANEL_NAME ),
|
|
@@ -114,9 +114,8 @@ const PluginDocumentSettingPanel = compose(
|
|
|
114
114
|
withSelect( ( select, { panelName } ) => {
|
|
115
115
|
return {
|
|
116
116
|
opened: select( editPostStore ).isEditorPanelOpened( panelName ),
|
|
117
|
-
isEnabled:
|
|
118
|
-
panelName
|
|
119
|
-
),
|
|
117
|
+
isEnabled:
|
|
118
|
+
select( editPostStore ).isEditorPanelEnabled( panelName ),
|
|
120
119
|
};
|
|
121
120
|
} ),
|
|
122
121
|
withDispatch( ( dispatch, { panelName } ) => ( {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Defines as extensibility slot for the
|
|
2
|
+
* Defines as extensibility slot for the Summary panel.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -10,7 +10,7 @@ import { createSlotFill, PanelRow } from '@wordpress/components';
|
|
|
10
10
|
export const { Fill, Slot } = createSlotFill( 'PluginPostStatusInfo' );
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* Renders a row in the
|
|
13
|
+
* Renders a row in the Summary panel of the Document sidebar.
|
|
14
14
|
* It should be noted that this is named and implemented around the function it serves
|
|
15
15
|
* and not its location, which may change in future iterations.
|
|
16
16
|
*
|
|
@@ -84,9 +84,8 @@ export default function PluginSidebarEditPost( { className, ...props } ) {
|
|
|
84
84
|
shortcut: select(
|
|
85
85
|
keyboardShortcutsStore
|
|
86
86
|
).getShortcutRepresentation( 'core/edit-post/toggle-sidebar' ),
|
|
87
|
-
showIconLabels:
|
|
88
|
-
'showIconLabels'
|
|
89
|
-
),
|
|
87
|
+
showIconLabels:
|
|
88
|
+
select( editPostStore ).isFeatureActive( 'showIconLabels' ),
|
|
90
89
|
};
|
|
91
90
|
}, [] );
|
|
92
91
|
return (
|
|
@@ -41,9 +41,8 @@ function PostExcerpt( { isEnabled, isOpened, onTogglePanel } ) {
|
|
|
41
41
|
export default compose( [
|
|
42
42
|
withSelect( ( select ) => {
|
|
43
43
|
return {
|
|
44
|
-
isEnabled:
|
|
45
|
-
PANEL_NAME
|
|
46
|
-
),
|
|
44
|
+
isEnabled:
|
|
45
|
+
select( editPostStore ).isEditorPanelEnabled( PANEL_NAME ),
|
|
47
46
|
isOpened: select( editPostStore ).isEditorPanelOpened( PANEL_NAME ),
|
|
48
47
|
};
|
|
49
48
|
} ),
|
|
@@ -139,9 +139,8 @@ export default compose( [
|
|
|
139
139
|
getEditedPostAttribute,
|
|
140
140
|
getEditedPostSlug,
|
|
141
141
|
} = select( editorStore );
|
|
142
|
-
const { isEditorPanelEnabled, isEditorPanelOpened } =
|
|
143
|
-
editPostStore
|
|
144
|
-
);
|
|
142
|
+
const { isEditorPanelEnabled, isEditorPanelOpened } =
|
|
143
|
+
select( editPostStore );
|
|
145
144
|
const { getPostType } = select( coreStore );
|
|
146
145
|
|
|
147
146
|
const { link } = getCurrentPost();
|
|
@@ -8,11 +8,14 @@ import {
|
|
|
8
8
|
PostSchedule as PostScheduleForm,
|
|
9
9
|
PostScheduleLabel,
|
|
10
10
|
PostScheduleCheck,
|
|
11
|
+
usePostScheduleLabel,
|
|
11
12
|
} from '@wordpress/editor';
|
|
12
13
|
|
|
13
|
-
export function PostSchedule() {
|
|
14
|
+
export default function PostSchedule() {
|
|
14
15
|
const anchorRef = useRef();
|
|
15
16
|
|
|
17
|
+
const fullLabel = usePostScheduleLabel( { full: true } );
|
|
18
|
+
|
|
16
19
|
return (
|
|
17
20
|
<PostScheduleCheck>
|
|
18
21
|
<PanelRow className="edit-post-post-schedule" ref={ anchorRef }>
|
|
@@ -28,16 +31,17 @@ export function PostSchedule() {
|
|
|
28
31
|
onClick={ onToggle }
|
|
29
32
|
aria-expanded={ isOpen }
|
|
30
33
|
variant="tertiary"
|
|
34
|
+
label={ fullLabel }
|
|
31
35
|
>
|
|
32
36
|
<PostScheduleLabel />
|
|
33
37
|
</Button>
|
|
34
38
|
</>
|
|
35
39
|
) }
|
|
36
|
-
renderContent={ () =>
|
|
40
|
+
renderContent={ ( { onClose } ) => (
|
|
41
|
+
<PostScheduleForm onClose={ onClose } />
|
|
42
|
+
) }
|
|
37
43
|
/>
|
|
38
44
|
</PanelRow>
|
|
39
45
|
</PostScheduleCheck>
|
|
40
46
|
);
|
|
41
47
|
}
|
|
42
|
-
|
|
43
|
-
export default PostSchedule;
|
|
@@ -1,20 +1,33 @@
|
|
|
1
1
|
.edit-post-post-schedule {
|
|
2
2
|
width: 100%;
|
|
3
3
|
position: relative;
|
|
4
|
-
justify-content:
|
|
4
|
+
justify-content: flex-start;
|
|
5
|
+
align-items: flex-start;
|
|
5
6
|
|
|
6
7
|
span {
|
|
7
8
|
display: block;
|
|
8
9
|
width: 45%;
|
|
10
|
+
flex-shrink: 0;
|
|
11
|
+
padding: 6px 0;
|
|
9
12
|
}
|
|
10
13
|
}
|
|
11
14
|
|
|
12
15
|
.components-button.edit-post-post-schedule__toggle {
|
|
13
|
-
text-align:
|
|
16
|
+
text-align: left;
|
|
17
|
+
white-space: normal;
|
|
18
|
+
height: auto;
|
|
19
|
+
|
|
20
|
+
// This span is added by the Popover in Tooltip when no anchorRef is
|
|
21
|
+
// provided. We set its width to 0 so that it does not cause the button text
|
|
22
|
+
// to wrap to a new line when displaying the tooltip. A better fix would be
|
|
23
|
+
// to pass anchorRef and avoid the need for a span alltogether, which is
|
|
24
|
+
// what this PR allows us to do:
|
|
25
|
+
// https://github.com/WordPress/gutenberg/pull/41268.
|
|
26
|
+
span {
|
|
27
|
+
width: 0;
|
|
28
|
+
}
|
|
14
29
|
}
|
|
15
30
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
.edit-post-post-schedule__dialog .components-popover__content {
|
|
19
|
-
padding: 0;
|
|
31
|
+
.edit-post-post-schedule__dialog .block-editor-publish-date-time-picker {
|
|
32
|
+
margin: $grid-unit-10;
|
|
20
33
|
}
|
|
@@ -19,6 +19,7 @@ import PostFormat from '../post-format';
|
|
|
19
19
|
import PostPendingStatus from '../post-pending-status';
|
|
20
20
|
import PluginPostStatusInfo from '../plugin-post-status-info';
|
|
21
21
|
import { store as editPostStore } from '../../../store';
|
|
22
|
+
import PostTemplate from '../post-template';
|
|
22
23
|
|
|
23
24
|
/**
|
|
24
25
|
* Module Constants
|
|
@@ -29,7 +30,7 @@ function PostStatus( { isOpened, onTogglePanel } ) {
|
|
|
29
30
|
return (
|
|
30
31
|
<PanelBody
|
|
31
32
|
className="edit-post-post-status"
|
|
32
|
-
title={ __( '
|
|
33
|
+
title={ __( 'Summary' ) }
|
|
33
34
|
opened={ isOpened }
|
|
34
35
|
onToggle={ onTogglePanel }
|
|
35
36
|
>
|
|
@@ -38,6 +39,7 @@ function PostStatus( { isOpened, onTogglePanel } ) {
|
|
|
38
39
|
<>
|
|
39
40
|
<PostVisibility />
|
|
40
41
|
<PostSchedule />
|
|
42
|
+
<PostTemplate />
|
|
41
43
|
<PostFormat />
|
|
42
44
|
<PostSticky />
|
|
43
45
|
<PostPendingStatus />
|
|
@@ -56,9 +58,8 @@ export default compose( [
|
|
|
56
58
|
withSelect( ( select ) => {
|
|
57
59
|
// We use isEditorPanelRemoved to hide the panel if it was programatically removed. We do
|
|
58
60
|
// not use isEditorPanelEnabled since this panel should not be disabled through the UI.
|
|
59
|
-
const { isEditorPanelRemoved, isEditorPanelOpened } =
|
|
60
|
-
editPostStore
|
|
61
|
-
);
|
|
61
|
+
const { isEditorPanelRemoved, isEditorPanelOpened } =
|
|
62
|
+
select( editPostStore );
|
|
62
63
|
return {
|
|
63
64
|
isRemoved: isEditorPanelRemoved( PANEL_NAME ),
|
|
64
65
|
isOpened: isEditorPanelOpened( PANEL_NAME ),
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useSelect, useDispatch } from '@wordpress/data';
|
|
5
|
+
import { store as editorStore } from '@wordpress/editor';
|
|
6
|
+
import { useState } from '@wordpress/element';
|
|
7
|
+
import { serialize, createBlock } from '@wordpress/blocks';
|
|
8
|
+
import {
|
|
9
|
+
Modal,
|
|
10
|
+
Flex,
|
|
11
|
+
FlexItem,
|
|
12
|
+
TextControl,
|
|
13
|
+
Button,
|
|
14
|
+
} from '@wordpress/components';
|
|
15
|
+
import { __ } from '@wordpress/i18n';
|
|
16
|
+
import { cleanForSlug } from '@wordpress/url';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Internal dependencies
|
|
20
|
+
*/
|
|
21
|
+
import { store as editPostStore } from '../../../store';
|
|
22
|
+
|
|
23
|
+
const DEFAULT_TITLE = __( 'Custom Template' );
|
|
24
|
+
|
|
25
|
+
export default function PostTemplateCreateModal( { onClose } ) {
|
|
26
|
+
const defaultBlockTemplate = useSelect(
|
|
27
|
+
( select ) =>
|
|
28
|
+
select( editorStore ).getEditorSettings().defaultBlockTemplate,
|
|
29
|
+
[]
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
const { __unstableCreateTemplate, __unstableSwitchToTemplateMode } =
|
|
33
|
+
useDispatch( editPostStore );
|
|
34
|
+
|
|
35
|
+
const [ title, setTitle ] = useState( '' );
|
|
36
|
+
|
|
37
|
+
const [ isBusy, setIsBusy ] = useState( false );
|
|
38
|
+
|
|
39
|
+
const cancel = () => {
|
|
40
|
+
setTitle( '' );
|
|
41
|
+
onClose();
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const submit = async ( event ) => {
|
|
45
|
+
event.preventDefault();
|
|
46
|
+
|
|
47
|
+
if ( isBusy ) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
setIsBusy( true );
|
|
52
|
+
|
|
53
|
+
const newTemplateContent =
|
|
54
|
+
defaultBlockTemplate ??
|
|
55
|
+
serialize( [
|
|
56
|
+
createBlock(
|
|
57
|
+
'core/group',
|
|
58
|
+
{
|
|
59
|
+
tagName: 'header',
|
|
60
|
+
layout: { inherit: true },
|
|
61
|
+
},
|
|
62
|
+
[
|
|
63
|
+
createBlock( 'core/site-title' ),
|
|
64
|
+
createBlock( 'core/site-tagline' ),
|
|
65
|
+
]
|
|
66
|
+
),
|
|
67
|
+
createBlock( 'core/separator' ),
|
|
68
|
+
createBlock(
|
|
69
|
+
'core/group',
|
|
70
|
+
{
|
|
71
|
+
tagName: 'main',
|
|
72
|
+
},
|
|
73
|
+
[
|
|
74
|
+
createBlock(
|
|
75
|
+
'core/group',
|
|
76
|
+
{
|
|
77
|
+
layout: { inherit: true },
|
|
78
|
+
},
|
|
79
|
+
[ createBlock( 'core/post-title' ) ]
|
|
80
|
+
),
|
|
81
|
+
createBlock( 'core/post-content', {
|
|
82
|
+
layout: { inherit: true },
|
|
83
|
+
} ),
|
|
84
|
+
]
|
|
85
|
+
),
|
|
86
|
+
] );
|
|
87
|
+
|
|
88
|
+
await __unstableCreateTemplate( {
|
|
89
|
+
slug: cleanForSlug( title || DEFAULT_TITLE ),
|
|
90
|
+
content: newTemplateContent,
|
|
91
|
+
title: title || DEFAULT_TITLE,
|
|
92
|
+
} );
|
|
93
|
+
|
|
94
|
+
setIsBusy( false );
|
|
95
|
+
cancel();
|
|
96
|
+
|
|
97
|
+
__unstableSwitchToTemplateMode( true );
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
return (
|
|
101
|
+
<Modal
|
|
102
|
+
title={ __( 'Create custom template' ) }
|
|
103
|
+
closeLabel={ __( 'Close' ) }
|
|
104
|
+
onRequestClose={ cancel }
|
|
105
|
+
className="edit-post-post-template__create-modal"
|
|
106
|
+
>
|
|
107
|
+
<form
|
|
108
|
+
className="edit-post-post-template__create-form"
|
|
109
|
+
onSubmit={ submit }
|
|
110
|
+
>
|
|
111
|
+
<Flex align="flex-start" gap={ 8 }>
|
|
112
|
+
<FlexItem>
|
|
113
|
+
<TextControl
|
|
114
|
+
label={ __( 'Name' ) }
|
|
115
|
+
value={ title }
|
|
116
|
+
onChange={ setTitle }
|
|
117
|
+
placeholder={ DEFAULT_TITLE }
|
|
118
|
+
disabled={ isBusy }
|
|
119
|
+
help={ __(
|
|
120
|
+
'Describe the purpose of the template, e.g. "Full Width". Custom templates can be applied to any post or page.'
|
|
121
|
+
) }
|
|
122
|
+
/>
|
|
123
|
+
</FlexItem>
|
|
124
|
+
</Flex>
|
|
125
|
+
|
|
126
|
+
<Flex justify="flex-end" expanded={ false }>
|
|
127
|
+
<FlexItem>
|
|
128
|
+
<Button variant="tertiary" onClick={ cancel }>
|
|
129
|
+
{ __( 'Cancel' ) }
|
|
130
|
+
</Button>
|
|
131
|
+
</FlexItem>
|
|
132
|
+
<FlexItem>
|
|
133
|
+
<Button
|
|
134
|
+
variant="primary"
|
|
135
|
+
type="submit"
|
|
136
|
+
isBusy={ isBusy }
|
|
137
|
+
aria-disabled={ isBusy }
|
|
138
|
+
>
|
|
139
|
+
{ __( 'Create' ) }
|
|
140
|
+
</Button>
|
|
141
|
+
</FlexItem>
|
|
142
|
+
</Flex>
|
|
143
|
+
</form>
|
|
144
|
+
</Modal>
|
|
145
|
+
);
|
|
146
|
+
}
|