@wordpress/edit-post 7.18.1-next.5a1d1283.0 → 7.19.1

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.
Files changed (44) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/header/header-toolbar/index.js +5 -2
  3. package/build/components/header/header-toolbar/index.js.map +1 -1
  4. package/build/components/header/index.js +11 -2
  5. package/build/components/header/index.js.map +1 -1
  6. package/build/components/layout/index.js +15 -5
  7. package/build/components/layout/index.js.map +1 -1
  8. package/build/components/secondary-sidebar/list-view-sidebar.js +22 -16
  9. package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  10. package/build/components/start-page-options/index.js +2 -3
  11. package/build/components/start-page-options/index.js.map +1 -1
  12. package/build/components/visual-editor/index.js +34 -44
  13. package/build/components/visual-editor/index.js.map +1 -1
  14. package/build/editor.js +2 -3
  15. package/build/editor.js.map +1 -1
  16. package/build-module/components/header/header-toolbar/index.js +5 -2
  17. package/build-module/components/header/header-toolbar/index.js.map +1 -1
  18. package/build-module/components/header/index.js +11 -2
  19. package/build-module/components/header/index.js.map +1 -1
  20. package/build-module/components/layout/index.js +15 -5
  21. package/build-module/components/layout/index.js.map +1 -1
  22. package/build-module/components/secondary-sidebar/list-view-sidebar.js +24 -18
  23. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  24. package/build-module/components/start-page-options/index.js +2 -3
  25. package/build-module/components/start-page-options/index.js.map +1 -1
  26. package/build-module/components/visual-editor/index.js +35 -45
  27. package/build-module/components/visual-editor/index.js.map +1 -1
  28. package/build-module/editor.js +2 -3
  29. package/build-module/editor.js.map +1 -1
  30. package/build-style/style-rtl.css +94 -8
  31. package/build-style/style.css +94 -8
  32. package/package.json +32 -32
  33. package/src/components/header/header-toolbar/index.js +2 -1
  34. package/src/components/header/index.js +9 -2
  35. package/src/components/keyboard-shortcut-help-modal/test/index.js +4 -5
  36. package/src/components/layout/index.js +19 -3
  37. package/src/components/preferences-modal/test/index.js +35 -8
  38. package/src/components/secondary-sidebar/list-view-sidebar.js +30 -24
  39. package/src/components/start-page-options/index.js +4 -5
  40. package/src/components/visual-editor/index.js +49 -55
  41. package/src/components/visual-editor/style.scss +89 -0
  42. package/src/editor.js +17 -20
  43. package/src/style.scss +0 -9
  44. package/src/components/preferences-modal/test/__snapshots__/index.js.snap +0 -942
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","AutosaveMonitor","LocalAutosaveMonitor","UnsavedChangesWarning","EditorNotices","EditorKeyboardShortcutsRegister","EditorKeyboardShortcuts","EditorSnackbars","PostSyncStatusModal","store","editorStore","useSelect","useDispatch","useBlockCommands","BlockBreadcrumb","privateApis","blockEditorPrivateApis","Button","ScrollLock","useViewportMatch","PluginArea","__","_x","sprintf","ComplementaryArea","FullscreenMode","InterfaceSkeleton","interfaceStore","useState","useEffect","useCallback","useMemo","keyboardShortcutsStore","noticesStore","TextEditor","VisualEditor","EditPostKeyboardShortcuts","KeyboardShortcutHelpModal","EditPostPreferencesModal","BrowserURL","Header","InserterSidebar","ListViewSidebar","SettingsSidebar","MetaBoxes","WelcomeGuide","ActionsPanel","StartPageOptions","editPostStore","unlock","getLayoutStyles","interfaceLabels","header","body","sidebar","actions","footer","useEditorStyles","hasThemeStyleSupport","editorSettings","select","isFeatureActive","getEditorSettings","_editorSettings$style","_editorSettings$style2","presetStyles","styles","filter","style","__unstableType","defaultEditorStyles","hasThemeStyles","length","disableLayoutStyles","push","css","selector","hasBlockGapSupport","hasFallbackGapSupport","fallbackGapValue","Layout","isMobileViewport","isHugeViewport","isLargeViewport","openGeneralSidebar","closeGeneralSidebar","setIsInserterOpened","createErrorNotice","mode","isFullscreenActive","isRichEditingEnabled","sidebarIsOpened","hasActiveMetaboxes","hasFixedToolbar","previousShortcut","nextShortcut","hasBlockSelected","isInserterOpened","isListViewOpened","showIconLabels","isDistractionFree","showBlockBreadcrumbs","isTemplateMode","documentLabel","getPostTypeLabel","postTypeLabel","isEditingTemplate","getActiveComplementaryArea","name","isPublishSidebarOpened","getEditorMode","richEditingEnabled","hasMetaBoxes","getAllShortcutKeyCombinations","openSidebarPanel","entitiesSavedStatesCallback","setEntitiesSavedStatesCallback","closeEntitiesSavedStates","arg","className","secondarySidebarLabel","secondarySidebar","createElement","onPluginAreaError","Fragment","isActive","labels","editorNotices","variant","onClick","Slot","scope","notices","content","location","rootLabelText","isEntitiesSavedStatesOpen","shortcuts","previous","next","onError"],"sources":["@wordpress/edit-post/src/components/layout/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAutosaveMonitor,\n\tLocalAutosaveMonitor,\n\tUnsavedChangesWarning,\n\tEditorNotices,\n\tEditorKeyboardShortcutsRegister,\n\tEditorKeyboardShortcuts,\n\tEditorSnackbars,\n\tPostSyncStatusModal,\n\tstore as editorStore,\n} from '@wordpress/editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseBlockCommands,\n\tBlockBreadcrumb,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { Button, ScrollLock } from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { PluginArea } from '@wordpress/plugins';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tComplementaryArea,\n\tFullscreenMode,\n\tInterfaceSkeleton,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport { useState, useEffect, useCallback, useMemo } from '@wordpress/element';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport TextEditor from '../text-editor';\nimport VisualEditor from '../visual-editor';\nimport EditPostKeyboardShortcuts from '../keyboard-shortcuts';\nimport KeyboardShortcutHelpModal from '../keyboard-shortcut-help-modal';\nimport EditPostPreferencesModal from '../preferences-modal';\nimport BrowserURL from '../browser-url';\nimport Header from '../header';\nimport InserterSidebar from '../secondary-sidebar/inserter-sidebar';\nimport ListViewSidebar from '../secondary-sidebar/list-view-sidebar';\nimport SettingsSidebar from '../sidebar/settings-sidebar';\nimport MetaBoxes from '../meta-boxes';\nimport WelcomeGuide from '../welcome-guide';\nimport ActionsPanel from './actions-panel';\nimport StartPageOptions from '../start-page-options';\nimport { store as editPostStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { getLayoutStyles } = unlock( blockEditorPrivateApis );\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the editor top bar landmark region. */\n\theader: __( 'Editor top bar' ),\n\t/* translators: accessibility text for the editor content landmark region. */\n\tbody: __( 'Editor content' ),\n\t/* translators: accessibility text for the editor settings landmark region. */\n\tsidebar: __( 'Editor settings' ),\n\t/* translators: accessibility text for the editor publish landmark region. */\n\tactions: __( 'Editor publish' ),\n\t/* translators: accessibility text for the editor footer landmark region. */\n\tfooter: __( 'Editor footer' ),\n};\n\nfunction useEditorStyles() {\n\tconst { hasThemeStyleSupport, editorSettings } = useSelect(\n\t\t( select ) => ( {\n\t\t\thasThemeStyleSupport:\n\t\t\t\tselect( editPostStore ).isFeatureActive( 'themeStyles' ),\n\t\t\teditorSettings: select( editorStore ).getEditorSettings(),\n\t\t} ),\n\t\t[]\n\t);\n\n\t// Compute the default styles.\n\treturn useMemo( () => {\n\t\tconst presetStyles =\n\t\t\teditorSettings.styles?.filter(\n\t\t\t\t( style ) =>\n\t\t\t\t\tstyle.__unstableType && style.__unstableType !== 'theme'\n\t\t\t) ?? [];\n\n\t\tconst defaultEditorStyles = [\n\t\t\t...editorSettings.defaultEditorStyles,\n\t\t\t...presetStyles,\n\t\t];\n\n\t\t// Has theme styles if the theme supports them and if some styles were not preset styles (in which case they're theme styles).\n\t\tconst hasThemeStyles =\n\t\t\thasThemeStyleSupport &&\n\t\t\tpresetStyles.length !== ( editorSettings.styles?.length ?? 0 );\n\n\t\t// If theme styles are not present or displayed, ensure that\n\t\t// base layout styles are still present in the editor.\n\t\tif ( ! editorSettings.disableLayoutStyles && ! hasThemeStyles ) {\n\t\t\tdefaultEditorStyles.push( {\n\t\t\t\tcss: getLayoutStyles( {\n\t\t\t\t\tstyle: {},\n\t\t\t\t\tselector: 'body',\n\t\t\t\t\thasBlockGapSupport: false,\n\t\t\t\t\thasFallbackGapSupport: true,\n\t\t\t\t\tfallbackGapValue: '0.5em',\n\t\t\t\t} ),\n\t\t\t} );\n\t\t}\n\n\t\treturn hasThemeStyles ? editorSettings.styles : defaultEditorStyles;\n\t}, [\n\t\teditorSettings.defaultEditorStyles,\n\t\teditorSettings.disableLayoutStyles,\n\t\teditorSettings.styles,\n\t\thasThemeStyleSupport,\n\t] );\n}\n\nfunction Layout() {\n\tuseBlockCommands();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isHugeViewport = useViewportMatch( 'huge', '>=' );\n\tconst isLargeViewport = useViewportMatch( 'large' );\n\tconst { openGeneralSidebar, closeGeneralSidebar, setIsInserterOpened } =\n\t\tuseDispatch( editPostStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst {\n\t\tmode,\n\t\tisFullscreenActive,\n\t\tisRichEditingEnabled,\n\t\tsidebarIsOpened,\n\t\thasActiveMetaboxes,\n\t\thasFixedToolbar,\n\t\tpreviousShortcut,\n\t\tnextShortcut,\n\t\thasBlockSelected,\n\t\tisInserterOpened,\n\t\tisListViewOpened,\n\t\tshowIconLabels,\n\t\tisDistractionFree,\n\t\tshowBlockBreadcrumbs,\n\t\tisTemplateMode,\n\t\tdocumentLabel,\n\t} = useSelect( ( select ) => {\n\t\tconst { getEditorSettings, getPostTypeLabel } = select( editorStore );\n\t\tconst editorSettings = getEditorSettings();\n\t\tconst postTypeLabel = getPostTypeLabel();\n\n\t\treturn {\n\t\t\tisTemplateMode: select( editPostStore ).isEditingTemplate(),\n\t\t\thasFixedToolbar:\n\t\t\t\tselect( editPostStore ).isFeatureActive( 'fixedToolbar' ),\n\t\t\tsidebarIsOpened: !! (\n\t\t\t\tselect( interfaceStore ).getActiveComplementaryArea(\n\t\t\t\t\teditPostStore.name\n\t\t\t\t) || select( editPostStore ).isPublishSidebarOpened()\n\t\t\t),\n\t\t\tisFullscreenActive:\n\t\t\t\tselect( editPostStore ).isFeatureActive( 'fullscreenMode' ),\n\t\t\tisInserterOpened: select( editPostStore ).isInserterOpened(),\n\t\t\tisListViewOpened: select( editPostStore ).isListViewOpened(),\n\t\t\tmode: select( editPostStore ).getEditorMode(),\n\t\t\tisRichEditingEnabled: editorSettings.richEditingEnabled,\n\t\t\thasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(),\n\t\t\tpreviousShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/edit-post/previous-region' ),\n\t\t\tnextShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/edit-post/next-region' ),\n\t\t\tshowIconLabels:\n\t\t\t\tselect( editPostStore ).isFeatureActive( 'showIconLabels' ),\n\t\t\tisDistractionFree:\n\t\t\t\tselect( editPostStore ).isFeatureActive( 'distractionFree' ),\n\t\t\tshowBlockBreadcrumbs: select( editPostStore ).isFeatureActive(\n\t\t\t\t'showBlockBreadcrumbs'\n\t\t\t),\n\t\t\t// translators: Default label for the Document in the Block Breadcrumb.\n\t\t\tdocumentLabel: postTypeLabel || _x( 'Document', 'noun' ),\n\t\t};\n\t}, [] );\n\n\tconst styles = useEditorStyles();\n\n\tconst openSidebarPanel = () =>\n\t\topenGeneralSidebar(\n\t\t\thasBlockSelected ? 'edit-post/block' : 'edit-post/document'\n\t\t);\n\n\t// Inserter and Sidebars are mutually exclusive\n\tuseEffect( () => {\n\t\tif ( sidebarIsOpened && ! isHugeViewport ) {\n\t\t\tsetIsInserterOpened( false );\n\t\t}\n\t}, [ sidebarIsOpened, isHugeViewport ] );\n\tuseEffect( () => {\n\t\tif ( isInserterOpened && ! isHugeViewport ) {\n\t\t\tcloseGeneralSidebar();\n\t\t}\n\t}, [ isInserterOpened, isHugeViewport ] );\n\n\t// Local state for save panel.\n\t// Note 'truthy' callback implies an open panel.\n\tconst [ entitiesSavedStatesCallback, setEntitiesSavedStatesCallback ] =\n\t\tuseState( false );\n\tconst closeEntitiesSavedStates = useCallback(\n\t\t( arg ) => {\n\t\t\tif ( typeof entitiesSavedStatesCallback === 'function' ) {\n\t\t\t\tentitiesSavedStatesCallback( arg );\n\t\t\t}\n\t\t\tsetEntitiesSavedStatesCallback( false );\n\t\t},\n\t\t[ entitiesSavedStatesCallback ]\n\t);\n\n\tconst className = classnames( 'edit-post-layout', 'is-mode-' + mode, {\n\t\t'is-sidebar-opened': sidebarIsOpened,\n\t\t'has-fixed-toolbar': hasFixedToolbar,\n\t\t'has-metaboxes': hasActiveMetaboxes,\n\t\t'show-icon-labels': showIconLabels,\n\t\t'is-distraction-free': isDistractionFree && isLargeViewport,\n\t\t'is-entity-save-view-open': !! entitiesSavedStatesCallback,\n\t} );\n\n\tconst secondarySidebarLabel = isListViewOpened\n\t\t? __( 'Document Overview' )\n\t\t: __( 'Block Library' );\n\n\tconst secondarySidebar = () => {\n\t\tif ( mode === 'visual' && isInserterOpened ) {\n\t\t\treturn <InserterSidebar />;\n\t\t}\n\t\tif ( mode === 'visual' && isListViewOpened ) {\n\t\t\treturn <ListViewSidebar />;\n\t\t}\n\n\t\treturn null;\n\t};\n\n\tfunction onPluginAreaError( name ) {\n\t\tcreateErrorNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: plugin name */\n\t\t\t\t__(\n\t\t\t\t\t'The \"%s\" plugin has encountered an error and cannot be rendered.'\n\t\t\t\t),\n\t\t\t\tname\n\t\t\t)\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<FullscreenMode isActive={ isFullscreenActive } />\n\t\t\t<BrowserURL />\n\t\t\t<UnsavedChangesWarning />\n\t\t\t<AutosaveMonitor />\n\t\t\t<LocalAutosaveMonitor />\n\t\t\t<EditPostKeyboardShortcuts />\n\t\t\t<EditorKeyboardShortcutsRegister />\n\t\t\t<EditorKeyboardShortcuts />\n\t\t\t<SettingsSidebar />\n\t\t\t<InterfaceSkeleton\n\t\t\t\tisDistractionFree={ isDistractionFree && isLargeViewport }\n\t\t\t\tclassName={ className }\n\t\t\t\tlabels={ {\n\t\t\t\t\t...interfaceLabels,\n\t\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t\t} }\n\t\t\t\theader={\n\t\t\t\t\t<Header\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\teditorNotices={ <EditorNotices /> }\n\t\t\t\tsecondarySidebar={ secondarySidebar() }\n\t\t\t\tsidebar={\n\t\t\t\t\t( ! isMobileViewport || sidebarIsOpened ) && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ ! isMobileViewport && ! sidebarIsOpened && (\n\t\t\t\t\t\t\t\t<div className=\"edit-post-layout__toggle-sidebar-panel\">\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-post-layout__toggle-sidebar-panel-button\"\n\t\t\t\t\t\t\t\t\t\tonClick={ openSidebarPanel }\n\t\t\t\t\t\t\t\t\t\taria-expanded={ false }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ hasBlockSelected\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Open block settings' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Open document settings' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<ComplementaryArea.Slot scope=\"core/edit-post\" />\n\t\t\t\t\t\t</>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tnotices={ <EditorSnackbars /> }\n\t\t\t\tcontent={\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ ! isDistractionFree && <EditorNotices /> }\n\t\t\t\t\t\t{ ( mode === 'text' || ! isRichEditingEnabled ) && (\n\t\t\t\t\t\t\t<TextEditor />\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isRichEditingEnabled && mode === 'visual' && (\n\t\t\t\t\t\t\t<VisualEditor styles={ styles } />\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! isDistractionFree && ! isTemplateMode && (\n\t\t\t\t\t\t\t<div className=\"edit-post-layout__metaboxes\">\n\t\t\t\t\t\t\t\t<MetaBoxes location=\"normal\" />\n\t\t\t\t\t\t\t\t<MetaBoxes location=\"advanced\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isMobileViewport && sidebarIsOpened && (\n\t\t\t\t\t\t\t<ScrollLock />\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t\tfooter={\n\t\t\t\t\t! isDistractionFree &&\n\t\t\t\t\t! isMobileViewport &&\n\t\t\t\t\tshowBlockBreadcrumbs &&\n\t\t\t\t\tisRichEditingEnabled &&\n\t\t\t\t\tmode === 'visual' && (\n\t\t\t\t\t\t<div className=\"edit-post-layout__footer\">\n\t\t\t\t\t\t\t<BlockBreadcrumb rootLabelText={ documentLabel } />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tactions={\n\t\t\t\t\t<ActionsPanel\n\t\t\t\t\t\tcloseEntitiesSavedStates={ closeEntitiesSavedStates }\n\t\t\t\t\t\tisEntitiesSavedStatesOpen={\n\t\t\t\t\t\t\tentitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tshortcuts={ {\n\t\t\t\t\tprevious: previousShortcut,\n\t\t\t\t\tnext: nextShortcut,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<EditPostPreferencesModal />\n\t\t\t<KeyboardShortcutHelpModal />\n\t\t\t<WelcomeGuide />\n\t\t\t<PostSyncStatusModal />\n\t\t\t<StartPageOptions />\n\t\t\t<PluginArea onError={ onPluginAreaError } />\n\t\t</>\n\t);\n}\n\nexport default Layout;\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","AutosaveMonitor","LocalAutosaveMonitor","UnsavedChangesWarning","EditorNotices","EditorKeyboardShortcutsRegister","EditorKeyboardShortcuts","EditorSnackbars","PostSyncStatusModal","store","editorStore","useSelect","useDispatch","useBlockCommands","BlockBreadcrumb","privateApis","blockEditorPrivateApis","Button","ScrollLock","useViewportMatch","PluginArea","__","_x","sprintf","ComplementaryArea","FullscreenMode","InterfaceSkeleton","interfaceStore","useState","useEffect","useCallback","useMemo","keyboardShortcutsStore","noticesStore","TextEditor","VisualEditor","EditPostKeyboardShortcuts","KeyboardShortcutHelpModal","EditPostPreferencesModal","BrowserURL","Header","InserterSidebar","ListViewSidebar","SettingsSidebar","MetaBoxes","WelcomeGuide","ActionsPanel","StartPageOptions","editPostStore","unlock","getLayoutStyles","interfaceLabels","header","body","sidebar","actions","footer","useEditorStyles","hasThemeStyleSupport","editorSettings","select","isFeatureActive","getEditorSettings","_editorSettings$style","_editorSettings$style2","presetStyles","styles","filter","style","__unstableType","defaultEditorStyles","hasThemeStyles","length","disableLayoutStyles","push","css","selector","hasBlockGapSupport","hasFallbackGapSupport","fallbackGapValue","Layout","isMobileViewport","isHugeViewport","isLargeViewport","openGeneralSidebar","closeGeneralSidebar","setIsInserterOpened","createErrorNotice","mode","isFullscreenActive","isRichEditingEnabled","sidebarIsOpened","hasActiveMetaboxes","hasFixedToolbar","previousShortcut","nextShortcut","hasBlockSelected","isInserterOpened","isListViewOpened","showIconLabels","isDistractionFree","showBlockBreadcrumbs","isTemplateMode","documentLabel","getPostTypeLabel","postTypeLabel","isEditingTemplate","getActiveComplementaryArea","name","isPublishSidebarOpened","getEditorMode","richEditingEnabled","hasMetaBoxes","getAllShortcutKeyCombinations","openSidebarPanel","entitiesSavedStatesCallback","setEntitiesSavedStatesCallback","listViewToggleElement","setListViewToggleElement","closeEntitiesSavedStates","arg","document","classList","add","remove","className","secondarySidebarLabel","secondarySidebar","createElement","onPluginAreaError","Fragment","isActive","labels","editorNotices","variant","onClick","Slot","scope","notices","content","location","rootLabelText","isEntitiesSavedStatesOpen","shortcuts","previous","next","onError"],"sources":["@wordpress/edit-post/src/components/layout/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAutosaveMonitor,\n\tLocalAutosaveMonitor,\n\tUnsavedChangesWarning,\n\tEditorNotices,\n\tEditorKeyboardShortcutsRegister,\n\tEditorKeyboardShortcuts,\n\tEditorSnackbars,\n\tPostSyncStatusModal,\n\tstore as editorStore,\n} from '@wordpress/editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseBlockCommands,\n\tBlockBreadcrumb,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { Button, ScrollLock } from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { PluginArea } from '@wordpress/plugins';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tComplementaryArea,\n\tFullscreenMode,\n\tInterfaceSkeleton,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport { useState, useEffect, useCallback, useMemo } from '@wordpress/element';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport TextEditor from '../text-editor';\nimport VisualEditor from '../visual-editor';\nimport EditPostKeyboardShortcuts from '../keyboard-shortcuts';\nimport KeyboardShortcutHelpModal from '../keyboard-shortcut-help-modal';\nimport EditPostPreferencesModal from '../preferences-modal';\nimport BrowserURL from '../browser-url';\nimport Header from '../header';\nimport InserterSidebar from '../secondary-sidebar/inserter-sidebar';\nimport ListViewSidebar from '../secondary-sidebar/list-view-sidebar';\nimport SettingsSidebar from '../sidebar/settings-sidebar';\nimport MetaBoxes from '../meta-boxes';\nimport WelcomeGuide from '../welcome-guide';\nimport ActionsPanel from './actions-panel';\nimport StartPageOptions from '../start-page-options';\nimport { store as editPostStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { getLayoutStyles } = unlock( blockEditorPrivateApis );\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the editor top bar landmark region. */\n\theader: __( 'Editor top bar' ),\n\t/* translators: accessibility text for the editor content landmark region. */\n\tbody: __( 'Editor content' ),\n\t/* translators: accessibility text for the editor settings landmark region. */\n\tsidebar: __( 'Editor settings' ),\n\t/* translators: accessibility text for the editor publish landmark region. */\n\tactions: __( 'Editor publish' ),\n\t/* translators: accessibility text for the editor footer landmark region. */\n\tfooter: __( 'Editor footer' ),\n};\n\nfunction useEditorStyles() {\n\tconst { hasThemeStyleSupport, editorSettings } = useSelect(\n\t\t( select ) => ( {\n\t\t\thasThemeStyleSupport:\n\t\t\t\tselect( editPostStore ).isFeatureActive( 'themeStyles' ),\n\t\t\teditorSettings: select( editorStore ).getEditorSettings(),\n\t\t} ),\n\t\t[]\n\t);\n\n\t// Compute the default styles.\n\treturn useMemo( () => {\n\t\tconst presetStyles =\n\t\t\teditorSettings.styles?.filter(\n\t\t\t\t( style ) =>\n\t\t\t\t\tstyle.__unstableType && style.__unstableType !== 'theme'\n\t\t\t) ?? [];\n\n\t\tconst defaultEditorStyles = [\n\t\t\t...editorSettings.defaultEditorStyles,\n\t\t\t...presetStyles,\n\t\t];\n\n\t\t// Has theme styles if the theme supports them and if some styles were not preset styles (in which case they're theme styles).\n\t\tconst hasThemeStyles =\n\t\t\thasThemeStyleSupport &&\n\t\t\tpresetStyles.length !== ( editorSettings.styles?.length ?? 0 );\n\n\t\t// If theme styles are not present or displayed, ensure that\n\t\t// base layout styles are still present in the editor.\n\t\tif ( ! editorSettings.disableLayoutStyles && ! hasThemeStyles ) {\n\t\t\tdefaultEditorStyles.push( {\n\t\t\t\tcss: getLayoutStyles( {\n\t\t\t\t\tstyle: {},\n\t\t\t\t\tselector: 'body',\n\t\t\t\t\thasBlockGapSupport: false,\n\t\t\t\t\thasFallbackGapSupport: true,\n\t\t\t\t\tfallbackGapValue: '0.5em',\n\t\t\t\t} ),\n\t\t\t} );\n\t\t}\n\n\t\treturn hasThemeStyles ? editorSettings.styles : defaultEditorStyles;\n\t}, [\n\t\teditorSettings.defaultEditorStyles,\n\t\teditorSettings.disableLayoutStyles,\n\t\teditorSettings.styles,\n\t\thasThemeStyleSupport,\n\t] );\n}\n\nfunction Layout() {\n\tuseBlockCommands();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isHugeViewport = useViewportMatch( 'huge', '>=' );\n\tconst isLargeViewport = useViewportMatch( 'large' );\n\tconst { openGeneralSidebar, closeGeneralSidebar, setIsInserterOpened } =\n\t\tuseDispatch( editPostStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst {\n\t\tmode,\n\t\tisFullscreenActive,\n\t\tisRichEditingEnabled,\n\t\tsidebarIsOpened,\n\t\thasActiveMetaboxes,\n\t\thasFixedToolbar,\n\t\tpreviousShortcut,\n\t\tnextShortcut,\n\t\thasBlockSelected,\n\t\tisInserterOpened,\n\t\tisListViewOpened,\n\t\tshowIconLabels,\n\t\tisDistractionFree,\n\t\tshowBlockBreadcrumbs,\n\t\tisTemplateMode,\n\t\tdocumentLabel,\n\t} = useSelect( ( select ) => {\n\t\tconst { getEditorSettings, getPostTypeLabel } = select( editorStore );\n\t\tconst editorSettings = getEditorSettings();\n\t\tconst postTypeLabel = getPostTypeLabel();\n\n\t\treturn {\n\t\t\tisTemplateMode: select( editPostStore ).isEditingTemplate(),\n\t\t\thasFixedToolbar:\n\t\t\t\tselect( editPostStore ).isFeatureActive( 'fixedToolbar' ),\n\t\t\tsidebarIsOpened: !! (\n\t\t\t\tselect( interfaceStore ).getActiveComplementaryArea(\n\t\t\t\t\teditPostStore.name\n\t\t\t\t) || select( editPostStore ).isPublishSidebarOpened()\n\t\t\t),\n\t\t\tisFullscreenActive:\n\t\t\t\tselect( editPostStore ).isFeatureActive( 'fullscreenMode' ),\n\t\t\tisInserterOpened: select( editPostStore ).isInserterOpened(),\n\t\t\tisListViewOpened: select( editPostStore ).isListViewOpened(),\n\t\t\tmode: select( editPostStore ).getEditorMode(),\n\t\t\tisRichEditingEnabled: editorSettings.richEditingEnabled,\n\t\t\thasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(),\n\t\t\tpreviousShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/edit-post/previous-region' ),\n\t\t\tnextShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/edit-post/next-region' ),\n\t\t\tshowIconLabels:\n\t\t\t\tselect( editPostStore ).isFeatureActive( 'showIconLabels' ),\n\t\t\tisDistractionFree:\n\t\t\t\tselect( editPostStore ).isFeatureActive( 'distractionFree' ),\n\t\t\tshowBlockBreadcrumbs: select( editPostStore ).isFeatureActive(\n\t\t\t\t'showBlockBreadcrumbs'\n\t\t\t),\n\t\t\t// translators: Default label for the Document in the Block Breadcrumb.\n\t\t\tdocumentLabel: postTypeLabel || _x( 'Document', 'noun' ),\n\t\t};\n\t}, [] );\n\n\tconst styles = useEditorStyles();\n\n\tconst openSidebarPanel = () =>\n\t\topenGeneralSidebar(\n\t\t\thasBlockSelected ? 'edit-post/block' : 'edit-post/document'\n\t\t);\n\n\t// Inserter and Sidebars are mutually exclusive\n\tuseEffect( () => {\n\t\tif ( sidebarIsOpened && ! isHugeViewport ) {\n\t\t\tsetIsInserterOpened( false );\n\t\t}\n\t}, [ sidebarIsOpened, isHugeViewport ] );\n\tuseEffect( () => {\n\t\tif ( isInserterOpened && ! isHugeViewport ) {\n\t\t\tcloseGeneralSidebar();\n\t\t}\n\t}, [ isInserterOpened, isHugeViewport ] );\n\n\t// Local state for save panel.\n\t// Note 'truthy' callback implies an open panel.\n\tconst [ entitiesSavedStatesCallback, setEntitiesSavedStatesCallback ] =\n\t\tuseState( false );\n\n\tconst [ listViewToggleElement, setListViewToggleElement ] =\n\t\tuseState( null );\n\n\tconst closeEntitiesSavedStates = useCallback(\n\t\t( arg ) => {\n\t\t\tif ( typeof entitiesSavedStatesCallback === 'function' ) {\n\t\t\t\tentitiesSavedStatesCallback( arg );\n\t\t\t}\n\t\t\tsetEntitiesSavedStatesCallback( false );\n\t\t},\n\t\t[ entitiesSavedStatesCallback ]\n\t);\n\n\t// We need to add the show-icon-labels class to the body element so it is applied to modals.\n\tif ( showIconLabels ) {\n\t\tdocument.body.classList.add( 'show-icon-labels' );\n\t} else {\n\t\tdocument.body.classList.remove( 'show-icon-labels' );\n\t}\n\n\tconst className = classnames( 'edit-post-layout', 'is-mode-' + mode, {\n\t\t'is-sidebar-opened': sidebarIsOpened,\n\t\t'has-fixed-toolbar': hasFixedToolbar,\n\t\t'has-metaboxes': hasActiveMetaboxes,\n\t\t'is-distraction-free': isDistractionFree && isLargeViewport,\n\t\t'is-entity-save-view-open': !! entitiesSavedStatesCallback,\n\t} );\n\n\tconst secondarySidebarLabel = isListViewOpened\n\t\t? __( 'Document Overview' )\n\t\t: __( 'Block Library' );\n\n\tconst secondarySidebar = () => {\n\t\tif ( mode === 'visual' && isInserterOpened ) {\n\t\t\treturn <InserterSidebar />;\n\t\t}\n\t\tif ( mode === 'visual' && isListViewOpened ) {\n\t\t\treturn (\n\t\t\t\t<ListViewSidebar\n\t\t\t\t\tlistViewToggleElement={ listViewToggleElement }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn null;\n\t};\n\n\tfunction onPluginAreaError( name ) {\n\t\tcreateErrorNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: plugin name */\n\t\t\t\t__(\n\t\t\t\t\t'The \"%s\" plugin has encountered an error and cannot be rendered.'\n\t\t\t\t),\n\t\t\t\tname\n\t\t\t)\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<FullscreenMode isActive={ isFullscreenActive } />\n\t\t\t<BrowserURL />\n\t\t\t<UnsavedChangesWarning />\n\t\t\t<AutosaveMonitor />\n\t\t\t<LocalAutosaveMonitor />\n\t\t\t<EditPostKeyboardShortcuts />\n\t\t\t<EditorKeyboardShortcutsRegister />\n\t\t\t<EditorKeyboardShortcuts />\n\n\t\t\t<InterfaceSkeleton\n\t\t\t\tisDistractionFree={ isDistractionFree && isLargeViewport }\n\t\t\t\tclassName={ className }\n\t\t\t\tlabels={ {\n\t\t\t\t\t...interfaceLabels,\n\t\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t\t} }\n\t\t\t\theader={\n\t\t\t\t\t<Header\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetListViewToggleElement={ setListViewToggleElement }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\teditorNotices={ <EditorNotices /> }\n\t\t\t\tsecondarySidebar={ secondarySidebar() }\n\t\t\t\tsidebar={\n\t\t\t\t\t( ! isMobileViewport || sidebarIsOpened ) && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ ! isMobileViewport && ! sidebarIsOpened && (\n\t\t\t\t\t\t\t\t<div className=\"edit-post-layout__toggle-sidebar-panel\">\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-post-layout__toggle-sidebar-panel-button\"\n\t\t\t\t\t\t\t\t\t\tonClick={ openSidebarPanel }\n\t\t\t\t\t\t\t\t\t\taria-expanded={ false }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ hasBlockSelected\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Open block settings' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Open document settings' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<ComplementaryArea.Slot scope=\"core/edit-post\" />\n\t\t\t\t\t\t</>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tnotices={ <EditorSnackbars /> }\n\t\t\t\tcontent={\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ ! isDistractionFree && <EditorNotices /> }\n\t\t\t\t\t\t{ ( mode === 'text' || ! isRichEditingEnabled ) && (\n\t\t\t\t\t\t\t<TextEditor />\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isRichEditingEnabled && mode === 'visual' && (\n\t\t\t\t\t\t\t<VisualEditor styles={ styles } />\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! isDistractionFree && ! isTemplateMode && (\n\t\t\t\t\t\t\t<div className=\"edit-post-layout__metaboxes\">\n\t\t\t\t\t\t\t\t<MetaBoxes location=\"normal\" />\n\t\t\t\t\t\t\t\t<MetaBoxes location=\"advanced\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isMobileViewport && sidebarIsOpened && (\n\t\t\t\t\t\t\t<ScrollLock />\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t\tfooter={\n\t\t\t\t\t! isDistractionFree &&\n\t\t\t\t\t! isMobileViewport &&\n\t\t\t\t\tshowBlockBreadcrumbs &&\n\t\t\t\t\tisRichEditingEnabled &&\n\t\t\t\t\tmode === 'visual' && (\n\t\t\t\t\t\t<div className=\"edit-post-layout__footer\">\n\t\t\t\t\t\t\t<BlockBreadcrumb rootLabelText={ documentLabel } />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tactions={\n\t\t\t\t\t<ActionsPanel\n\t\t\t\t\t\tcloseEntitiesSavedStates={ closeEntitiesSavedStates }\n\t\t\t\t\t\tisEntitiesSavedStatesOpen={\n\t\t\t\t\t\t\tentitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tshortcuts={ {\n\t\t\t\t\tprevious: previousShortcut,\n\t\t\t\t\tnext: nextShortcut,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<EditPostPreferencesModal />\n\t\t\t<KeyboardShortcutHelpModal />\n\t\t\t<WelcomeGuide />\n\t\t\t<PostSyncStatusModal />\n\t\t\t<StartPageOptions />\n\t\t\t<PluginArea onError={ onPluginAreaError } />\n\t\t\t<SettingsSidebar />\n\t\t</>\n\t);\n}\n\nexport default Layout;\n"],"mappings":"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"}
@@ -4,10 +4,10 @@ import { createElement } from "@wordpress/element";
4
4
  */
5
5
  import { __experimentalListView as ListView } from '@wordpress/block-editor';
6
6
  import { Button, TabPanel } from '@wordpress/components';
7
- import { useFocusOnMount, useFocusReturn, useMergeRefs } from '@wordpress/compose';
7
+ import { useFocusOnMount, useMergeRefs } from '@wordpress/compose';
8
8
  import { useDispatch } from '@wordpress/data';
9
9
  import { focus } from '@wordpress/dom';
10
- import { useRef, useState } from '@wordpress/element';
10
+ import { useCallback, useRef, useState } from '@wordpress/element';
11
11
  import { __, _x } from '@wordpress/i18n';
12
12
  import { closeSmall } from '@wordpress/icons';
13
13
  import { useShortcut } from '@wordpress/keyboard-shortcuts';
@@ -18,22 +18,27 @@ import { ESCAPE } from '@wordpress/keycodes';
18
18
  */
19
19
  import { store as editPostStore } from '../../store';
20
20
  import ListViewOutline from './list-view-outline';
21
- export default function ListViewSidebar() {
21
+ export default function ListViewSidebar({
22
+ listViewToggleElement
23
+ }) {
22
24
  const {
23
25
  setIsListViewOpened
24
26
  } = useDispatch(editPostStore);
25
27
 
26
28
  // This hook handles focus when the sidebar first renders.
27
29
  const focusOnMountRef = useFocusOnMount('firstElement');
28
- // The next 2 hooks handle focus for when the sidebar closes and returning focus to the element that had focus before sidebar opened.
29
- const headerFocusReturnRef = useFocusReturn();
30
- const contentFocusReturnRef = useFocusReturn();
31
- function closeOnEscape(event) {
30
+
31
+ // When closing the list view, focus should return to the toggle button.
32
+ const closeListView = useCallback(() => {
33
+ setIsListViewOpened(false);
34
+ listViewToggleElement?.focus();
35
+ }, [listViewToggleElement, setIsListViewOpened]);
36
+ const closeOnEscape = useCallback(event => {
32
37
  if (event.keyCode === ESCAPE && !event.defaultPrevented) {
33
38
  event.preventDefault();
34
- setIsListViewOpened(false);
39
+ closeListView();
35
40
  }
36
- }
41
+ }, [closeListView]);
37
42
 
38
43
  // Use internal state instead of a ref to make sure that the component
39
44
  // re-renders when the dropZoneElement updates.
@@ -49,7 +54,7 @@ export default function ListViewSidebar() {
49
54
  const listViewRef = useRef();
50
55
 
51
56
  // Must merge the refs together so focus can be handled properly in the next function.
52
- const listViewContainerRef = useMergeRefs([contentFocusReturnRef, focusOnMountRef, listViewRef, setDropZoneElement]);
57
+ const listViewContainerRef = useMergeRefs([focusOnMountRef, listViewRef, setDropZoneElement]);
53
58
 
54
59
  /*
55
60
  * Callback function to handle list view or outline focus.
@@ -72,17 +77,19 @@ export default function ListViewSidebar() {
72
77
  tabPanelFocus.focus();
73
78
  }
74
79
  }
75
-
76
- // This only fires when the sidebar is open because of the conditional rendering. It is the same shortcut to open but that is defined as a global shortcut and only fires when the sidebar is closed.
77
- useShortcut('core/edit-post/toggle-list-view', () => {
80
+ const handleToggleListViewShortcut = useCallback(() => {
78
81
  // If the sidebar has focus, it is safe to close.
79
82
  if (sidebarRef.current.contains(sidebarRef.current.ownerDocument.activeElement)) {
80
- setIsListViewOpened(false);
81
- // If the list view or outline does not have focus, focus should be moved to it.
83
+ closeListView();
82
84
  } else {
85
+ // If the list view or outline does not have focus, focus should be moved to it.
83
86
  handleSidebarFocus(tab);
84
87
  }
85
- });
88
+ }, [closeListView, tab]);
89
+
90
+ // This only fires when the sidebar is open because of the conditional rendering.
91
+ // It is the same shortcut to open but that is defined as a global shortcut and only fires when the sidebar is closed.
92
+ useShortcut('core/edit-post/toggle-list-view', handleToggleListViewShortcut);
86
93
 
87
94
  /**
88
95
  * Render tab content for a given tab name.
@@ -107,10 +114,9 @@ export default function ListViewSidebar() {
107
114
  ref: sidebarRef
108
115
  }, createElement(Button, {
109
116
  className: "edit-post-editor__document-overview-panel__close-button",
110
- ref: headerFocusReturnRef,
111
117
  icon: closeSmall,
112
118
  label: __('Close'),
113
- onClick: () => setIsListViewOpened(false)
119
+ onClick: closeListView
114
120
  }), createElement(TabPanel, {
115
121
  className: "edit-post-editor__document-overview-panel__tab-panel",
116
122
  ref: tabPanelRef,
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalListView","ListView","Button","TabPanel","useFocusOnMount","useFocusReturn","useMergeRefs","useDispatch","focus","useRef","useState","__","_x","closeSmall","useShortcut","ESCAPE","store","editPostStore","ListViewOutline","ListViewSidebar","setIsListViewOpened","focusOnMountRef","headerFocusReturnRef","contentFocusReturnRef","closeOnEscape","event","keyCode","defaultPrevented","preventDefault","dropZoneElement","setDropZoneElement","tab","setTab","sidebarRef","tabPanelRef","listViewRef","listViewContainerRef","handleSidebarFocus","currentTab","tabPanelFocus","tabbable","find","current","listViewApplicationFocus","listViewFocusArea","contains","ownerDocument","activeElement","renderTabContent","tabName","createElement","className","onKeyDown","ref","icon","label","onClick","onSelect","selectOnMove","tabs","name","title"],"sources":["@wordpress/edit-post/src/components/secondary-sidebar/list-view-sidebar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalListView as ListView } from '@wordpress/block-editor';\nimport { Button, TabPanel } from '@wordpress/components';\nimport {\n\tuseFocusOnMount,\n\tuseFocusReturn,\n\tuseMergeRefs,\n} from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\nimport { focus } from '@wordpress/dom';\nimport { useRef, useState } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../store';\nimport ListViewOutline from './list-view-outline';\n\nexport default function ListViewSidebar() {\n\tconst { setIsListViewOpened } = useDispatch( editPostStore );\n\n\t// This hook handles focus when the sidebar first renders.\n\tconst focusOnMountRef = useFocusOnMount( 'firstElement' );\n\t// The next 2 hooks handle focus for when the sidebar closes and returning focus to the element that had focus before sidebar opened.\n\tconst headerFocusReturnRef = useFocusReturn();\n\tconst contentFocusReturnRef = useFocusReturn();\n\n\tfunction closeOnEscape( event ) {\n\t\tif ( event.keyCode === ESCAPE && ! event.defaultPrevented ) {\n\t\t\tevent.preventDefault();\n\t\t\tsetIsListViewOpened( false );\n\t\t}\n\t}\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the dropZoneElement updates.\n\tconst [ dropZoneElement, setDropZoneElement ] = useState( null );\n\t// Tracks our current tab.\n\tconst [ tab, setTab ] = useState( 'list-view' );\n\n\t// This ref refers to the sidebar as a whole.\n\tconst sidebarRef = useRef();\n\t// This ref refers to the tab panel.\n\tconst tabPanelRef = useRef();\n\t// This ref refers to the list view application area.\n\tconst listViewRef = useRef();\n\n\t// Must merge the refs together so focus can be handled properly in the next function.\n\tconst listViewContainerRef = useMergeRefs( [\n\t\tcontentFocusReturnRef,\n\t\tfocusOnMountRef,\n\t\tlistViewRef,\n\t\tsetDropZoneElement,\n\t] );\n\n\t/*\n\t * Callback function to handle list view or outline focus.\n\t *\n\t * @param {string} currentTab The current tab. Either list view or outline.\n\t *\n\t * @return void\n\t */\n\tfunction handleSidebarFocus( currentTab ) {\n\t\t// Tab panel focus.\n\t\tconst tabPanelFocus = focus.tabbable.find( tabPanelRef.current )[ 0 ];\n\t\t// List view tab is selected.\n\t\tif ( currentTab === 'list-view' ) {\n\t\t\t// 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.\n\t\t\tconst listViewApplicationFocus = focus.tabbable.find(\n\t\t\t\tlistViewRef.current\n\t\t\t)[ 0 ];\n\t\t\tconst listViewFocusArea = sidebarRef.current.contains(\n\t\t\t\tlistViewApplicationFocus\n\t\t\t)\n\t\t\t\t? listViewApplicationFocus\n\t\t\t\t: tabPanelFocus;\n\t\t\tlistViewFocusArea.focus();\n\t\t\t// Outline tab is selected.\n\t\t} else {\n\t\t\ttabPanelFocus.focus();\n\t\t}\n\t}\n\n\t// This only fires when the sidebar is open because of the conditional rendering. It is the same shortcut to open but that is defined as a global shortcut and only fires when the sidebar is closed.\n\tuseShortcut( 'core/edit-post/toggle-list-view', () => {\n\t\t// If the sidebar has focus, it is safe to close.\n\t\tif (\n\t\t\tsidebarRef.current.contains(\n\t\t\t\tsidebarRef.current.ownerDocument.activeElement\n\t\t\t)\n\t\t) {\n\t\t\tsetIsListViewOpened( false );\n\t\t\t// If the list view or outline does not have focus, focus should be moved to it.\n\t\t} else {\n\t\t\thandleSidebarFocus( tab );\n\t\t}\n\t} );\n\n\t/**\n\t * Render tab content for a given tab name.\n\t *\n\t * @param {string} tabName The name of the tab to render.\n\t */\n\tfunction renderTabContent( tabName ) {\n\t\tif ( tabName === 'list-view' ) {\n\t\t\treturn (\n\t\t\t\t<div className=\"edit-post-editor__list-view-panel-content\">\n\t\t\t\t\t<ListView dropZoneElement={ dropZoneElement } />\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\t\treturn <ListViewOutline />;\n\t}\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tclassName=\"edit-post-editor__document-overview-panel\"\n\t\t\tonKeyDown={ closeOnEscape }\n\t\t\tref={ sidebarRef }\n\t\t>\n\t\t\t<Button\n\t\t\t\tclassName=\"edit-post-editor__document-overview-panel__close-button\"\n\t\t\t\tref={ headerFocusReturnRef }\n\t\t\t\ticon={ closeSmall }\n\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\tonClick={ () => setIsListViewOpened( false ) }\n\t\t\t/>\n\t\t\t<TabPanel\n\t\t\t\tclassName=\"edit-post-editor__document-overview-panel__tab-panel\"\n\t\t\t\tref={ tabPanelRef }\n\t\t\t\tonSelect={ ( tabName ) => setTab( tabName ) }\n\t\t\t\tselectOnMove={ false }\n\t\t\t\ttabs={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'list-view',\n\t\t\t\t\t\ttitle: _x( 'List View', 'Post overview' ),\n\t\t\t\t\t\tclassName: 'edit-post-sidebar__panel-tab',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'outline',\n\t\t\t\t\t\ttitle: _x( 'Outline', 'Post overview' ),\n\t\t\t\t\t\tclassName: 'edit-post-sidebar__panel-tab',\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t{ ( currentTab ) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"edit-post-editor__list-view-container\"\n\t\t\t\t\t\tref={ listViewContainerRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ renderTabContent( currentTab.name ) }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TabPanel>\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["__experimentalListView","ListView","Button","TabPanel","useFocusOnMount","useMergeRefs","useDispatch","focus","useCallback","useRef","useState","__","_x","closeSmall","useShortcut","ESCAPE","store","editPostStore","ListViewOutline","ListViewSidebar","listViewToggleElement","setIsListViewOpened","focusOnMountRef","closeListView","closeOnEscape","event","keyCode","defaultPrevented","preventDefault","dropZoneElement","setDropZoneElement","tab","setTab","sidebarRef","tabPanelRef","listViewRef","listViewContainerRef","handleSidebarFocus","currentTab","tabPanelFocus","tabbable","find","current","listViewApplicationFocus","listViewFocusArea","contains","handleToggleListViewShortcut","ownerDocument","activeElement","renderTabContent","tabName","createElement","className","onKeyDown","ref","icon","label","onClick","onSelect","selectOnMove","tabs","name","title"],"sources":["@wordpress/edit-post/src/components/secondary-sidebar/list-view-sidebar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalListView as ListView } from '@wordpress/block-editor';\nimport { Button, TabPanel } from '@wordpress/components';\nimport { useFocusOnMount, useMergeRefs } from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\nimport { focus } from '@wordpress/dom';\nimport { useCallback, useRef, useState } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../store';\nimport ListViewOutline from './list-view-outline';\n\nexport default function ListViewSidebar( { listViewToggleElement } ) {\n\tconst { setIsListViewOpened } = useDispatch( editPostStore );\n\n\t// This hook handles focus when the sidebar first renders.\n\tconst focusOnMountRef = useFocusOnMount( 'firstElement' );\n\n\t// When closing the list view, focus should return to the toggle button.\n\tconst closeListView = useCallback( () => {\n\t\tsetIsListViewOpened( false );\n\t\tlistViewToggleElement?.focus();\n\t}, [ listViewToggleElement, setIsListViewOpened ] );\n\n\tconst closeOnEscape = useCallback(\n\t\t( event ) => {\n\t\t\tif ( event.keyCode === ESCAPE && ! event.defaultPrevented ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tcloseListView();\n\t\t\t}\n\t\t},\n\t\t[ closeListView ]\n\t);\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the dropZoneElement updates.\n\tconst [ dropZoneElement, setDropZoneElement ] = useState( null );\n\t// Tracks our current tab.\n\tconst [ tab, setTab ] = useState( 'list-view' );\n\n\t// This ref refers to the sidebar as a whole.\n\tconst sidebarRef = useRef();\n\t// This ref refers to the tab panel.\n\tconst tabPanelRef = useRef();\n\t// This ref refers to the list view application area.\n\tconst listViewRef = useRef();\n\n\t// Must merge the refs together so focus can be handled properly in the next function.\n\tconst listViewContainerRef = useMergeRefs( [\n\t\tfocusOnMountRef,\n\t\tlistViewRef,\n\t\tsetDropZoneElement,\n\t] );\n\n\t/*\n\t * Callback function to handle list view or outline focus.\n\t *\n\t * @param {string} currentTab The current tab. Either list view or outline.\n\t *\n\t * @return void\n\t */\n\tfunction handleSidebarFocus( currentTab ) {\n\t\t// Tab panel focus.\n\t\tconst tabPanelFocus = focus.tabbable.find( tabPanelRef.current )[ 0 ];\n\t\t// List view tab is selected.\n\t\tif ( currentTab === 'list-view' ) {\n\t\t\t// 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.\n\t\t\tconst listViewApplicationFocus = focus.tabbable.find(\n\t\t\t\tlistViewRef.current\n\t\t\t)[ 0 ];\n\t\t\tconst listViewFocusArea = sidebarRef.current.contains(\n\t\t\t\tlistViewApplicationFocus\n\t\t\t)\n\t\t\t\t? listViewApplicationFocus\n\t\t\t\t: tabPanelFocus;\n\t\t\tlistViewFocusArea.focus();\n\t\t\t// Outline tab is selected.\n\t\t} else {\n\t\t\ttabPanelFocus.focus();\n\t\t}\n\t}\n\n\tconst handleToggleListViewShortcut = useCallback( () => {\n\t\t// If the sidebar has focus, it is safe to close.\n\t\tif (\n\t\t\tsidebarRef.current.contains(\n\t\t\t\tsidebarRef.current.ownerDocument.activeElement\n\t\t\t)\n\t\t) {\n\t\t\tcloseListView();\n\t\t} else {\n\t\t\t// If the list view or outline does not have focus, focus should be moved to it.\n\t\t\thandleSidebarFocus( tab );\n\t\t}\n\t}, [ closeListView, tab ] );\n\n\t// This only fires when the sidebar is open because of the conditional rendering.\n\t// It is the same shortcut to open but that is defined as a global shortcut and only fires when the sidebar is closed.\n\tuseShortcut(\n\t\t'core/edit-post/toggle-list-view',\n\t\thandleToggleListViewShortcut\n\t);\n\n\t/**\n\t * Render tab content for a given tab name.\n\t *\n\t * @param {string} tabName The name of the tab to render.\n\t */\n\tfunction renderTabContent( tabName ) {\n\t\tif ( tabName === 'list-view' ) {\n\t\t\treturn (\n\t\t\t\t<div className=\"edit-post-editor__list-view-panel-content\">\n\t\t\t\t\t<ListView dropZoneElement={ dropZoneElement } />\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\t\treturn <ListViewOutline />;\n\t}\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tclassName=\"edit-post-editor__document-overview-panel\"\n\t\t\tonKeyDown={ closeOnEscape }\n\t\t\tref={ sidebarRef }\n\t\t>\n\t\t\t<Button\n\t\t\t\tclassName=\"edit-post-editor__document-overview-panel__close-button\"\n\t\t\t\ticon={ closeSmall }\n\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\tonClick={ closeListView }\n\t\t\t/>\n\t\t\t<TabPanel\n\t\t\t\tclassName=\"edit-post-editor__document-overview-panel__tab-panel\"\n\t\t\t\tref={ tabPanelRef }\n\t\t\t\tonSelect={ ( tabName ) => setTab( tabName ) }\n\t\t\t\tselectOnMove={ false }\n\t\t\t\ttabs={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'list-view',\n\t\t\t\t\t\ttitle: _x( 'List View', 'Post overview' ),\n\t\t\t\t\t\tclassName: 'edit-post-sidebar__panel-tab',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'outline',\n\t\t\t\t\t\ttitle: _x( 'Outline', 'Post overview' ),\n\t\t\t\t\t\tclassName: 'edit-post-sidebar__panel-tab',\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t{ ( currentTab ) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"edit-post-editor__list-view-container\"\n\t\t\t\t\t\tref={ listViewContainerRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ renderTabContent( currentTab.name ) }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TabPanel>\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
@@ -86,14 +86,13 @@ function StartPageOptionsModal() {
86
86
  export default function StartPageOptions() {
87
87
  const shouldEnableModal = useSelect(select => {
88
88
  const {
89
- getEditedPostContent,
90
- isEditedPostSaveable
89
+ isCleanNewPost
91
90
  } = select(editorStore);
92
91
  const {
93
92
  isEditingTemplate,
94
93
  isFeatureActive
95
94
  } = select(editPostStore);
96
- return !isEditedPostSaveable() && '' === getEditedPostContent() && !isEditingTemplate() && !isFeatureActive('welcomeGuide');
95
+ return !isEditingTemplate() && !isFeatureActive('welcomeGuide') && isCleanNewPost();
97
96
  }, []);
98
97
  if (!shouldEnableModal) {
99
98
  return null;
@@ -1 +1 @@
1
- {"version":3,"names":["Modal","__","useState","useEffect","useMemo","store","blockEditorStore","__experimentalBlockPatternsList","BlockPatternsList","useSelect","useDispatch","useAsyncList","editorStore","editPostStore","useStartPatterns","blockPatternsWithPostContentBlockType","postType","select","getPatternsByBlockTypes","getCurrentPostType","filter","pattern","postTypes","Array","isArray","includes","PatternSelection","blockPatterns","onChoosePattern","shownBlockPatterns","resetEditorBlocks","createElement","shownPatterns","onClickPattern","_pattern","blocks","StartPageOptionsModal","modalState","setModalState","startPatterns","hasStartPattern","length","shouldOpenModal","className","title","isFullScreen","onRequestClose","StartPageOptions","shouldEnableModal","getEditedPostContent","isEditedPostSaveable","isEditingTemplate","isFeatureActive"],"sources":["@wordpress/edit-post/src/components/start-page-options/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useEffect, useMemo } from '@wordpress/element';\nimport {\n\tstore as blockEditorStore,\n\t__experimentalBlockPatternsList as BlockPatternsList,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useAsyncList } from '@wordpress/compose';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../store';\n\nfunction useStartPatterns() {\n\t// A pattern is a start pattern if it includes 'core/post-content' in its blockTypes,\n\t// and it has no postTypes declared and the current post type is page or if\n\t// the current post type is part of the postTypes declared.\n\tconst { blockPatternsWithPostContentBlockType, postType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPatternsByBlockTypes } = select( blockEditorStore );\n\t\t\tconst { getCurrentPostType } = select( editorStore );\n\t\t\treturn {\n\t\t\t\tblockPatternsWithPostContentBlockType:\n\t\t\t\t\tgetPatternsByBlockTypes( 'core/post-content' ),\n\t\t\t\tpostType: getCurrentPostType(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\treturn useMemo( () => {\n\t\t// filter patterns without postTypes declared if the current postType is page\n\t\t// or patterns that declare the current postType in its post type array.\n\t\treturn blockPatternsWithPostContentBlockType.filter( ( pattern ) => {\n\t\t\treturn (\n\t\t\t\t( postType === 'page' && ! pattern.postTypes ) ||\n\t\t\t\t( Array.isArray( pattern.postTypes ) &&\n\t\t\t\t\tpattern.postTypes.includes( postType ) )\n\t\t\t);\n\t\t} );\n\t}, [ postType, blockPatternsWithPostContentBlockType ] );\n}\n\nfunction PatternSelection( { blockPatterns, onChoosePattern } ) {\n\tconst shownBlockPatterns = useAsyncList( blockPatterns );\n\tconst { resetEditorBlocks } = useDispatch( editorStore );\n\treturn (\n\t\t<BlockPatternsList\n\t\t\tblockPatterns={ blockPatterns }\n\t\t\tshownPatterns={ shownBlockPatterns }\n\t\t\tonClickPattern={ ( _pattern, blocks ) => {\n\t\t\t\tresetEditorBlocks( blocks );\n\t\t\t\tonChoosePattern();\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction StartPageOptionsModal() {\n\tconst [ modalState, setModalState ] = useState( 'initial' );\n\tconst startPatterns = useStartPatterns();\n\tconst hasStartPattern = startPatterns.length > 0;\n\tconst shouldOpenModal = hasStartPattern && modalState === 'initial';\n\n\tuseEffect( () => {\n\t\tif ( shouldOpenModal ) {\n\t\t\tsetModalState( 'open' );\n\t\t}\n\t}, [ shouldOpenModal ] );\n\n\tif ( modalState !== 'open' ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"edit-post-start-page-options__modal\"\n\t\t\ttitle={ __( 'Choose a pattern' ) }\n\t\t\tisFullScreen\n\t\t\tonRequestClose={ () => setModalState( 'closed' ) }\n\t\t>\n\t\t\t<div className=\"edit-post-start-page-options__modal-content\">\n\t\t\t\t<PatternSelection\n\t\t\t\t\tblockPatterns={ startPatterns }\n\t\t\t\t\tonChoosePattern={ () => setModalState( 'closed' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n\nexport default function StartPageOptions() {\n\tconst shouldEnableModal = useSelect( ( select ) => {\n\t\tconst { getEditedPostContent, isEditedPostSaveable } =\n\t\t\tselect( editorStore );\n\t\tconst { isEditingTemplate, isFeatureActive } = select( editPostStore );\n\t\treturn (\n\t\t\t! isEditedPostSaveable() &&\n\t\t\t'' === getEditedPostContent() &&\n\t\t\t! isEditingTemplate() &&\n\t\t\t! isFeatureActive( 'welcomeGuide' )\n\t\t);\n\t}, [] );\n\n\tif ( ! shouldEnableModal ) {\n\t\treturn null;\n\t}\n\n\treturn <StartPageOptionsModal />;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Modal","__","useState","useEffect","useMemo","store","blockEditorStore","__experimentalBlockPatternsList","BlockPatternsList","useSelect","useDispatch","useAsyncList","editorStore","editPostStore","useStartPatterns","blockPatternsWithPostContentBlockType","postType","select","getPatternsByBlockTypes","getCurrentPostType","filter","pattern","postTypes","Array","isArray","includes","PatternSelection","blockPatterns","onChoosePattern","shownBlockPatterns","resetEditorBlocks","createElement","shownPatterns","onClickPattern","_pattern","blocks","StartPageOptionsModal","modalState","setModalState","startPatterns","hasStartPattern","length","shouldOpenModal","className","title","isFullScreen","onRequestClose","StartPageOptions","shouldEnableModal","isCleanNewPost","isEditingTemplate","isFeatureActive"],"sources":["@wordpress/edit-post/src/components/start-page-options/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useEffect, useMemo } from '@wordpress/element';\nimport {\n\tstore as blockEditorStore,\n\t__experimentalBlockPatternsList as BlockPatternsList,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useAsyncList } from '@wordpress/compose';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../store';\n\nfunction useStartPatterns() {\n\t// A pattern is a start pattern if it includes 'core/post-content' in its blockTypes,\n\t// and it has no postTypes declared and the current post type is page or if\n\t// the current post type is part of the postTypes declared.\n\tconst { blockPatternsWithPostContentBlockType, postType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPatternsByBlockTypes } = select( blockEditorStore );\n\t\t\tconst { getCurrentPostType } = select( editorStore );\n\t\t\treturn {\n\t\t\t\tblockPatternsWithPostContentBlockType:\n\t\t\t\t\tgetPatternsByBlockTypes( 'core/post-content' ),\n\t\t\t\tpostType: getCurrentPostType(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\treturn useMemo( () => {\n\t\t// filter patterns without postTypes declared if the current postType is page\n\t\t// or patterns that declare the current postType in its post type array.\n\t\treturn blockPatternsWithPostContentBlockType.filter( ( pattern ) => {\n\t\t\treturn (\n\t\t\t\t( postType === 'page' && ! pattern.postTypes ) ||\n\t\t\t\t( Array.isArray( pattern.postTypes ) &&\n\t\t\t\t\tpattern.postTypes.includes( postType ) )\n\t\t\t);\n\t\t} );\n\t}, [ postType, blockPatternsWithPostContentBlockType ] );\n}\n\nfunction PatternSelection( { blockPatterns, onChoosePattern } ) {\n\tconst shownBlockPatterns = useAsyncList( blockPatterns );\n\tconst { resetEditorBlocks } = useDispatch( editorStore );\n\treturn (\n\t\t<BlockPatternsList\n\t\t\tblockPatterns={ blockPatterns }\n\t\t\tshownPatterns={ shownBlockPatterns }\n\t\t\tonClickPattern={ ( _pattern, blocks ) => {\n\t\t\t\tresetEditorBlocks( blocks );\n\t\t\t\tonChoosePattern();\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction StartPageOptionsModal() {\n\tconst [ modalState, setModalState ] = useState( 'initial' );\n\tconst startPatterns = useStartPatterns();\n\tconst hasStartPattern = startPatterns.length > 0;\n\tconst shouldOpenModal = hasStartPattern && modalState === 'initial';\n\n\tuseEffect( () => {\n\t\tif ( shouldOpenModal ) {\n\t\t\tsetModalState( 'open' );\n\t\t}\n\t}, [ shouldOpenModal ] );\n\n\tif ( modalState !== 'open' ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"edit-post-start-page-options__modal\"\n\t\t\ttitle={ __( 'Choose a pattern' ) }\n\t\t\tisFullScreen\n\t\t\tonRequestClose={ () => setModalState( 'closed' ) }\n\t\t>\n\t\t\t<div className=\"edit-post-start-page-options__modal-content\">\n\t\t\t\t<PatternSelection\n\t\t\t\t\tblockPatterns={ startPatterns }\n\t\t\t\t\tonChoosePattern={ () => setModalState( 'closed' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n\nexport default function StartPageOptions() {\n\tconst shouldEnableModal = useSelect( ( select ) => {\n\t\tconst { isCleanNewPost } = select( editorStore );\n\t\tconst { isEditingTemplate, isFeatureActive } = select( editPostStore );\n\n\t\treturn (\n\t\t\t! isEditingTemplate() &&\n\t\t\t! isFeatureActive( 'welcomeGuide' ) &&\n\t\t\tisCleanNewPost()\n\t\t);\n\t}, [] );\n\n\tif ( ! shouldEnableModal ) {\n\t\treturn null;\n\t}\n\n\treturn <StartPageOptionsModal />;\n}\n"],"mappings":"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"}
@@ -8,7 +8,7 @@ import classnames from 'classnames';
8
8
  * WordPress dependencies
9
9
  */
10
10
  import { PostTitle, store as editorStore } from '@wordpress/editor';
11
- import { WritingFlow, BlockList, BlockTools, store as blockEditorStore, __unstableUseBlockSelectionClearer as useBlockSelectionClearer, __unstableUseTypewriter as useTypewriter, __unstableUseClipboardHandler as useClipboardHandler, __unstableUseTypingObserver as useTypingObserver, __experimentalUseResizeCanvas as useResizeCanvas, __unstableEditorStyles as EditorStyles, useSetting, __unstableUseMouseMoveTypingReset as useMouseMoveTypingReset, __unstableIframe as Iframe, __experimentalRecursionProvider as RecursionProvider, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
11
+ import { BlockList, BlockTools, store as blockEditorStore, __unstableUseTypewriter as useTypewriter, __unstableUseTypingObserver as useTypingObserver, __experimentalUseResizeCanvas as useResizeCanvas, useSetting, __experimentalRecursionProvider as RecursionProvider, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
12
12
  import { useEffect, useRef, useMemo } from '@wordpress/element';
13
13
  import { __unstableMotion as motion } from '@wordpress/components';
14
14
  import { useSelect } from '@wordpress/data';
@@ -24,43 +24,10 @@ import { unlock } from '../../lock-unlock';
24
24
  const {
25
25
  LayoutStyle,
26
26
  useLayoutClasses,
27
- useLayoutStyles
27
+ useLayoutStyles,
28
+ ExperimentalBlockCanvas: BlockCanvas
28
29
  } = unlock(blockEditorPrivateApis);
29
30
  const isGutenbergPlugin = process.env.IS_GUTENBERG_PLUGIN ? true : false;
30
- function MaybeIframe({
31
- children,
32
- contentRef,
33
- shouldIframe,
34
- styles,
35
- style
36
- }) {
37
- const ref = useMouseMoveTypingReset();
38
- if (!shouldIframe) {
39
- return createElement(Fragment, null, createElement(EditorStyles, {
40
- styles: styles
41
- }), createElement(WritingFlow, {
42
- ref: contentRef,
43
- className: "editor-styles-wrapper",
44
- style: {
45
- flex: '1',
46
- ...style
47
- },
48
- tabIndex: -1
49
- }, children));
50
- }
51
- return createElement(Iframe, {
52
- ref: ref,
53
- contentRef: contentRef,
54
- style: {
55
- width: '100%',
56
- height: '100%',
57
- display: 'block'
58
- },
59
- name: "editor-canvas"
60
- }, createElement(EditorStyles, {
61
- styles: styles
62
- }), children);
63
- }
64
31
 
65
32
  /**
66
33
  * Given an array of nested blocks, find the first Post Content
@@ -84,6 +51,14 @@ function getPostContentAttributes(blocks) {
84
51
  }
85
52
  }
86
53
  }
54
+ function checkForPostContentAtRootLevel(blocks) {
55
+ for (let i = 0; i < blocks.length; i++) {
56
+ if (blocks[i].name === 'core/post-content') {
57
+ return true;
58
+ }
59
+ }
60
+ return false;
61
+ }
87
62
  export default function VisualEditor({
88
63
  styles
89
64
  }) {
@@ -113,14 +88,16 @@ export default function VisualEditor({
113
88
  getBlockTypes
114
89
  } = select(blocksStore);
115
90
  const _isTemplateMode = isEditingTemplate();
91
+ const postTypeSlug = getCurrentPostType();
116
92
  let _wrapperBlockName;
117
- if (getCurrentPostType() === 'wp_block') {
93
+ if (postTypeSlug === 'wp_block') {
118
94
  _wrapperBlockName = 'core/block';
119
95
  } else if (!_isTemplateMode) {
120
96
  _wrapperBlockName = 'core/post-content';
121
97
  }
122
98
  const editorSettings = getEditorSettings();
123
99
  const supportsTemplateMode = editorSettings.supportsTemplateMode;
100
+ const postType = select(coreStore).getPostType(postTypeSlug);
124
101
  const canEditTemplate = select(coreStore).canUser('create', 'templates');
125
102
  return {
126
103
  deviceType: __experimentalGetPreviewDeviceType(),
@@ -129,7 +106,7 @@ export default function VisualEditor({
129
106
  postContentAttributes: getEditorSettings().postContentAttributes,
130
107
  // Post template fetch returns a 404 on classic themes, which
131
108
  // messes with e2e tests, so check it's a block theme first.
132
- editedPostTemplate: supportsTemplateMode && canEditTemplate ? getEditedPostTemplate() : undefined,
109
+ editedPostTemplate: postType?.viewable && supportsTemplateMode && canEditTemplate ? getEditedPostTemplate() : undefined,
133
110
  wrapperBlockName: _wrapperBlockName,
134
111
  wrapperUniqueId: getCurrentPostId(),
135
112
  isBlockBasedTheme: editorSettings.__unstableIsBlockBasedTheme,
@@ -188,8 +165,7 @@ export default function VisualEditor({
188
165
  paddingBottom = '40vh';
189
166
  }
190
167
  const ref = useRef();
191
- const contentRef = useMergeRefs([ref, useClipboardHandler(), useTypewriter(), useBlockSelectionClearer()]);
192
- const blockSelectionClearerRef = useBlockSelectionClearer();
168
+ const contentRef = useMergeRefs([ref, useTypewriter()]);
193
169
 
194
170
  // fallbackLayout is used if there is no Post Content,
195
171
  // and for Post Title.
@@ -225,6 +201,19 @@ export default function VisualEditor({
225
201
  const parseableContent = typeof editedPostTemplate?.content === 'string' ? editedPostTemplate?.content : '';
226
202
  return getPostContentAttributes(parse(parseableContent)) || {};
227
203
  }, [editedPostTemplate?.content, editedPostTemplate?.blocks, postContentAttributes]);
204
+ const hasPostContentAtRootLevel = useMemo(() => {
205
+ if (!editedPostTemplate?.content && !editedPostTemplate?.blocks) {
206
+ return false;
207
+ }
208
+ // When in template editing mode, we can access the blocks directly.
209
+ if (editedPostTemplate?.blocks) {
210
+ return checkForPostContentAtRootLevel(editedPostTemplate?.blocks);
211
+ }
212
+ // If there are no blocks, we have to parse the content string.
213
+ // Best double-check it's a string otherwise the parse function gets unhappy.
214
+ const parseableContent = typeof editedPostTemplate?.content === 'string' ? editedPostTemplate?.content : '';
215
+ return checkForPostContentAtRootLevel(parse(parseableContent)) || false;
216
+ }, [editedPostTemplate?.content, editedPostTemplate?.blocks]);
228
217
  const {
229
218
  layout = {},
230
219
  align = ''
@@ -251,6 +240,7 @@ export default function VisualEditor({
251
240
  // If there is a Post Content block we use its layout for the block list;
252
241
  // if not, this must be a classic theme, in which case we use the fallback layout.
253
242
  const blockListLayout = postContentAttributes ? postContentLayout : fallbackLayout;
243
+ const postEditorLayout = blockListLayout?.type === 'default' && !hasPostContentAtRootLevel ? fallbackLayout : blockListLayout;
254
244
  const observeTypingRef = useTypingObserver();
255
245
  const titleRef = useRef();
256
246
  useEffect(() => {
@@ -280,22 +270,22 @@ export default function VisualEditor({
280
270
  className: "edit-post-visual-editor__content-area",
281
271
  animate: {
282
272
  padding: isTemplateMode ? '48px 48px 0' : 0
283
- },
284
- ref: blockSelectionClearerRef
273
+ }
285
274
  }, createElement(motion.div, {
286
275
  animate: animatedStyles,
287
276
  initial: desktopCanvasStyles,
288
277
  className: previewMode
289
- }, createElement(MaybeIframe, {
278
+ }, createElement(BlockCanvas, {
290
279
  shouldIframe: isToBeIframed,
291
280
  contentRef: contentRef,
292
- styles: styles
281
+ styles: styles,
282
+ height: "100%"
293
283
  }, themeSupportsLayout && !themeHasDisabledLayoutStyles && !isTemplateMode && createElement(Fragment, null, createElement(LayoutStyle, {
294
284
  selector: ".edit-post-visual-editor__post-title-wrapper",
295
285
  layout: fallbackLayout
296
286
  }), createElement(LayoutStyle, {
297
287
  selector: ".block-editor-block-list__layout.is-root-container",
298
- layout: blockListLayout
288
+ layout: postEditorLayout
299
289
  }), align && createElement(LayoutStyle, {
300
290
  css: alignCSS
301
291
  }), postContentLayoutStyles && createElement(LayoutStyle, {