@wordpress/editor 13.24.1 → 13.26.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 +8 -0
- package/LICENSE.md +1 -1
- package/build/components/document-bar/index.js +164 -0
- package/build/components/document-bar/index.js.map +1 -0
- package/build/components/document-outline/index.js +82 -1
- package/build/components/document-outline/index.js.map +1 -1
- package/build/components/document-tools/index.js +160 -0
- package/build/components/document-tools/index.js.map +1 -0
- package/build/components/editor-canvas/edit-template-blocks-notification.js +106 -0
- package/build/components/editor-canvas/edit-template-blocks-notification.js.map +1 -0
- package/build/components/editor-canvas/index.js +298 -0
- package/build/components/editor-canvas/index.js.map +1 -0
- package/build/components/entities-saved-states/index.js +3 -1
- package/build/components/entities-saved-states/index.js.map +1 -1
- package/build/components/global-keyboard-shortcuts/index.js +12 -2
- package/build/components/global-keyboard-shortcuts/index.js.map +1 -1
- package/build/components/global-keyboard-shortcuts/register-shortcuts.js +9 -0
- package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
- package/build/components/index.js +72 -8
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +9 -1
- package/build/components/index.native.js.map +1 -1
- package/build/components/inserter-sidebar/index.js +77 -0
- package/build/components/inserter-sidebar/index.js.map +1 -0
- package/build/components/list-view-sidebar/index.js +150 -0
- package/build/components/list-view-sidebar/index.js.map +1 -0
- package/build/components/list-view-sidebar/list-view-outline.js +28 -0
- package/build/components/list-view-sidebar/list-view-outline.js.map +1 -0
- package/build/components/offline-status/index.native.js +85 -0
- package/build/components/offline-status/index.native.js.map +1 -0
- package/build/components/page-attributes/panel.js +63 -0
- package/build/components/page-attributes/panel.js.map +1 -0
- package/build/components/post-discussion/panel.js +59 -0
- package/build/components/post-discussion/panel.js.map +1 -0
- package/build/components/post-excerpt/check.js +19 -0
- package/build/components/post-excerpt/check.js.map +1 -1
- package/build/components/post-excerpt/panel.js +55 -0
- package/build/components/post-excerpt/panel.js.map +1 -0
- package/build/components/post-excerpt/plugin.js +72 -0
- package/build/components/post-excerpt/plugin.js.map +1 -0
- package/build/components/post-featured-image/index.js +5 -8
- package/build/components/post-featured-image/index.js.map +1 -1
- package/build/components/post-featured-image/panel.js +60 -0
- package/build/components/post-featured-image/panel.js.map +1 -0
- package/build/components/post-last-revision/panel.js +27 -0
- package/build/components/post-last-revision/panel.js.map +1 -0
- package/build/components/post-publish-button/index.js +1 -0
- package/build/components/post-publish-button/index.js.map +1 -1
- package/build/components/post-publish-panel/maybe-upload-media.js +2 -4
- package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
- package/build/components/post-saved-state/index.js +13 -8
- package/build/components/post-saved-state/index.js.map +1 -1
- package/build/components/post-schedule/panel.js +1 -1
- package/build/components/post-schedule/panel.js.map +1 -1
- package/build/components/post-taxonomies/panel.js +68 -0
- package/build/components/post-taxonomies/panel.js.map +1 -0
- package/build/components/post-template/block-theme.js +100 -0
- package/build/components/post-template/block-theme.js.map +1 -0
- package/build/components/post-template/classic-theme.js +171 -0
- package/build/components/post-template/classic-theme.js.map +1 -0
- package/build/components/post-template/create-new-template-modal.js +98 -0
- package/build/components/post-template/create-new-template-modal.js.map +1 -0
- package/build/components/post-template/create-new-template.js +55 -0
- package/build/components/post-template/create-new-template.js.map +1 -0
- package/build/components/post-template/hooks.js +88 -0
- package/build/components/post-template/hooks.js.map +1 -0
- package/build/components/post-template/panel.js +70 -0
- package/build/components/post-template/panel.js.map +1 -0
- package/build/components/post-template/reset-default-template.js +48 -0
- package/build/components/post-template/reset-default-template.js.map +1 -0
- package/build/components/post-template/swap-template-button.js +86 -0
- package/build/components/post-template/swap-template-button.js.map +1 -0
- package/build/components/post-title/index.native.js +25 -15
- package/build/components/post-title/index.native.js.map +1 -1
- package/build/components/post-view-link/index.js +58 -0
- package/build/components/post-view-link/index.js.map +1 -0
- package/build/components/post-visibility/check.js +5 -17
- package/build/components/post-visibility/check.js.map +1 -1
- package/build/components/preview-dropdown/index.js +118 -0
- package/build/components/preview-dropdown/index.js.map +1 -0
- package/build/components/provider/index.js +24 -82
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/index.native.js +36 -8
- package/build/components/provider/index.native.js.map +1 -1
- package/build/components/provider/navigation-block-editing-mode.js +40 -0
- package/build/components/provider/navigation-block-editing-mode.js.map +1 -0
- package/build/components/provider/use-block-editor-settings.js +38 -15
- package/build/components/provider/use-block-editor-settings.js.map +1 -1
- package/build/hooks/index.js +1 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/pattern-partial-syncing.js +49 -0
- package/build/hooks/pattern-partial-syncing.js.map +1 -0
- package/build/private-apis.js +14 -0
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +161 -13
- 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/index.js +5 -0
- package/build/store/index.js.map +1 -1
- package/build/store/private-actions.js +52 -0
- package/build/store/private-actions.js.map +1 -0
- package/build/store/private-selectors.js +52 -0
- package/build/store/private-selectors.js.map +1 -0
- package/build/store/reducer.js +109 -27
- package/build/store/reducer.js.map +1 -1
- package/build/store/reducer.native.js +0 -1
- package/build/store/reducer.native.js.map +1 -1
- package/build/store/selectors.js +104 -9
- package/build/store/selectors.js.map +1 -1
- package/build/utils/media-upload/index.js +8 -2
- package/build/utils/media-upload/index.js.map +1 -1
- package/build-module/components/document-bar/index.js +156 -0
- package/build-module/components/document-bar/index.js.map +1 -0
- package/build-module/components/document-outline/index.js +82 -1
- package/build-module/components/document-outline/index.js.map +1 -1
- package/build-module/components/document-tools/index.js +151 -0
- package/build-module/components/document-tools/index.js.map +1 -0
- package/build-module/components/editor-canvas/edit-template-blocks-notification.js +100 -0
- package/build-module/components/editor-canvas/edit-template-blocks-notification.js.map +1 -0
- package/build-module/components/editor-canvas/index.js +289 -0
- package/build-module/components/editor-canvas/index.js.map +1 -0
- package/build-module/components/entities-saved-states/index.js +3 -1
- package/build-module/components/entities-saved-states/index.js.map +1 -1
- package/build-module/components/global-keyboard-shortcuts/index.js +12 -2
- package/build-module/components/global-keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +9 -0
- package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
- package/build-module/components/index.js +9 -1
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/index.native.js +1 -0
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inserter-sidebar/index.js +70 -0
- package/build-module/components/inserter-sidebar/index.js.map +1 -0
- package/build-module/components/list-view-sidebar/index.js +142 -0
- package/build-module/components/list-view-sidebar/index.js.map +1 -0
- package/build-module/components/list-view-sidebar/list-view-outline.js +20 -0
- package/build-module/components/list-view-sidebar/list-view-outline.js.map +1 -0
- package/build-module/components/offline-status/index.native.js +77 -0
- package/build-module/components/offline-status/index.native.js.map +1 -0
- package/build-module/components/page-attributes/panel.js +53 -0
- package/build-module/components/page-attributes/panel.js.map +1 -0
- package/build-module/components/post-discussion/panel.js +50 -0
- package/build-module/components/post-discussion/panel.js.map +1 -0
- package/build-module/components/post-excerpt/check.js +19 -0
- package/build-module/components/post-excerpt/check.js.map +1 -1
- package/build-module/components/post-excerpt/panel.js +48 -0
- package/build-module/components/post-excerpt/panel.js.map +1 -0
- package/build-module/components/post-excerpt/plugin.js +64 -0
- package/build-module/components/post-excerpt/plugin.js.map +1 -0
- package/build-module/components/post-featured-image/index.js +5 -8
- package/build-module/components/post-featured-image/index.js.map +1 -1
- package/build-module/components/post-featured-image/panel.js +51 -0
- package/build-module/components/post-featured-image/panel.js.map +1 -0
- package/build-module/components/post-last-revision/panel.js +18 -0
- package/build-module/components/post-last-revision/panel.js.map +1 -0
- package/build-module/components/post-publish-button/index.js +1 -0
- package/build-module/components/post-publish-button/index.js.map +1 -1
- package/build-module/components/post-publish-panel/maybe-upload-media.js +2 -4
- package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
- package/build-module/components/post-saved-state/index.js +13 -8
- package/build-module/components/post-saved-state/index.js.map +1 -1
- package/build-module/components/post-schedule/panel.js +1 -1
- package/build-module/components/post-schedule/panel.js.map +1 -1
- package/build-module/components/post-taxonomies/panel.js +59 -0
- package/build-module/components/post-taxonomies/panel.js.map +1 -0
- package/build-module/components/post-template/block-theme.js +92 -0
- package/build-module/components/post-template/block-theme.js.map +1 -0
- package/build-module/components/post-template/classic-theme.js +162 -0
- package/build-module/components/post-template/classic-theme.js.map +1 -0
- package/build-module/components/post-template/create-new-template-modal.js +91 -0
- package/build-module/components/post-template/create-new-template-modal.js.map +1 -0
- package/build-module/components/post-template/create-new-template.js +47 -0
- package/build-module/components/post-template/create-new-template.js.map +1 -0
- package/build-module/components/post-template/hooks.js +78 -0
- package/build-module/components/post-template/hooks.js.map +1 -0
- package/build-module/components/post-template/panel.js +62 -0
- package/build-module/components/post-template/panel.js.map +1 -0
- package/build-module/components/post-template/reset-default-template.js +41 -0
- package/build-module/components/post-template/reset-default-template.js.map +1 -0
- package/build-module/components/post-template/swap-template-button.js +79 -0
- package/build-module/components/post-template/swap-template-button.js.map +1 -0
- package/build-module/components/post-title/index.native.js +26 -16
- package/build-module/components/post-title/index.native.js.map +1 -1
- package/build-module/components/post-view-link/index.js +51 -0
- package/build-module/components/post-view-link/index.js.map +1 -0
- package/build-module/components/post-visibility/check.js +6 -16
- package/build-module/components/post-visibility/check.js.map +1 -1
- package/build-module/components/preview-dropdown/index.js +110 -0
- package/build-module/components/preview-dropdown/index.js.map +1 -0
- package/build-module/components/provider/index.js +25 -83
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/index.native.js +37 -9
- package/build-module/components/provider/index.native.js.map +1 -1
- package/build-module/components/provider/navigation-block-editing-mode.js +34 -0
- package/build-module/components/provider/navigation-block-editing-mode.js.map +1 -0
- package/build-module/components/provider/use-block-editor-settings.js +38 -15
- package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
- package/build-module/hooks/index.js +1 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/pattern-partial-syncing.js +46 -0
- package/build-module/hooks/pattern-partial-syncing.js.map +1 -0
- package/build-module/private-apis.js +14 -0
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +147 -9
- 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/index.js +5 -0
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/private-actions.js +44 -0
- package/build-module/store/private-actions.js.map +1 -0
- package/build-module/store/private-selectors.js +43 -0
- package/build-module/store/private-selectors.js.map +1 -0
- package/build-module/store/reducer.js +103 -26
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/reducer.native.js +1 -2
- package/build-module/store/reducer.native.js.map +1 -1
- package/build-module/store/selectors.js +93 -6
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/media-upload/index.js +8 -2
- package/build-module/utils/media-upload/index.js.map +1 -1
- package/build-style/style-rtl.css +433 -0
- package/build-style/style.css +433 -0
- package/package.json +32 -31
- package/src/components/document-bar/index.js +193 -0
- package/src/components/document-bar/style.scss +130 -0
- package/src/components/document-outline/index.js +48 -1
- package/src/components/document-outline/style.scss +12 -0
- package/src/components/document-tools/index.js +177 -0
- package/src/components/document-tools/style.scss +98 -0
- package/src/components/editor-canvas/edit-template-blocks-notification.js +108 -0
- package/src/components/editor-canvas/index.js +386 -0
- package/src/components/editor-canvas/style.scss +5 -0
- package/src/components/entities-saved-states/index.js +3 -1
- package/src/components/entities-saved-states/style.scss +4 -0
- package/src/components/global-keyboard-shortcuts/index.js +12 -2
- package/src/components/global-keyboard-shortcuts/register-shortcuts.js +10 -0
- package/src/components/index.js +9 -1
- package/src/components/index.native.js +1 -0
- package/src/components/inserter-sidebar/index.js +73 -0
- package/src/components/inserter-sidebar/style.scss +22 -0
- package/src/components/list-view-sidebar/index.js +169 -0
- package/src/components/list-view-sidebar/list-view-outline.js +37 -0
- package/src/components/list-view-sidebar/style.scss +84 -0
- package/src/components/offline-status/index.native.js +101 -0
- package/src/components/offline-status/style.native.scss +28 -0
- package/src/components/offline-status/test/index.native.js +108 -0
- package/src/components/page-attributes/panel.js +62 -0
- package/src/components/post-discussion/panel.js +57 -0
- package/src/components/post-excerpt/check.js +18 -0
- package/src/components/post-excerpt/panel.js +57 -0
- package/src/components/post-excerpt/plugin.js +61 -0
- package/src/components/post-excerpt/test/plugin.js +36 -0
- package/src/components/post-featured-image/index.js +3 -7
- package/src/components/post-featured-image/panel.js +55 -0
- package/src/components/post-last-revision/panel.js +22 -0
- package/src/components/post-last-revision/style.scss +10 -0
- package/src/components/post-publish-button/index.js +1 -0
- package/src/components/post-publish-panel/maybe-upload-media.js +3 -8
- package/src/components/post-saved-state/index.js +9 -8
- package/src/components/post-saved-state/test/__snapshots__/index.js.snap +2 -2
- package/src/components/post-schedule/panel.js +1 -1
- package/src/components/post-taxonomies/panel.js +66 -0
- package/src/components/post-template/block-theme.js +110 -0
- package/src/components/post-template/classic-theme.js +213 -0
- package/src/components/post-template/create-new-template-modal.js +139 -0
- package/src/components/post-template/create-new-template.js +50 -0
- package/src/components/post-template/hooks.js +95 -0
- package/src/components/post-template/panel.js +66 -0
- package/src/components/post-template/reset-default-template.js +43 -0
- package/src/components/post-template/style.scss +52 -0
- package/src/components/post-template/swap-template-button.js +86 -0
- package/src/components/post-title/index.native.js +32 -18
- package/src/components/post-title/style.scss +1 -0
- package/src/components/post-title/test/__snapshots__/index.native.js.snap +25 -0
- package/src/components/post-title/test/index.native.js +78 -0
- package/src/components/post-view-link/index.js +47 -0
- package/src/components/post-visibility/check.js +10 -15
- package/src/components/post-visibility/test/check.js +24 -13
- package/src/components/preview-dropdown/index.js +133 -0
- package/src/components/preview-dropdown/style.scss +5 -0
- package/src/components/provider/index.js +28 -118
- package/src/components/provider/index.native.js +55 -14
- package/src/components/provider/navigation-block-editing-mode.js +37 -0
- package/src/components/provider/use-block-editor-settings.js +42 -17
- package/src/hooks/index.js +1 -0
- package/src/hooks/pattern-partial-syncing.js +73 -0
- package/src/private-apis.js +14 -0
- package/src/store/actions.js +160 -9
- package/src/store/defaults.js +1 -0
- package/src/store/index.js +5 -0
- package/src/store/private-actions.js +61 -0
- package/src/store/private-selectors.js +51 -0
- package/src/store/reducer.js +103 -26
- package/src/store/reducer.native.js +0 -2
- package/src/store/selectors.js +144 -42
- package/src/store/test/actions.js +56 -0
- package/src/store/test/reducer.js +98 -0
- package/src/store/test/selectors.js +137 -147
- package/src/style.scss +7 -0
- package/src/utils/media-upload/index.js +9 -2
- package/build/components/post-template/index.js +0 -66
- package/build/components/post-template/index.js.map +0 -1
- package/build-module/components/post-template/index.js +0 -57
- package/build-module/components/post-template/index.js.map +0 -1
- package/src/components/post-template/index.js +0 -64
package/src/store/selectors.js
CHANGED
|
@@ -205,6 +205,17 @@ export function getCurrentPostId( state ) {
|
|
|
205
205
|
return state.postId;
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
+
/**
|
|
209
|
+
* Returns the template ID currently being rendered/edited
|
|
210
|
+
*
|
|
211
|
+
* @param {Object} state Global application state.
|
|
212
|
+
*
|
|
213
|
+
* @return {string?} Template ID.
|
|
214
|
+
*/
|
|
215
|
+
export function getCurrentTemplateId( state ) {
|
|
216
|
+
return state.templateId;
|
|
217
|
+
}
|
|
218
|
+
|
|
208
219
|
/**
|
|
209
220
|
* Returns the number of revisions of the post currently being edited.
|
|
210
221
|
*
|
|
@@ -819,54 +830,54 @@ export function getEditedPostPreviewLink( state ) {
|
|
|
819
830
|
* is a single block within the post and it is of a type known to match a
|
|
820
831
|
* default post format. Returns null if the format cannot be determined.
|
|
821
832
|
*
|
|
822
|
-
* @param {Object} state Global application state.
|
|
823
|
-
*
|
|
824
833
|
* @return {?string} Suggested post format.
|
|
825
834
|
*/
|
|
826
|
-
export
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
835
|
+
export const getSuggestedPostFormat = createRegistrySelector(
|
|
836
|
+
( select ) => () => {
|
|
837
|
+
const blocks = select( blockEditorStore ).getBlocks();
|
|
838
|
+
|
|
839
|
+
if ( blocks.length > 2 ) return null;
|
|
840
|
+
|
|
841
|
+
let name;
|
|
842
|
+
// If there is only one block in the content of the post grab its name
|
|
843
|
+
// so we can derive a suitable post format from it.
|
|
844
|
+
if ( blocks.length === 1 ) {
|
|
845
|
+
name = blocks[ 0 ].name;
|
|
846
|
+
// Check for core/embed `video` and `audio` eligible suggestions.
|
|
847
|
+
if ( name === 'core/embed' ) {
|
|
848
|
+
const provider = blocks[ 0 ].attributes?.providerNameSlug;
|
|
849
|
+
if ( [ 'youtube', 'vimeo' ].includes( provider ) ) {
|
|
850
|
+
name = 'core/video';
|
|
851
|
+
} else if ( [ 'spotify', 'soundcloud' ].includes( provider ) ) {
|
|
852
|
+
name = 'core/audio';
|
|
853
|
+
}
|
|
843
854
|
}
|
|
844
855
|
}
|
|
845
|
-
}
|
|
846
856
|
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
857
|
+
// If there are two blocks in the content and the last one is a text blocks
|
|
858
|
+
// grab the name of the first one to also suggest a post format from it.
|
|
859
|
+
if ( blocks.length === 2 && blocks[ 1 ].name === 'core/paragraph' ) {
|
|
860
|
+
name = blocks[ 0 ].name;
|
|
861
|
+
}
|
|
852
862
|
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
863
|
+
// We only convert to default post formats in core.
|
|
864
|
+
switch ( name ) {
|
|
865
|
+
case 'core/image':
|
|
866
|
+
return 'image';
|
|
867
|
+
case 'core/quote':
|
|
868
|
+
case 'core/pullquote':
|
|
869
|
+
return 'quote';
|
|
870
|
+
case 'core/gallery':
|
|
871
|
+
return 'gallery';
|
|
872
|
+
case 'core/video':
|
|
873
|
+
return 'video';
|
|
874
|
+
case 'core/audio':
|
|
875
|
+
return 'audio';
|
|
876
|
+
default:
|
|
877
|
+
return null;
|
|
878
|
+
}
|
|
868
879
|
}
|
|
869
|
-
|
|
880
|
+
);
|
|
870
881
|
|
|
871
882
|
/**
|
|
872
883
|
* Returns the content of the post being edited.
|
|
@@ -1114,6 +1125,64 @@ export const getEditorBlocks = createSelector(
|
|
|
1114
1125
|
]
|
|
1115
1126
|
);
|
|
1116
1127
|
|
|
1128
|
+
/**
|
|
1129
|
+
* Returns true if the given panel was programmatically removed, or false otherwise.
|
|
1130
|
+
* All panels are not removed by default.
|
|
1131
|
+
*
|
|
1132
|
+
* @param {Object} state Global application state.
|
|
1133
|
+
* @param {string} panelName A string that identifies the panel.
|
|
1134
|
+
*
|
|
1135
|
+
* @return {boolean} Whether or not the panel is removed.
|
|
1136
|
+
*/
|
|
1137
|
+
export function isEditorPanelRemoved( state, panelName ) {
|
|
1138
|
+
return state.removedPanels.includes( panelName );
|
|
1139
|
+
}
|
|
1140
|
+
|
|
1141
|
+
/**
|
|
1142
|
+
* Returns true if the given panel is enabled, or false otherwise. Panels are
|
|
1143
|
+
* enabled by default.
|
|
1144
|
+
*
|
|
1145
|
+
* @param {Object} state Global application state.
|
|
1146
|
+
* @param {string} panelName A string that identifies the panel.
|
|
1147
|
+
*
|
|
1148
|
+
* @return {boolean} Whether or not the panel is enabled.
|
|
1149
|
+
*/
|
|
1150
|
+
export const isEditorPanelEnabled = createRegistrySelector(
|
|
1151
|
+
( select ) => ( state, panelName ) => {
|
|
1152
|
+
// For backward compatibility, we check edit-post
|
|
1153
|
+
// even though now this is in "editor" package.
|
|
1154
|
+
const inactivePanels = select( preferencesStore ).get(
|
|
1155
|
+
'core',
|
|
1156
|
+
'inactivePanels'
|
|
1157
|
+
);
|
|
1158
|
+
return (
|
|
1159
|
+
! isEditorPanelRemoved( state, panelName ) &&
|
|
1160
|
+
! inactivePanels?.includes( panelName )
|
|
1161
|
+
);
|
|
1162
|
+
}
|
|
1163
|
+
);
|
|
1164
|
+
|
|
1165
|
+
/**
|
|
1166
|
+
* Returns true if the given panel is open, or false otherwise. Panels are
|
|
1167
|
+
* closed by default.
|
|
1168
|
+
*
|
|
1169
|
+
* @param {Object} state Global application state.
|
|
1170
|
+
* @param {string} panelName A string that identifies the panel.
|
|
1171
|
+
*
|
|
1172
|
+
* @return {boolean} Whether or not the panel is open.
|
|
1173
|
+
*/
|
|
1174
|
+
export const isEditorPanelOpened = createRegistrySelector(
|
|
1175
|
+
( select ) => ( state, panelName ) => {
|
|
1176
|
+
// For backward compatibility, we check edit-post
|
|
1177
|
+
// even though now this is in "editor" package.
|
|
1178
|
+
const openPanels = select( preferencesStore ).get(
|
|
1179
|
+
'core',
|
|
1180
|
+
'openPanels'
|
|
1181
|
+
);
|
|
1182
|
+
return !! openPanels?.includes( panelName );
|
|
1183
|
+
}
|
|
1184
|
+
);
|
|
1185
|
+
|
|
1117
1186
|
/**
|
|
1118
1187
|
* A block selection object.
|
|
1119
1188
|
*
|
|
@@ -1174,7 +1243,7 @@ export function getEditorSelection( state ) {
|
|
|
1174
1243
|
* @return {boolean} is Ready.
|
|
1175
1244
|
*/
|
|
1176
1245
|
export function __unstableIsEditorReady( state ) {
|
|
1177
|
-
return state.
|
|
1246
|
+
return !! state.postId;
|
|
1178
1247
|
}
|
|
1179
1248
|
|
|
1180
1249
|
/**
|
|
@@ -1199,6 +1268,39 @@ export function getRenderingMode( state ) {
|
|
|
1199
1268
|
return state.renderingMode;
|
|
1200
1269
|
}
|
|
1201
1270
|
|
|
1271
|
+
/**
|
|
1272
|
+
* Returns the current editing canvas device type.
|
|
1273
|
+
*
|
|
1274
|
+
* @param {Object} state Global application state.
|
|
1275
|
+
*
|
|
1276
|
+
* @return {string} Device type.
|
|
1277
|
+
*/
|
|
1278
|
+
export function getDeviceType( state ) {
|
|
1279
|
+
return state.deviceType;
|
|
1280
|
+
}
|
|
1281
|
+
|
|
1282
|
+
/**
|
|
1283
|
+
* Returns true if the list view is opened.
|
|
1284
|
+
*
|
|
1285
|
+
* @param {Object} state Global application state.
|
|
1286
|
+
*
|
|
1287
|
+
* @return {boolean} Whether the list view is opened.
|
|
1288
|
+
*/
|
|
1289
|
+
export function isListViewOpened( state ) {
|
|
1290
|
+
return state.listViewPanel;
|
|
1291
|
+
}
|
|
1292
|
+
|
|
1293
|
+
/**
|
|
1294
|
+
* Returns true if the inserter is opened.
|
|
1295
|
+
*
|
|
1296
|
+
* @param {Object} state Global application state.
|
|
1297
|
+
*
|
|
1298
|
+
* @return {boolean} Whether the inserter is opened.
|
|
1299
|
+
*/
|
|
1300
|
+
export function isInserterOpened( state ) {
|
|
1301
|
+
return !! state.blockInserterPanel;
|
|
1302
|
+
}
|
|
1303
|
+
|
|
1202
1304
|
/*
|
|
1203
1305
|
* Backward compatibility
|
|
1204
1306
|
*/
|
|
@@ -432,4 +432,60 @@ describe( 'Editor actions', () => {
|
|
|
432
432
|
).toBe( false );
|
|
433
433
|
} );
|
|
434
434
|
} );
|
|
435
|
+
|
|
436
|
+
describe( 'toggleEditorPanelEnabled', () => {
|
|
437
|
+
it( 'toggles panels to be enabled and not enabled', () => {
|
|
438
|
+
const registry = createRegistryWithStores();
|
|
439
|
+
|
|
440
|
+
// This will switch it off, since the default is on.
|
|
441
|
+
registry
|
|
442
|
+
.dispatch( editorStore )
|
|
443
|
+
.toggleEditorPanelEnabled( 'control-panel' );
|
|
444
|
+
|
|
445
|
+
expect(
|
|
446
|
+
registry
|
|
447
|
+
.select( editorStore )
|
|
448
|
+
.isEditorPanelEnabled( 'control-panel' )
|
|
449
|
+
).toBe( false );
|
|
450
|
+
|
|
451
|
+
// Switch it on again.
|
|
452
|
+
registry
|
|
453
|
+
.dispatch( editorStore )
|
|
454
|
+
.toggleEditorPanelEnabled( 'control-panel' );
|
|
455
|
+
|
|
456
|
+
expect(
|
|
457
|
+
registry
|
|
458
|
+
.select( editorStore )
|
|
459
|
+
.isEditorPanelEnabled( 'control-panel' )
|
|
460
|
+
).toBe( true );
|
|
461
|
+
} );
|
|
462
|
+
} );
|
|
463
|
+
|
|
464
|
+
describe( 'toggleEditorPanelOpened', () => {
|
|
465
|
+
it( 'toggles panels open and closed', () => {
|
|
466
|
+
const registry = createRegistryWithStores();
|
|
467
|
+
|
|
468
|
+
// This will open it, since the default is closed.
|
|
469
|
+
registry
|
|
470
|
+
.dispatch( editorStore )
|
|
471
|
+
.toggleEditorPanelOpened( 'control-panel' );
|
|
472
|
+
|
|
473
|
+
expect(
|
|
474
|
+
registry
|
|
475
|
+
.select( editorStore )
|
|
476
|
+
.isEditorPanelOpened( 'control-panel' )
|
|
477
|
+
).toBe( true );
|
|
478
|
+
|
|
479
|
+
// Close it.
|
|
480
|
+
registry
|
|
481
|
+
.dispatch( editorStore )
|
|
482
|
+
.toggleEditorPanelOpened( 'control-panel' );
|
|
483
|
+
|
|
484
|
+
expect(
|
|
485
|
+
registry
|
|
486
|
+
.select( editorStore )
|
|
487
|
+
.isEditorPanelOpened( 'control-panel' )
|
|
488
|
+
).toBe( false );
|
|
489
|
+
} );
|
|
490
|
+
} );
|
|
435
491
|
} );
|
|
@@ -14,7 +14,11 @@ import {
|
|
|
14
14
|
saving,
|
|
15
15
|
postSavingLock,
|
|
16
16
|
postAutosavingLock,
|
|
17
|
+
removedPanels,
|
|
18
|
+
blockInserterPanel,
|
|
19
|
+
listViewPanel,
|
|
17
20
|
} from '../reducer';
|
|
21
|
+
import { setIsInserterOpened } from '../actions';
|
|
18
22
|
|
|
19
23
|
describe( 'state', () => {
|
|
20
24
|
describe( 'hasSameKeys()', () => {
|
|
@@ -264,4 +268,98 @@ describe( 'state', () => {
|
|
|
264
268
|
expect( state ).toEqual( {} );
|
|
265
269
|
} );
|
|
266
270
|
} );
|
|
271
|
+
|
|
272
|
+
describe( 'removedPanels', () => {
|
|
273
|
+
it( 'should remove panel', () => {
|
|
274
|
+
const original = deepFreeze( [] );
|
|
275
|
+
const state = removedPanels( original, {
|
|
276
|
+
type: 'REMOVE_PANEL',
|
|
277
|
+
panelName: 'post-status',
|
|
278
|
+
} );
|
|
279
|
+
expect( state ).toEqual( [ 'post-status' ] );
|
|
280
|
+
} );
|
|
281
|
+
|
|
282
|
+
it( 'should not remove already removed panel', () => {
|
|
283
|
+
const original = deepFreeze( [ 'post-status' ] );
|
|
284
|
+
const state = removedPanels( original, {
|
|
285
|
+
type: 'REMOVE_PANEL',
|
|
286
|
+
panelName: 'post-status',
|
|
287
|
+
} );
|
|
288
|
+
expect( state ).toBe( original );
|
|
289
|
+
} );
|
|
290
|
+
} );
|
|
291
|
+
|
|
292
|
+
describe( 'blockInserterPanel()', () => {
|
|
293
|
+
it( 'should apply default state', () => {
|
|
294
|
+
expect( blockInserterPanel( undefined, {} ) ).toEqual( false );
|
|
295
|
+
} );
|
|
296
|
+
|
|
297
|
+
it( 'should default to returning the same state', () => {
|
|
298
|
+
expect( blockInserterPanel( true, {} ) ).toBe( true );
|
|
299
|
+
} );
|
|
300
|
+
|
|
301
|
+
it( 'should set the open state of the inserter panel', () => {
|
|
302
|
+
expect(
|
|
303
|
+
blockInserterPanel( false, setIsInserterOpened( true ) )
|
|
304
|
+
).toBe( true );
|
|
305
|
+
expect(
|
|
306
|
+
blockInserterPanel( true, setIsInserterOpened( false ) )
|
|
307
|
+
).toBe( false );
|
|
308
|
+
} );
|
|
309
|
+
|
|
310
|
+
it( 'should close the inserter when opening the list view panel', () => {
|
|
311
|
+
expect(
|
|
312
|
+
blockInserterPanel( true, {
|
|
313
|
+
type: 'SET_IS_LIST_VIEW_OPENED',
|
|
314
|
+
isOpen: true,
|
|
315
|
+
} )
|
|
316
|
+
).toBe( false );
|
|
317
|
+
} );
|
|
318
|
+
|
|
319
|
+
it( 'should not change the state when closing the list view panel', () => {
|
|
320
|
+
expect(
|
|
321
|
+
blockInserterPanel( true, {
|
|
322
|
+
type: 'SET_IS_LIST_VIEW_OPENED',
|
|
323
|
+
isOpen: false,
|
|
324
|
+
} )
|
|
325
|
+
).toBe( true );
|
|
326
|
+
} );
|
|
327
|
+
} );
|
|
328
|
+
|
|
329
|
+
describe( 'listViewPanel()', () => {
|
|
330
|
+
it( 'should apply default state', () => {
|
|
331
|
+
expect( listViewPanel( undefined, {} ) ).toEqual( false );
|
|
332
|
+
} );
|
|
333
|
+
|
|
334
|
+
it( 'should default to returning the same state', () => {
|
|
335
|
+
expect( listViewPanel( true, {} ) ).toBe( true );
|
|
336
|
+
} );
|
|
337
|
+
|
|
338
|
+
it( 'should set the open state of the list view panel', () => {
|
|
339
|
+
expect(
|
|
340
|
+
listViewPanel( false, {
|
|
341
|
+
type: 'SET_IS_LIST_VIEW_OPENED',
|
|
342
|
+
isOpen: true,
|
|
343
|
+
} )
|
|
344
|
+
).toBe( true );
|
|
345
|
+
expect(
|
|
346
|
+
listViewPanel( true, {
|
|
347
|
+
type: 'SET_IS_LIST_VIEW_OPENED',
|
|
348
|
+
isOpen: false,
|
|
349
|
+
} )
|
|
350
|
+
).toBe( false );
|
|
351
|
+
} );
|
|
352
|
+
|
|
353
|
+
it( 'should close the list view when opening the inserter panel', () => {
|
|
354
|
+
expect( listViewPanel( true, setIsInserterOpened( true ) ) ).toBe(
|
|
355
|
+
false
|
|
356
|
+
);
|
|
357
|
+
} );
|
|
358
|
+
|
|
359
|
+
it( 'should not change the state when closing the inserter panel', () => {
|
|
360
|
+
expect( listViewPanel( true, setIsInserterOpened( false ) ) ).toBe(
|
|
361
|
+
true
|
|
362
|
+
);
|
|
363
|
+
} );
|
|
364
|
+
} );
|
|
267
365
|
} );
|