From 4e28035fe51199e80237a5537de20beaa82afb46 Mon Sep 17 00:00:00 2001 From: Riad Benguella Date: Wed, 13 Apr 2022 13:21:12 +0100 Subject: [PATCH 01/18] Bootstrap the sections exploded view --- .../src/components/block-tools/style.scss | 3 +- .../src/components/block-editor/index.js | 62 +++++++++++++------ .../src/components/block-editor/style.scss | 13 ++++ .../edit-site/src/components/editor/index.js | 5 +- .../edit-site/src/components/header/index.js | 30 +++++++-- packages/edit-site/src/store/actions.js | 4 +- 6 files changed, 89 insertions(+), 28 deletions(-) diff --git a/packages/block-editor/src/components/block-tools/style.scss b/packages/block-editor/src/components/block-tools/style.scss index 32abd4aafb2c5..aa36a5e354d1a 100644 --- a/packages/block-editor/src/components/block-tools/style.scss +++ b/packages/block-editor/src/components/block-tools/style.scss @@ -52,7 +52,8 @@ .block-editor-block-list__empty-block-inserter, .block-editor-default-block-appender, .block-editor-block-list__insertion-point-inserter, -.block-editor-block-list__block-popover-inserter { +.block-editor-block-list__block-popover-inserter, +.edit-site-block-editor__block-list-exploded-inserter { .block-editor-inserter__toggle.components-button.has-icon { // Basic look background: $gray-900; diff --git a/packages/edit-site/src/components/block-editor/index.js b/packages/edit-site/src/components/block-editor/index.js index d90747db4ad10..d88f299faec27 100644 --- a/packages/edit-site/src/components/block-editor/index.js +++ b/packages/edit-site/src/components/block-editor/index.js @@ -21,6 +21,8 @@ import { BlockEditorKeyboardShortcuts, store as blockEditorStore, __unstableBlockNameContext, + BlockPreview, + Inserter, } from '@wordpress/block-editor'; import { useMergeRefs, useViewportMatch } from '@wordpress/compose'; import { ReusableBlocksMenuItems } from '@wordpress/reusable-blocks'; @@ -48,7 +50,7 @@ const LAYOUT = { }; export default function BlockEditor( { setIsInserterOpen } ) { - const { settings } = useSelect( + const { settings, editorMode } = useSelect( ( select ) => { let storedSettings = select( editSiteStore ).getSettings( setIsInserterOpen @@ -74,6 +76,7 @@ export default function BlockEditor( { setIsInserterOpen } ) { return { settings: storedSettings, + editorMode: select( editSiteStore ).getEditorMode(), }; }, [ setIsInserterOpen ] @@ -172,23 +175,46 @@ export default function BlockEditor( { setIsInserterOpen } ) { > - - - + { editorMode === 'visual' && ( + + + + ) } + { editorMode === 'exploded' && ( +
+ { blocks.map( ( block ) => ( +
+
+ +
+ +
+ ) ) } +
+ ) } <__unstableBlockSettingsMenuFirstItem> { ( { onClose } ) => ( diff --git a/packages/edit-site/src/components/block-editor/style.scss b/packages/edit-site/src/components/block-editor/style.scss index 9830f1e302eac..38d32aa46bc71 100644 --- a/packages/edit-site/src/components/block-editor/style.scss +++ b/packages/edit-site/src/components/block-editor/style.scss @@ -85,3 +85,16 @@ box-shadow: 0 0 0 1px $gray-800, 0 0 0 calc(var(--wp-admin-border-width-focus) + 1px) var(--wp-admin-theme-color); } } + +.edit-site-block-editor__block-list-exploded { + display: flex; + flex-direction: column; + width: $content-width; + margin: auto; +} + +.edit-site-block-editor__block-list-exploded-inserter > div { + display: flex; + margin: 20px auto; + width: fit-content; +} diff --git a/packages/edit-site/src/components/editor/index.js b/packages/edit-site/src/components/editor/index.js index 5564cf454a4c7..7f032185a3ce9 100644 --- a/packages/edit-site/src/components/editor/index.js +++ b/packages/edit-site/src/components/editor/index.js @@ -241,7 +241,10 @@ function Editor( { onError } ) { <> - { editorMode === 'visual' && + { ( editorMode === + 'visual' || + editorMode === + 'exploded' ) && template && ( { const { __experimentalGetPreviewDeviceType, @@ -78,7 +78,7 @@ export default function Header( { listViewShortcut: getShortcutRepresentation( 'core/edit-site/toggle-list-view' ), - isVisualMode: getEditorMode() === 'visual', + mode: getEditorMode(), }; }, [] ); @@ -86,6 +86,7 @@ export default function Header( { __experimentalSetPreviewDeviceType: setPreviewDeviceType, setIsInserterOpened, setIsListViewOpened, + switchEditorMode, } = useDispatch( editSiteStore ); const isLargeViewport = useViewportMatch( 'medium' ); @@ -115,7 +116,7 @@ export default function Header( { variant="primary" isPressed={ isInserterOpen } className="edit-site-header-toolbar__inserter-toggle" - disabled={ ! isVisualMode } + disabled={ mode !== 'visual' } onMouseDown={ preventDefault } onClick={ openInserter } icon={ plus } @@ -131,13 +132,13 @@ export default function Header( { <>