@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
8 lines (7 loc) • 22.3 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/components/commands/index.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, isRTL, sprintf } from '@wordpress/i18n';\nimport {\n\tblockDefault,\n\tcode,\n\tdrawerLeft,\n\tdrawerRight,\n\tpencil,\n\tformatListBullets,\n\tlistView,\n\texternal,\n\tkeyboard,\n\tsymbol,\n\tpage,\n\tlayout,\n\trotateRight,\n\trotateLeft,\n} from '@wordpress/icons';\nimport { useCommandLoader } from '@wordpress/commands';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore, useEntityRecord } from '@wordpress/core-data';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editorStore } from '../../store';\nimport {\n\tPATTERN_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n} from '../../store/constants';\nimport { modalName as patternRenameModalName } from '../pattern-rename-modal';\nimport { modalName as patternDuplicateModalName } from '../pattern-duplicate-modal';\nimport isTemplateRevertable from '../../store/utils/is-template-revertable';\n\nconst getEditorCommandLoader = () =>\n\tfunction useEditorCommandLoader() {\n\t\tconst {\n\t\t\teditorMode,\n\t\t\tisListViewOpen,\n\t\t\tshowBlockBreadcrumbs,\n\t\t\tisDistractionFree,\n\t\t\tisFocusMode,\n\t\t\tisPreviewMode,\n\t\t\tisViewable,\n\t\t\tisCodeEditingEnabled,\n\t\t\tisRichEditingEnabled,\n\t\t\tisPublishSidebarEnabled,\n\t\t} = useSelect( ( select ) => {\n\t\t\tconst { get } = select( preferencesStore );\n\t\t\tconst { isListViewOpened, getCurrentPostType, getEditorSettings } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\tconst { getPostType } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\teditorMode: get( 'core', 'editorMode' ) ?? 'visual',\n\t\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\t\tshowBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),\n\t\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t\t\tisFocusMode: get( 'core', 'focusMode' ),\n\t\t\t\tisPreviewMode: getSettings().isPreviewMode,\n\t\t\t\tisViewable:\n\t\t\t\t\tgetPostType( getCurrentPostType() )?.viewable ?? false,\n\t\t\t\tisCodeEditingEnabled: getEditorSettings().codeEditingEnabled,\n\t\t\t\tisRichEditingEnabled: getEditorSettings().richEditingEnabled,\n\t\t\t\tisPublishSidebarEnabled:\n\t\t\t\t\tselect( editorStore ).isPublishSidebarEnabled(),\n\t\t\t};\n\t\t}, [] );\n\t\tconst { getActiveComplementaryArea } = useSelect( interfaceStore );\n\t\tconst { toggle } = useDispatch( preferencesStore );\n\t\tconst { createInfoNotice } = useDispatch( noticesStore );\n\t\tconst {\n\t\t\t__unstableSaveForPreview,\n\t\t\tsetIsListViewOpened,\n\t\t\tswitchEditorMode,\n\t\t\ttoggleDistractionFree,\n\t\t\ttoggleSpotlightMode,\n\t\t\ttoggleTopToolbar,\n\t\t} = useDispatch( editorStore );\n\t\tconst { openModal, enableComplementaryArea, disableComplementaryArea } =\n\t\t\tuseDispatch( interfaceStore );\n\t\tconst { getCurrentPostId } = useSelect( editorStore );\n\t\tconst allowSwitchEditorMode =\n\t\t\tisCodeEditingEnabled && isRichEditingEnabled;\n\n\t\tif ( isPreviewMode ) {\n\t\t\treturn { commands: [], isLoading: false };\n\t\t}\n\n\t\tconst commands = [];\n\n\t\tcommands.push( {\n\t\t\tname: 'core/open-shortcut-help',\n\t\t\tlabel: __( 'Keyboard shortcuts' ),\n\t\t\ticon: keyboard,\n\t\t\tcategory: 'view',\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tclose();\n\t\t\t\topenModal( 'editor/keyboard-shortcut-help' );\n\t\t\t},\n\t\t} );\n\n\t\tcommands.push( {\n\t\t\tname: 'core/toggle-distraction-free',\n\t\t\tlabel: isDistractionFree\n\t\t\t\t? __( 'Exit Distraction free' )\n\t\t\t\t: __( 'Enter Distraction free' ),\n\t\t\tcategory: 'command',\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\ttoggleDistractionFree();\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\n\t\tcommands.push( {\n\t\t\tname: 'core/open-preferences',\n\t\t\tlabel: __( 'Editor preferences' ),\n\t\t\tcategory: 'view',\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tclose();\n\t\t\t\topenModal( 'editor/preferences' );\n\t\t\t},\n\t\t} );\n\n\t\tcommands.push( {\n\t\t\tname: 'core/toggle-spotlight-mode',\n\t\t\tlabel: isFocusMode\n\t\t\t\t? __( 'Exit Spotlight mode' )\n\t\t\t\t: __( 'Enter Spotlight mode' ),\n\t\t\tcategory: 'command',\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\ttoggleSpotlightMode();\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\n\t\tcommands.push( {\n\t\t\tname: 'core/toggle-list-view',\n\t\t\tlabel: isListViewOpen\n\t\t\t\t? __( 'Close List View' )\n\t\t\t\t: __( 'Open List View' ),\n\t\t\ticon: listView,\n\t\t\tcategory: 'command',\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tsetIsListViewOpened( ! isListViewOpen );\n\t\t\t\tclose();\n\t\t\t\tcreateInfoNotice(\n\t\t\t\t\tisListViewOpen\n\t\t\t\t\t\t? __( 'List View off.' )\n\t\t\t\t\t\t: __( 'List View on.' ),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'core/editor/toggle-list-view/notice',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t},\n\t\t} );\n\n\t\tcommands.push( {\n\t\t\tname: 'core/toggle-top-toolbar',\n\t\t\tlabel: __( 'Top toolbar' ),\n\t\t\tcategory: 'command',\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\ttoggleTopToolbar();\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\n\t\tif ( allowSwitchEditorMode ) {\n\t\t\tcommands.push( {\n\t\t\t\tname: 'core/toggle-code-editor',\n\t\t\t\tlabel:\n\t\t\t\t\teditorMode === 'visual'\n\t\t\t\t\t\t? __( 'Open code editor' )\n\t\t\t\t\t\t: __( 'Exit code editor' ),\n\t\t\t\ticon: code,\n\t\t\t\tcategory: 'command',\n\t\t\t\tcallback: ( { close } ) => {\n\t\t\t\t\tswitchEditorMode(\n\t\t\t\t\t\teditorMode === 'visual' ? 'text' : 'visual'\n\t\t\t\t\t);\n\t\t\t\t\tclose();\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tcommands.push( {\n\t\t\tname: 'core/toggle-breadcrumbs',\n\t\t\tlabel: showBlockBreadcrumbs\n\t\t\t\t? __( 'Hide block breadcrumbs' )\n\t\t\t\t: __( 'Show block breadcrumbs' ),\n\t\t\tcategory: 'command',\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\ttoggle( 'core', 'showBlockBreadcrumbs' );\n\t\t\t\tclose();\n\t\t\t\tcreateInfoNotice(\n\t\t\t\t\tshowBlockBreadcrumbs\n\t\t\t\t\t\t? __( 'Breadcrumbs hidden.' )\n\t\t\t\t\t\t: __( 'Breadcrumbs visible.' ),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'core/editor/toggle-breadcrumbs/notice',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t},\n\t\t} );\n\n\t\tcommands.push( {\n\t\t\tname: 'core/open-settings-sidebar',\n\t\t\tlabel: __( 'Show or hide the Settings panel' ),\n\t\t\ticon: isRTL() ? drawerLeft : drawerRight,\n\t\t\tcategory: 'command',\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tconst activeSidebar = getActiveComplementaryArea( 'core' );\n\t\t\t\tclose();\n\t\t\t\tif ( activeSidebar === 'edit-post/document' ) {\n\t\t\t\t\tdisableComplementaryArea( 'core' );\n\t\t\t\t} else {\n\t\t\t\t\tenableComplementaryArea( 'core', 'edit-post/document' );\n\t\t\t\t}\n\t\t\t},\n\t\t} );\n\n\t\tcommands.push( {\n\t\t\tname: 'core/open-block-inspector',\n\t\t\tlabel: __( 'Show or hide the Block settings panel' ),\n\t\t\ticon: blockDefault,\n\t\t\tcategory: 'command',\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tconst activeSidebar = getActiveComplementaryArea( 'core' );\n\t\t\t\tclose();\n\t\t\t\tif ( activeSidebar === 'edit-post/block' ) {\n\t\t\t\t\tdisableComplementaryArea( 'core' );\n\t\t\t\t} else {\n\t\t\t\t\tenableComplementaryArea( 'core', 'edit-post/block' );\n\t\t\t\t}\n\t\t\t},\n\t\t} );\n\n\t\tcommands.push( {\n\t\t\tname: 'core/toggle-publish-sidebar',\n\t\t\tlabel: isPublishSidebarEnabled\n\t\t\t\t? __( 'Disable pre-publish checks' )\n\t\t\t\t: __( 'Enable pre-publish checks' ),\n\t\t\ticon: formatListBullets,\n\t\t\tcategory: 'command',\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tclose();\n\t\t\t\ttoggle( 'core', 'isPublishSidebarEnabled' );\n\t\t\t\tcreateInfoNotice(\n\t\t\t\t\tisPublishSidebarEnabled\n\t\t\t\t\t\t? __( 'Pre-publish checks disabled.' )\n\t\t\t\t\t\t: __( 'Pre-publish checks enabled.' ),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'core/editor/publish-sidebar/notice',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t},\n\t\t} );\n\n\t\tif ( isViewable ) {\n\t\t\tcommands.push( {\n\t\t\t\tname: 'core/preview-link',\n\t\t\t\tlabel: __( 'Preview in a new tab' ),\n\t\t\t\ticon: external,\n\t\t\t\tcategory: 'view',\n\t\t\t\tcallback: async ( { close } ) => {\n\t\t\t\t\tclose();\n\t\t\t\t\tconst postId = getCurrentPostId();\n\t\t\t\t\tconst link = await __unstableSaveForPreview();\n\t\t\t\t\twindow.open( link, `wp-preview-${ postId }` );\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\treturn {\n\t\t\tcommands,\n\t\t\tisLoading: false,\n\t\t};\n\t};\n\nconst getEditedEntityContextualCommands = () =>\n\tfunction useEditedEntityContextualCommands() {\n\t\tconst { postType } = useSelect( ( select ) => {\n\t\t\tconst { getCurrentPostType } = select( editorStore );\n\t\t\treturn {\n\t\t\t\tpostType: getCurrentPostType(),\n\t\t\t};\n\t\t}, [] );\n\t\tconst { openModal } = useDispatch( interfaceStore );\n\t\tconst commands = [];\n\n\t\tif ( postType === PATTERN_POST_TYPE ) {\n\t\t\tcommands.push( {\n\t\t\t\tname: 'core/rename-pattern',\n\t\t\t\tlabel: __( 'Rename pattern' ),\n\t\t\t\ticon: pencil,\n\t\t\t\tcategory: 'edit',\n\t\t\t\tcallback: ( { close } ) => {\n\t\t\t\t\topenModal( patternRenameModalName );\n\t\t\t\t\tclose();\n\t\t\t\t},\n\t\t\t} );\n\t\t\tcommands.push( {\n\t\t\t\tname: 'core/duplicate-pattern',\n\t\t\t\tlabel: __( 'Duplicate pattern' ),\n\t\t\t\ticon: symbol,\n\t\t\t\tcategory: 'command',\n\t\t\t\tcallback: ( { close } ) => {\n\t\t\t\t\topenModal( patternDuplicateModalName );\n\t\t\t\t\tclose();\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\treturn { isLoading: false, commands };\n\t};\n\nconst getPageContentFocusCommands = () =>\n\tfunction usePageContentFocusCommands() {\n\t\tconst {\n\t\t\tonNavigateToEntityRecord,\n\t\t\tgoBack,\n\t\t\ttemplateId,\n\t\t\tisPreviewMode,\n\t\t\tcanEditTemplate,\n\t\t} = useSelect( ( select ) => {\n\t\t\tconst {\n\t\t\t\tgetRenderingMode,\n\t\t\t\tgetEditorSettings: _getEditorSettings,\n\t\t\t\tgetCurrentTemplateId,\n\t\t\t} = unlock( select( editorStore ) );\n\t\t\tconst editorSettings = _getEditorSettings();\n\t\t\tconst _templateId = getCurrentTemplateId();\n\t\t\treturn {\n\t\t\t\tisTemplateHidden: getRenderingMode() === 'post-only',\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\teditorSettings.onNavigateToEntityRecord,\n\t\t\t\tgetEditorSettings: _getEditorSettings,\n\t\t\t\tgoBack: editorSettings.onNavigateToPreviousEntityRecord,\n\t\t\t\ttemplateId: _templateId,\n\t\t\t\tisPreviewMode: editorSettings.isPreviewMode,\n\t\t\t\tcanEditTemplate:\n\t\t\t\t\t!! _templateId &&\n\t\t\t\t\tselect( coreStore ).canUser( 'update', {\n\t\t\t\t\t\tkind: 'postType',\n\t\t\t\t\t\tname: 'wp_template',\n\t\t\t\t\t\tid: _templateId,\n\t\t\t\t\t} ),\n\t\t\t};\n\t\t}, [] );\n\t\tconst { editedRecord: template, hasResolved } = useEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template',\n\t\t\ttemplateId\n\t\t);\n\n\t\tif ( isPreviewMode ) {\n\t\t\treturn { isLoading: false, commands: [] };\n\t\t}\n\n\t\tconst commands = [];\n\n\t\tif ( templateId && hasResolved && canEditTemplate ) {\n\t\t\tcommands.push( {\n\t\t\t\tname: 'core/switch-to-template-focus',\n\t\t\t\tlabel: sprintf(\n\t\t\t\t\t/* translators: %s: template title */\n\t\t\t\t\t__( 'Edit template: %s' ),\n\t\t\t\t\tdecodeEntities( template.title )\n\t\t\t\t),\n\t\t\t\ticon: layout,\n\t\t\t\tcategory: 'edit',\n\t\t\t\tcallback: ( { close } ) => {\n\t\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\t\tpostId: templateId,\n\t\t\t\t\t\tpostType: 'wp_template',\n\t\t\t\t\t} );\n\t\t\t\t\tclose();\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tif ( !! goBack ) {\n\t\t\tcommands.push( {\n\t\t\t\tname: 'core/switch-to-previous-entity',\n\t\t\t\tlabel: __( 'Go back' ),\n\t\t\t\ticon: page,\n\t\t\t\tcategory: 'view',\n\t\t\t\tcallback: ( { close } ) => {\n\t\t\t\t\tgoBack();\n\t\t\t\t\tclose();\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\treturn { isLoading: false, commands };\n\t};\n\nconst getManipulateDocumentCommands = () =>\n\tfunction useManipulateDocumentCommands() {\n\t\tconst { postType, postId } = useSelect( ( select ) => {\n\t\t\tconst { getCurrentPostId, getCurrentPostType } =\n\t\t\t\tselect( editorStore );\n\t\t\treturn {\n\t\t\t\tpostType: getCurrentPostType(),\n\t\t\t\tpostId: getCurrentPostId(),\n\t\t\t};\n\t\t}, [] );\n\t\tconst { editedRecord: template, hasResolved } = useEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType,\n\t\t\tpostId\n\t\t);\n\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\tconst { revertTemplate } = unlock( useDispatch( editorStore ) );\n\n\t\tif (\n\t\t\t! hasResolved ||\n\t\t\t! [ TEMPLATE_PART_POST_TYPE, TEMPLATE_POST_TYPE ].includes(\n\t\t\t\tpostType\n\t\t\t)\n\t\t) {\n\t\t\treturn { isLoading: true, commands: [] };\n\t\t}\n\n\t\tconst commands = [];\n\n\t\tif ( isTemplateRevertable( template ) ) {\n\t\t\tconst label =\n\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: template title */\n\t\t\t\t\t\t\t__( 'Reset template: %s' ),\n\t\t\t\t\t\t\tdecodeEntities( template.title )\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t/* translators: %s: template part title */\n\t\t\t\t\t\t\t__( 'Reset template part: %s' ),\n\t\t\t\t\t\t\tdecodeEntities( template.title )\n\t\t\t\t\t );\n\t\t\tcommands.push( {\n\t\t\t\tname: 'core/reset-template',\n\t\t\t\tlabel,\n\t\t\t\ticon: isRTL() ? rotateRight : rotateLeft,\n\t\t\t\tcategory: 'command',\n\t\t\t\tcallback: ( { close } ) => {\n\t\t\t\t\trevertTemplate( template );\n\t\t\t\t\tclose();\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\treturn {\n\t\t\tisLoading: ! hasResolved,\n\t\t\tcommands,\n\t\t};\n\t};\n\nexport default function useCommands() {\n\tuseCommandLoader( {\n\t\tname: 'core/editor/edit-ui',\n\t\thook: getEditorCommandLoader(),\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/editor/contextual-commands',\n\t\thook: getEditedEntityContextualCommands(),\n\t\tcontext: 'entity-edit',\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/editor/page-content-focus',\n\t\thook: getPageContentFocusCommands(),\n\t\tcontext: 'entity-edit',\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/manipulate-document',\n\t\thook: getManipulateDocumentCommands(),\n\t} );\n}\n"],
"mappings": "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",
"names": []
}