From ccb12e1a9303616cdcad8a9ac97c037db545f1e0 Mon Sep 17 00:00:00 2001 From: Marcus Kazmierczak Date: Thu, 16 Jul 2020 11:20:42 -0700 Subject: [PATCH] Switch disable to block-editor store --- packages/block-editor/README.md | 1 + packages/block-editor/src/store/defaults.js | 4 +++ packages/block-library/src/image/image.js | 31 +++++++++++-------- .../editor/src/components/provider/index.js | 1 + 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/packages/block-editor/README.md b/packages/block-editor/README.md index f4b164a9a58e9..746b38a1d4082 100644 --- a/packages/block-editor/README.md +++ b/packages/block-editor/README.md @@ -481,6 +481,7 @@ _Properties_ - _disableCustomColors_ `boolean`: Whether or not the custom colors are disabled - _fontSizes_ `Array`: Available font sizes - _disableCustomFontSizes_ `boolean`: Whether or not the custom font sizes are disabled +- _disableImageEditor_ `boolean`: Whether or not the Image Editor is disabled. - _imageSizes_ `Array`: Available image sizes - _maxWidth_ `number`: Max width to constraint resizing - _allowedBlockTypes_ `(boolean|Array)`: Allowed block types diff --git a/packages/block-editor/src/store/defaults.js b/packages/block-editor/src/store/defaults.js index 35865c8680cde..ba4358f89761a 100644 --- a/packages/block-editor/src/store/defaults.js +++ b/packages/block-editor/src/store/defaults.js @@ -17,6 +17,7 @@ export const PREFERENCES_DEFAULTS = { * @property {boolean} disableCustomColors Whether or not the custom colors are disabled * @property {Array} fontSizes Available font sizes * @property {boolean} disableCustomFontSizes Whether or not the custom font sizes are disabled + * @property {boolean} disableImageEditor Whether or not the Image Editor is disabled. * @property {Array} imageSizes Available image sizes * @property {number} maxWidth Max width to constraint resizing * @property {boolean|Array} allowedBlockTypes Allowed block types @@ -131,6 +132,9 @@ export const SETTINGS_DEFAULTS = { { slug: 'full', name: __( 'Full Size' ) }, ], + // Allow plugin to disable Image Editor if need be + disableImageEditor: false, + // This is current max width of the block inner area // It's used to constraint image resizing and this value could be overridden later by themes maxWidth: 580, diff --git a/packages/block-library/src/image/image.js b/packages/block-library/src/image/image.js index a5bb91443a340..b6f07870f5077 100644 --- a/packages/block-library/src/image/image.js +++ b/packages/block-library/src/image/image.js @@ -87,17 +87,22 @@ export default function Image( { }, [ id, isSelected ] ); - const { maxWidth, isRTL, imageSizes, mediaUpload } = useSelect( - ( select ) => { - const { getSettings } = select( 'core/block-editor' ); - return pick( getSettings(), [ - 'imageSizes', - 'isRTL', - 'maxWidth', - 'mediaUpload', - ] ); - } - ); + const { + imageSizes, + disableImageEditor, + isRTL, + maxWidth, + mediaUpload, + } = useSelect( ( select ) => { + const { getSettings } = select( 'core/block-editor' ); + return pick( getSettings(), [ + 'imageSizes', + 'disableImageEditor', + 'isRTL', + 'maxWidth', + 'mediaUpload', + ] ); + } ); const { toggleSelection } = useDispatch( 'core/block-editor' ); const { createErrorNotice, createSuccessNotice } = useDispatch( 'core/notices' @@ -226,8 +231,8 @@ export default function Image( { } }, [ isSelected ] ); - const isEditorEnabled = ! window._wpImageEditorDisabled; - const canEditImage = id && naturalWidth && naturalHeight && isEditorEnabled; + const canEditImage = + id && naturalWidth && naturalHeight && ! disableImageEditor; const controls = ( <> diff --git a/packages/editor/src/components/provider/index.js b/packages/editor/src/components/provider/index.js index 2282b0f4a10f5..3656f7efcd797 100644 --- a/packages/editor/src/components/provider/index.js +++ b/packages/editor/src/components/provider/index.js @@ -133,6 +133,7 @@ class EditorProvider extends Component { 'disableCustomColors', 'disableCustomFontSizes', 'disableCustomGradients', + 'disableImageEditor', 'enableCustomUnits', 'enableCustomLineHeight', 'focusMode',