@wordpress/editor 14.11.0 → 14.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +0 -8
- package/build/components/collab-sidebar/add-comment.js +5 -6
- package/build/components/collab-sidebar/add-comment.js.map +1 -1
- package/build/components/collab-sidebar/index.js +75 -73
- package/build/components/collab-sidebar/index.js.map +1 -1
- package/build/components/commands/index.js +142 -34
- package/build/components/commands/index.js.map +1 -1
- package/build/components/create-template-part-modal/index.js +1 -0
- package/build/components/create-template-part-modal/index.js.map +1 -1
- package/build/components/document-bar/index.js +9 -3
- package/build/components/document-bar/index.js.map +1 -1
- package/build/components/document-tools/index.js +8 -4
- package/build/components/document-tools/index.js.map +1 -1
- package/build/components/editor-interface/index.js +1 -2
- package/build/components/editor-interface/index.js.map +1 -1
- package/build/components/global-styles-provider/index.js +20 -8
- package/build/components/global-styles-provider/index.js.map +1 -1
- package/build/components/header/index.js +10 -12
- package/build/components/header/index.js.map +1 -1
- package/build/components/more-menu/index.js +9 -7
- package/build/components/more-menu/index.js.map +1 -1
- package/build/components/post-taxonomies/flat-term-selector.js +10 -8
- package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build/components/post-template/swap-template-button.js +0 -3
- package/build/components/post-template/swap-template-button.js.map +1 -1
- package/build/components/post-transform-panel/index.js +0 -3
- package/build/components/post-transform-panel/index.js.map +1 -1
- package/build/components/preferences-modal/index.js +26 -22
- package/build/components/preferences-modal/index.js.map +1 -1
- package/build/components/preview-dropdown/index.js +23 -4
- package/build/components/preview-dropdown/index.js.map +1 -1
- package/build/components/provider/use-block-editor-settings.js +10 -9
- package/build/components/provider/use-block-editor-settings.js.map +1 -1
- package/build/components/sidebar/post-summary.js +2 -2
- package/build/components/sidebar/post-summary.js.map +1 -1
- package/build/components/start-page-options/index.js +0 -3
- package/build/components/start-page-options/index.js.map +1 -1
- package/build/components/start-template-options/index.js +0 -3
- package/build/components/start-template-options/index.js.map +1 -1
- package/build/components/visual-editor/index.js +5 -2
- package/build/components/visual-editor/index.js.map +1 -1
- package/build/store/actions.js +65 -16
- package/build/store/actions.js.map +1 -1
- package/build/store/constants.js +0 -2
- package/build/store/constants.js.map +1 -1
- package/build/store/index.js +0 -4
- package/build/store/index.js.map +1 -1
- package/build/store/selectors.js +2 -2
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/collab-sidebar/add-comment.js +5 -6
- package/build-module/components/collab-sidebar/add-comment.js.map +1 -1
- package/build-module/components/collab-sidebar/index.js +76 -74
- package/build-module/components/collab-sidebar/index.js.map +1 -1
- package/build-module/components/commands/index.js +145 -38
- package/build-module/components/commands/index.js.map +1 -1
- package/build-module/components/create-template-part-modal/index.js +1 -0
- package/build-module/components/create-template-part-modal/index.js.map +1 -1
- package/build-module/components/document-bar/index.js +10 -4
- package/build-module/components/document-bar/index.js.map +1 -1
- package/build-module/components/document-tools/index.js +8 -4
- package/build-module/components/document-tools/index.js.map +1 -1
- package/build-module/components/editor-interface/index.js +1 -2
- package/build-module/components/editor-interface/index.js.map +1 -1
- package/build-module/components/global-styles-provider/index.js +20 -8
- package/build-module/components/global-styles-provider/index.js.map +1 -1
- package/build-module/components/header/index.js +10 -12
- package/build-module/components/header/index.js.map +1 -1
- package/build-module/components/more-menu/index.js +9 -7
- package/build-module/components/more-menu/index.js.map +1 -1
- package/build-module/components/post-taxonomies/flat-term-selector.js +10 -8
- package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build-module/components/post-template/swap-template-button.js +0 -3
- package/build-module/components/post-template/swap-template-button.js.map +1 -1
- package/build-module/components/post-transform-panel/index.js +0 -3
- package/build-module/components/post-transform-panel/index.js.map +1 -1
- package/build-module/components/preferences-modal/index.js +26 -22
- package/build-module/components/preferences-modal/index.js.map +1 -1
- package/build-module/components/preview-dropdown/index.js +24 -5
- package/build-module/components/preview-dropdown/index.js.map +1 -1
- package/build-module/components/provider/use-block-editor-settings.js +11 -10
- package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
- package/build-module/components/sidebar/post-summary.js +2 -2
- package/build-module/components/sidebar/post-summary.js.map +1 -1
- package/build-module/components/start-page-options/index.js +0 -3
- package/build-module/components/start-page-options/index.js.map +1 -1
- package/build-module/components/start-template-options/index.js +0 -3
- package/build-module/components/start-template-options/index.js.map +1 -1
- package/build-module/components/visual-editor/index.js +5 -2
- package/build-module/components/visual-editor/index.js.map +1 -1
- package/build-module/store/actions.js +61 -14
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/constants.js +0 -2
- package/build-module/store/constants.js.map +1 -1
- package/build-module/store/index.js +0 -4
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/selectors.js +2 -2
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +22 -6
- package/build-style/style.css +22 -6
- package/build-types/components/collab-sidebar/add-comment.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/index.d.ts.map +1 -1
- package/build-types/components/commands/index.d.ts.map +1 -1
- package/build-types/components/create-template-part-modal/index.d.ts.map +1 -1
- package/build-types/components/document-bar/index.d.ts.map +1 -1
- package/build-types/components/document-tools/index.d.ts.map +1 -1
- package/build-types/components/editor-interface/index.d.ts.map +1 -1
- package/build-types/components/global-styles-provider/index.d.ts.map +1 -1
- package/build-types/components/header/index.d.ts +1 -2
- package/build-types/components/header/index.d.ts.map +1 -1
- package/build-types/components/more-menu/index.d.ts.map +1 -1
- package/build-types/components/post-taxonomies/flat-term-selector.d.ts.map +1 -1
- package/build-types/components/post-template/hooks.d.ts +2 -2
- package/build-types/components/post-template/swap-template-button.d.ts.map +1 -1
- package/build-types/components/post-transform-panel/index.d.ts.map +1 -1
- package/build-types/components/preferences-modal/index.d.ts.map +1 -1
- package/build-types/components/preview-dropdown/index.d.ts.map +1 -1
- package/build-types/components/provider/use-block-editor-settings.d.ts.map +1 -1
- package/build-types/components/start-page-options/index.d.ts.map +1 -1
- package/build-types/components/start-template-options/index.d.ts.map +1 -1
- package/build-types/components/visual-editor/index.d.ts.map +1 -1
- package/build-types/dataviews/store/reducer.d.ts +5 -2
- package/build-types/dataviews/store/reducer.d.ts.map +1 -1
- package/build-types/lock-unlock.d.ts +2 -2
- package/build-types/store/actions.d.ts +9 -1
- package/build-types/store/actions.d.ts.map +1 -1
- package/build-types/store/constants.d.ts +0 -2
- package/build-types/store/constants.d.ts.map +1 -1
- package/build-types/store/index.d.ts +9 -11
- package/build-types/store/index.d.ts.map +1 -1
- package/build-types/store/reducer.d.ts +24 -4
- package/build-types/store/reducer.d.ts.map +1 -1
- package/build-types/store/selectors.d.ts +3 -3
- package/build-types/store/selectors.d.ts.map +1 -1
- package/package.json +4 -3
- package/src/components/collab-sidebar/add-comment.js +17 -20
- package/src/components/collab-sidebar/index.js +79 -88
- package/src/components/commands/index.js +390 -270
- package/src/components/create-template-part-modal/index.js +1 -0
- package/src/components/document-bar/index.js +10 -1
- package/src/components/document-bar/style.scss +13 -0
- package/src/components/document-tools/index.js +7 -1
- package/src/components/editor-interface/index.js +0 -1
- package/src/components/global-styles-provider/index.js +20 -8
- package/src/components/header/index.js +18 -10
- package/src/components/more-menu/index.js +12 -7
- package/src/components/plugin-post-publish-panel/test/__snapshots__/index.js.snap +1 -1
- package/src/components/post-taxonomies/flat-term-selector.js +8 -8
- package/src/components/post-template/swap-template-button.js +0 -3
- package/src/components/post-transform-panel/index.js +0 -3
- package/src/components/preferences-modal/index.js +26 -19
- package/src/components/preferences-modal/test/index.js +1 -1
- package/src/components/preview-dropdown/index.js +45 -16
- package/src/components/provider/use-block-editor-settings.js +10 -9
- package/src/components/sidebar/post-summary.js +1 -1
- package/src/components/sidebar/style.scss +1 -3
- package/src/components/start-page-options/index.js +0 -3
- package/src/components/start-template-options/index.js +0 -3
- package/src/components/visual-editor/index.js +7 -1
- package/src/components/visual-editor/style.scss +11 -0
- package/src/store/actions.js +110 -33
- package/src/store/constants.ts +0 -2
- package/src/store/index.js +0 -4
- package/src/store/selectors.js +2 -2
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["deepmerge","isPlainObject","privateApis","blockEditorPrivateApis","store","coreStore","useSelect","useDispatch","useMemo","useCallback","unlock","jsx","_jsx","GlobalStylesContext","cleanEmptyObject","mergeBaseAndUserConfigs","base","user","isMergeableObject","customMerge","key","baseConfig","userConfig","undefined","useGlobalStylesUserConfig","globalStylesId","isReady","settings","styles","_links","select","getEntityRecord","getEditedEntityRecord","hasFinishedResolution","canUser","_globalStylesId","__experimentalGetCurrentGlobalStylesId","record","userCanEditGlobalStyles","kind","name","id","context","hasResolved","editEntityRecord","config","setConfig","callbackOrObject","options","_record$styles","_record$settings","_record$_links","currentConfig","updatedConfig","useGlobalStylesBaseConfig","__experimentalGetCurrentThemeBaseGlobalStyles","useGlobalStylesContext","isUserConfigReady","setUserConfig","isBaseConfigReady","mergedConfig","merged","GlobalStylesProvider","children","Provider","value"],"sources":["@wordpress/editor/src/components/global-styles-provider/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport deepmerge from 'deepmerge';\nimport { isPlainObject } from 'is-plain-object';\n\n/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { GlobalStylesContext, cleanEmptyObject } = unlock(\n\tblockEditorPrivateApis\n);\n\nexport function mergeBaseAndUserConfigs( base, user ) {\n\treturn deepmerge( base, user, {\n\t\t/*\n\t\t * We only pass as arrays the presets,\n\t\t * in which case we want the new array of values\n\t\t * to override the old array (no merging).\n\t\t */\n\t\tisMergeableObject: isPlainObject,\n\t\t/*\n\t\t * Exceptions to the above rule.\n\t\t * Background images should be replaced, not merged,\n\t\t * as they themselves are specific object definitions for the style.\n\t\t */\n\t\tcustomMerge: ( key ) => {\n\t\t\tif ( key === 'backgroundImage' ) {\n\t\t\t\treturn ( baseConfig, userConfig ) => userConfig;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t} );\n}\n\nfunction useGlobalStylesUserConfig() {\n\tconst { globalStylesId, isReady, settings, styles, _links } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\thasFinishedResolution,\n\t\t\t\tcanUser,\n\t\t\t} = select( coreStore );\n\t\t\tconst _globalStylesId =\n\t\t\t\tselect( coreStore ).__experimentalGetCurrentGlobalStylesId();\n\n\t\t\tlet record;\n\n\t\t\t// We want the global styles ID request to finish before triggering\n\t\t\t// the OPTIONS request for user capabilities, otherwise it will\n\t\t\t// fetch `/wp/v2/global-styles` instead of\n\t\t\t// `/wp/v2/global-styles/{id}`!\n\t\t\t// Please adjust the preloaded requests if this changes!\n\t\t\tconst userCanEditGlobalStyles = _globalStylesId\n\t\t\t\t? canUser( 'update', {\n\t\t\t\t\t\tkind: 'root',\n\t\t\t\t\t\tname: 'globalStyles',\n\t\t\t\t\t\tid: _globalStylesId,\n\t\t\t\t } )\n\t\t\t\t: null;\n\n\t\t\tif (\n\t\t\t\t_globalStylesId &&\n\t\t\t\t// We want the OPTIONS request for user capabilities to finish\n\t\t\t\t// before getting the records, otherwise we'll fetch both!\n\t\t\t\ttypeof userCanEditGlobalStyles === 'boolean'\n\t\t\t) {\n\t\t\t\t// Please adjust the preloaded requests if this changes!\n\t\t\t\tif ( userCanEditGlobalStyles ) {\n\t\t\t\t\trecord = getEditedEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\trecord = getEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t{ context: 'view' }\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet hasResolved = false;\n\t\t\tif (\n\t\t\t\thasFinishedResolution(\n\t\t\t\t\t'__experimentalGetCurrentGlobalStylesId'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tif ( _globalStylesId ) {\n\t\t\t\t\thasResolved = userCanEditGlobalStyles\n\t\t\t\t\t\t? hasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t ] )\n\t\t\t\t\t\t: hasFinishedResolution( 'getEntityRecord', [\n\t\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t\t\t{ context: 'view' },\n\t\t\t\t\t\t ] );\n\t\t\t\t} else {\n\t\t\t\t\thasResolved = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tglobalStylesId: _globalStylesId,\n\t\t\t\tisReady: hasResolved,\n\t\t\t\tsettings: record?.settings,\n\t\t\t\tstyles: record?.styles,\n\t\t\t\t_links: record?._links,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { getEditedEntityRecord } = useSelect( coreStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst config = useMemo( () => {\n\t\treturn {\n\t\t\tsettings: settings ?? {},\n\t\t\tstyles: styles ?? {},\n\t\t\t_links: _links ?? {},\n\t\t};\n\t}, [ settings, styles, _links ] );\n\n\tconst setConfig = useCallback(\n\t\t/**\n\t\t * Set the global styles config.\n\t\t * @param {Function|Object} callbackOrObject If the callbackOrObject is a function, pass the current config to the callback so the consumer can merge values.\n\t\t * Otherwise, overwrite the current config with the incoming object.\n\t\t * @param {Object} options Options for editEntityRecord Core selector.\n\t\t */\n\t\t( callbackOrObject, options = {} ) => {\n\t\t\tconst record = getEditedEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId\n\t\t\t);\n\n\t\t\tconst currentConfig = {\n\t\t\t\tstyles: record?.styles ?? {},\n\t\t\t\tsettings: record?.settings ?? {},\n\t\t\t\t_links: record?._links ?? {},\n\t\t\t};\n\n\t\t\tconst updatedConfig =\n\t\t\t\ttypeof callbackOrObject === 'function'\n\t\t\t\t\t? callbackOrObject( currentConfig )\n\t\t\t\t\t: callbackOrObject;\n\n\t\t\teditEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId,\n\t\t\t\t{\n\t\t\t\t\tstyles: cleanEmptyObject( updatedConfig.styles ) || {},\n\t\t\t\t\tsettings: cleanEmptyObject( updatedConfig.settings ) || {},\n\t\t\t\t\t_links: cleanEmptyObject( updatedConfig._links ) || {},\n\t\t\t\t},\n\t\t\t\toptions\n\t\t\t);\n\t\t},\n\t\t[ globalStylesId, editEntityRecord, getEditedEntityRecord ]\n\t);\n\n\treturn [ isReady, config, setConfig ];\n}\n\nfunction useGlobalStylesBaseConfig() {\n\tconst baseConfig = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).__experimentalGetCurrentThemeBaseGlobalStyles(),\n\t\t[]\n\t);\n\treturn [ !! baseConfig, baseConfig ];\n}\n\nexport function useGlobalStylesContext() {\n\tconst [ isUserConfigReady, userConfig, setUserConfig ] =\n\t\tuseGlobalStylesUserConfig();\n\tconst [ isBaseConfigReady, baseConfig ] = useGlobalStylesBaseConfig();\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! baseConfig || ! userConfig ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t}, [ userConfig, baseConfig ] );\n\n\tconst context = useMemo( () => {\n\t\treturn {\n\t\t\tisReady: isUserConfigReady && isBaseConfigReady,\n\t\t\tuser: userConfig,\n\t\t\tbase: baseConfig,\n\t\t\tmerged: mergedConfig,\n\t\t\tsetUserConfig,\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tuserConfig,\n\t\tbaseConfig,\n\t\tsetUserConfig,\n\t\tisUserConfigReady,\n\t\tisBaseConfigReady,\n\t] );\n\n\treturn context;\n}\n\nexport function GlobalStylesProvider( { children } ) {\n\tconst context = useGlobalStylesContext();\n\tif ( ! context.isReady ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["deepmerge","isPlainObject","privateApis","blockEditorPrivateApis","store","coreStore","useSelect","useDispatch","useMemo","useCallback","unlock","jsx","_jsx","GlobalStylesContext","cleanEmptyObject","mergeBaseAndUserConfigs","base","user","isMergeableObject","customMerge","key","baseConfig","userConfig","undefined","useGlobalStylesUserConfig","globalStylesId","isReady","settings","styles","_links","select","getEntityRecord","getEditedEntityRecord","hasFinishedResolution","canUser","_globalStylesId","__experimentalGetCurrentGlobalStylesId","record","userCanEditGlobalStyles","kind","name","id","context","hasResolved","editEntityRecord","config","setConfig","callbackOrObject","options","_record$styles","_record$settings","_record$_links","currentConfig","updatedConfig","useGlobalStylesBaseConfig","__experimentalGetCurrentThemeBaseGlobalStyles","useGlobalStylesContext","isUserConfigReady","setUserConfig","isBaseConfigReady","mergedConfig","merged","GlobalStylesProvider","children","Provider","value"],"sources":["@wordpress/editor/src/components/global-styles-provider/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport deepmerge from 'deepmerge';\nimport { isPlainObject } from 'is-plain-object';\n\n/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { GlobalStylesContext, cleanEmptyObject } = unlock(\n\tblockEditorPrivateApis\n);\n\nexport function mergeBaseAndUserConfigs( base, user ) {\n\treturn deepmerge( base, user, {\n\t\t/*\n\t\t * We only pass as arrays the presets,\n\t\t * in which case we want the new array of values\n\t\t * to override the old array (no merging).\n\t\t */\n\t\tisMergeableObject: isPlainObject,\n\t\t/*\n\t\t * Exceptions to the above rule.\n\t\t * Background images should be replaced, not merged,\n\t\t * as they themselves are specific object definitions for the style.\n\t\t */\n\t\tcustomMerge: ( key ) => {\n\t\t\tif ( key === 'backgroundImage' ) {\n\t\t\t\treturn ( baseConfig, userConfig ) => userConfig;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t} );\n}\n\nfunction useGlobalStylesUserConfig() {\n\tconst { globalStylesId, isReady, settings, styles, _links } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\thasFinishedResolution,\n\t\t\t\tcanUser,\n\t\t\t} = select( coreStore );\n\t\t\tconst _globalStylesId =\n\t\t\t\tselect( coreStore ).__experimentalGetCurrentGlobalStylesId();\n\n\t\t\tlet record;\n\n\t\t\t/*\n\t\t\t * Ensure that the global styles ID request is complete by testing `_globalStylesId`,\n\t\t\t * before firing off the `canUser` OPTIONS request for user capabilities, otherwise it will\n\t\t\t * fetch `/wp/v2/global-styles` instead of `/wp/v2/global-styles/{id}`.\n\t\t\t * NOTE: Please keep in sync any preload paths sent to `block_editor_rest_api_preload()`,\n\t\t\t * or set using the `block_editor_rest_api_preload_paths` filter, if this changes.\n\t\t\t */\n\t\t\tconst userCanEditGlobalStyles = _globalStylesId\n\t\t\t\t? canUser( 'update', {\n\t\t\t\t\t\tkind: 'root',\n\t\t\t\t\t\tname: 'globalStyles',\n\t\t\t\t\t\tid: _globalStylesId,\n\t\t\t\t } )\n\t\t\t\t: null;\n\n\t\t\tif (\n\t\t\t\t_globalStylesId &&\n\t\t\t\t/*\n\t\t\t\t * Test that the OPTIONS request for user capabilities is complete\n\t\t\t\t * before fetching the global styles entity record.\n\t\t\t\t * This is to avoid fetching the global styles entity unnecessarily.\n\t\t\t\t */\n\t\t\t\ttypeof userCanEditGlobalStyles === 'boolean'\n\t\t\t) {\n\t\t\t\t/*\n\t\t\t\t * Fetch the global styles entity record based on the user's capabilities.\n\t\t\t\t * The default context is `edit` for users who can edit global styles.\n\t\t\t\t * Otherwise, the context is `view`.\n\t\t\t\t * NOTE: There is an equivalent conditional check using `current_user_can()` in the backend\n\t\t\t\t * to preload the global styles entity. Please keep in sync any preload paths sent to `block_editor_rest_api_preload()`,\n\t\t\t\t * or set using `block_editor_rest_api_preload_paths` filter, if this changes.\n\t\t\t\t */\n\t\t\t\tif ( userCanEditGlobalStyles ) {\n\t\t\t\t\trecord = getEditedEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\trecord = getEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t{ context: 'view' }\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet hasResolved = false;\n\t\t\tif (\n\t\t\t\thasFinishedResolution(\n\t\t\t\t\t'__experimentalGetCurrentGlobalStylesId'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tif ( _globalStylesId ) {\n\t\t\t\t\thasResolved = userCanEditGlobalStyles\n\t\t\t\t\t\t? hasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t ] )\n\t\t\t\t\t\t: hasFinishedResolution( 'getEntityRecord', [\n\t\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t\t\t{ context: 'view' },\n\t\t\t\t\t\t ] );\n\t\t\t\t} else {\n\t\t\t\t\thasResolved = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tglobalStylesId: _globalStylesId,\n\t\t\t\tisReady: hasResolved,\n\t\t\t\tsettings: record?.settings,\n\t\t\t\tstyles: record?.styles,\n\t\t\t\t_links: record?._links,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { getEditedEntityRecord } = useSelect( coreStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst config = useMemo( () => {\n\t\treturn {\n\t\t\tsettings: settings ?? {},\n\t\t\tstyles: styles ?? {},\n\t\t\t_links: _links ?? {},\n\t\t};\n\t}, [ settings, styles, _links ] );\n\n\tconst setConfig = useCallback(\n\t\t/**\n\t\t * Set the global styles config.\n\t\t * @param {Function|Object} callbackOrObject If the callbackOrObject is a function, pass the current config to the callback so the consumer can merge values.\n\t\t * Otherwise, overwrite the current config with the incoming object.\n\t\t * @param {Object} options Options for editEntityRecord Core selector.\n\t\t */\n\t\t( callbackOrObject, options = {} ) => {\n\t\t\tconst record = getEditedEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId\n\t\t\t);\n\n\t\t\tconst currentConfig = {\n\t\t\t\tstyles: record?.styles ?? {},\n\t\t\t\tsettings: record?.settings ?? {},\n\t\t\t\t_links: record?._links ?? {},\n\t\t\t};\n\n\t\t\tconst updatedConfig =\n\t\t\t\ttypeof callbackOrObject === 'function'\n\t\t\t\t\t? callbackOrObject( currentConfig )\n\t\t\t\t\t: callbackOrObject;\n\n\t\t\teditEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId,\n\t\t\t\t{\n\t\t\t\t\tstyles: cleanEmptyObject( updatedConfig.styles ) || {},\n\t\t\t\t\tsettings: cleanEmptyObject( updatedConfig.settings ) || {},\n\t\t\t\t\t_links: cleanEmptyObject( updatedConfig._links ) || {},\n\t\t\t\t},\n\t\t\t\toptions\n\t\t\t);\n\t\t},\n\t\t[ globalStylesId, editEntityRecord, getEditedEntityRecord ]\n\t);\n\n\treturn [ isReady, config, setConfig ];\n}\n\nfunction useGlobalStylesBaseConfig() {\n\tconst baseConfig = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).__experimentalGetCurrentThemeBaseGlobalStyles(),\n\t\t[]\n\t);\n\treturn [ !! baseConfig, baseConfig ];\n}\n\nexport function useGlobalStylesContext() {\n\tconst [ isUserConfigReady, userConfig, setUserConfig ] =\n\t\tuseGlobalStylesUserConfig();\n\tconst [ isBaseConfigReady, baseConfig ] = useGlobalStylesBaseConfig();\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! baseConfig || ! userConfig ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t}, [ userConfig, baseConfig ] );\n\n\tconst context = useMemo( () => {\n\t\treturn {\n\t\t\tisReady: isUserConfigReady && isBaseConfigReady,\n\t\t\tuser: userConfig,\n\t\t\tbase: baseConfig,\n\t\t\tmerged: mergedConfig,\n\t\t\tsetUserConfig,\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tuserConfig,\n\t\tbaseConfig,\n\t\tsetUserConfig,\n\t\tisUserConfigReady,\n\t\tisBaseConfigReady,\n\t] );\n\n\treturn context;\n}\n\nexport function GlobalStylesProvider( { children } ) {\n\tconst context = useGlobalStylesContext();\n\tif ( ! context.isReady ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,6 +25,7 @@ import PostViewLink from '../post-view-link';
|
|
|
25
25
|
import PreviewDropdown from '../preview-dropdown';
|
|
26
26
|
import ZoomOutToggle from '../zoom-out-toggle';
|
|
27
27
|
import { store as editorStore } from '../../store';
|
|
28
|
+
import { TEMPLATE_PART_POST_TYPE, PATTERN_POST_TYPE, NAVIGATION_POST_TYPE } from '../../store/constants';
|
|
28
29
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
29
30
|
const toolbarVariations = {
|
|
30
31
|
distractionFreeDisabled: {
|
|
@@ -65,8 +66,7 @@ function Header({
|
|
|
65
66
|
forceIsDirty,
|
|
66
67
|
forceDisableBlockTools,
|
|
67
68
|
setEntitiesSavedStatesCallback,
|
|
68
|
-
title
|
|
69
|
-
isEditorIframed
|
|
69
|
+
title
|
|
70
70
|
}) {
|
|
71
71
|
const isWideViewport = useViewportMatch('large');
|
|
72
72
|
const isLargeViewport = useViewportMatch('medium');
|
|
@@ -77,15 +77,13 @@ function Header({
|
|
|
77
77
|
isPublishSidebarOpened,
|
|
78
78
|
showIconLabels,
|
|
79
79
|
hasFixedToolbar,
|
|
80
|
-
hasBlockSelection
|
|
81
|
-
isNestedEntity
|
|
80
|
+
hasBlockSelection
|
|
82
81
|
} = useSelect(select => {
|
|
83
82
|
const {
|
|
84
83
|
get: getPreference
|
|
85
84
|
} = select(preferencesStore);
|
|
86
85
|
const {
|
|
87
86
|
getEditorMode,
|
|
88
|
-
getEditorSettings,
|
|
89
87
|
getCurrentPostType,
|
|
90
88
|
isPublishSidebarOpened: _isPublishSidebarOpened
|
|
91
89
|
} = select(editorStore);
|
|
@@ -95,11 +93,11 @@ function Header({
|
|
|
95
93
|
isPublishSidebarOpened: _isPublishSidebarOpened(),
|
|
96
94
|
showIconLabels: getPreference('core', 'showIconLabels'),
|
|
97
95
|
hasFixedToolbar: getPreference('core', 'fixedToolbar'),
|
|
98
|
-
hasBlockSelection: !!select(blockEditorStore).getBlockSelectionStart()
|
|
99
|
-
isNestedEntity: !!getEditorSettings().onNavigateToPreviousEntityRecord
|
|
96
|
+
hasBlockSelection: !!select(blockEditorStore).getBlockSelectionStart()
|
|
100
97
|
};
|
|
101
98
|
}, []);
|
|
102
99
|
const canBeZoomedOut = ['post', 'page', 'wp_template'].includes(postType);
|
|
100
|
+
const disablePreviewOption = [NAVIGATION_POST_TYPE, TEMPLATE_PART_POST_TYPE, PATTERN_POST_TYPE].includes(postType);
|
|
103
101
|
const [isBlockToolsCollapsed, setIsBlockToolsCollapsed] = useState(true);
|
|
104
102
|
const hasCenter = (!hasBlockSelection || isBlockToolsCollapsed) && !isTooNarrowForDocumentBar;
|
|
105
103
|
const hasBackButton = useHasBackButton();
|
|
@@ -154,15 +152,15 @@ function Header({
|
|
|
154
152
|
*/
|
|
155
153
|
_jsx(PostSavedState, {
|
|
156
154
|
forceIsDirty: forceIsDirty
|
|
157
|
-
}),
|
|
158
|
-
disabled: forceDisableBlockTools
|
|
159
|
-
}), /*#__PURE__*/_jsx(PreviewDropdown, {
|
|
155
|
+
}), /*#__PURE__*/_jsx(PostViewLink, {}), /*#__PURE__*/_jsx(PreviewDropdown, {
|
|
160
156
|
forceIsAutosaveable: forceIsDirty,
|
|
161
|
-
disabled:
|
|
157
|
+
disabled: disablePreviewOption
|
|
162
158
|
}), /*#__PURE__*/_jsx(PostPreviewButton, {
|
|
163
159
|
className: "editor-header__post-preview-button",
|
|
164
160
|
forceIsAutosaveable: forceIsDirty
|
|
165
|
-
}),
|
|
161
|
+
}), canBeZoomedOut && isWideViewport && /*#__PURE__*/_jsx(ZoomOutToggle, {
|
|
162
|
+
disabled: forceDisableBlockTools
|
|
163
|
+
}), (isWideViewport || !showIconLabels) && /*#__PURE__*/_jsx(PinnedItems.Slot, {
|
|
166
164
|
scope: "core"
|
|
167
165
|
}), !customSaveButton && /*#__PURE__*/_jsx(PostPublishButtonOrToggle, {
|
|
168
166
|
forceIsDirty: forceIsDirty,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["store","blockEditorStore","useSelect","useMediaQuery","useViewportMatch","__unstableMotion","motion","preferencesStore","useState","PinnedItems","CollabSidebar","BackButton","useHasBackButton","CollapsibleBlockToolbar","DocumentBar","DocumentTools","MoreMenu","PostPreviewButton","PostPublishButtonOrToggle","PostSavedState","PostViewLink","PreviewDropdown","ZoomOutToggle","editorStore","jsx","_jsx","jsxs","_jsxs","toolbarVariations","distractionFreeDisabled","y","distractionFreeHover","distractionFreeHidden","visible","hidden","backButtonVariations","x","Header","customSaveButton","forceIsDirty","forceDisableBlockTools","setEntitiesSavedStatesCallback","title","isEditorIframed","isWideViewport","isLargeViewport","isTooNarrowForDocumentBar","postType","isTextEditor","isPublishSidebarOpened","showIconLabels","hasFixedToolbar","hasBlockSelection","isNestedEntity","select","get","getPreference","getEditorMode","getEditorSettings","getCurrentPostType","_isPublishSidebarOpened","getBlockSelectionStart","onNavigateToPreviousEntityRecord","canBeZoomedOut","includes","isBlockToolsCollapsed","setIsBlockToolsCollapsed","hasCenter","hasBackButton","className","children","div","variants","transition","type","Slot","disableBlockTools","isCollapsed","onToggle","disabled","forceIsAutosaveable","scope"],"sources":["@wordpress/editor/src/components/header/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useMediaQuery, useViewportMatch } from '@wordpress/compose';\nimport { __unstableMotion as motion } from '@wordpress/components';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { useState } from '@wordpress/element';\nimport { PinnedItems } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport CollabSidebar from '../collab-sidebar';\nimport BackButton, { useHasBackButton } from './back-button';\nimport CollapsibleBlockToolbar from '../collapsible-block-toolbar';\nimport DocumentBar from '../document-bar';\nimport DocumentTools from '../document-tools';\nimport MoreMenu from '../more-menu';\nimport PostPreviewButton from '../post-preview-button';\nimport PostPublishButtonOrToggle from '../post-publish-button/post-publish-button-or-toggle';\nimport PostSavedState from '../post-saved-state';\nimport PostViewLink from '../post-view-link';\nimport PreviewDropdown from '../preview-dropdown';\nimport ZoomOutToggle from '../zoom-out-toggle';\nimport { store as editorStore } from '../../store';\n\nconst toolbarVariations = {\n\tdistractionFreeDisabled: { y: '-50px' },\n\tdistractionFreeHover: { y: 0 },\n\tdistractionFreeHidden: { y: '-50px' },\n\tvisible: { y: 0 },\n\thidden: { y: 0 },\n};\n\nconst backButtonVariations = {\n\tdistractionFreeDisabled: { x: '-100%' },\n\tdistractionFreeHover: { x: 0 },\n\tdistractionFreeHidden: { x: '-100%' },\n\tvisible: { x: 0 },\n\thidden: { x: 0 },\n};\n\nfunction Header( {\n\tcustomSaveButton,\n\tforceIsDirty,\n\tforceDisableBlockTools,\n\tsetEntitiesSavedStatesCallback,\n\ttitle,\n\tisEditorIframed,\n} ) {\n\tconst isWideViewport = useViewportMatch( 'large' );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isTooNarrowForDocumentBar = useMediaQuery( '(max-width: 403px)' );\n\tconst {\n\t\tpostType,\n\t\tisTextEditor,\n\t\tisPublishSidebarOpened,\n\t\tshowIconLabels,\n\t\thasFixedToolbar,\n\t\thasBlockSelection,\n\t\tisNestedEntity,\n\t} = useSelect( ( select ) => {\n\t\tconst { get: getPreference } = select( preferencesStore );\n\t\tconst {\n\t\t\tgetEditorMode,\n\t\t\tgetEditorSettings,\n\t\t\tgetCurrentPostType,\n\t\t\tisPublishSidebarOpened: _isPublishSidebarOpened,\n\t\t} = select( editorStore );\n\n\t\treturn {\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tisTextEditor: getEditorMode() === 'text',\n\t\t\tisPublishSidebarOpened: _isPublishSidebarOpened(),\n\t\t\tshowIconLabels: getPreference( 'core', 'showIconLabels' ),\n\t\t\thasFixedToolbar: getPreference( 'core', 'fixedToolbar' ),\n\t\t\thasBlockSelection:\n\t\t\t\t!! select( blockEditorStore ).getBlockSelectionStart(),\n\t\t\tisNestedEntity:\n\t\t\t\t!! getEditorSettings().onNavigateToPreviousEntityRecord,\n\t\t};\n\t}, [] );\n\n\tconst canBeZoomedOut = [ 'post', 'page', 'wp_template' ].includes(\n\t\tpostType\n\t);\n\n\tconst [ isBlockToolsCollapsed, setIsBlockToolsCollapsed ] =\n\t\tuseState( true );\n\n\tconst hasCenter =\n\t\t( ! hasBlockSelection || isBlockToolsCollapsed ) &&\n\t\t! isTooNarrowForDocumentBar;\n\tconst hasBackButton = useHasBackButton();\n\t/*\n\t * The edit-post-header classname is only kept for backward compatability\n\t * as some plugins might be relying on its presence.\n\t */\n\treturn (\n\t\t<div className=\"editor-header edit-post-header\">\n\t\t\t{ hasBackButton && (\n\t\t\t\t<motion.div\n\t\t\t\t\tclassName=\"editor-header__back-button\"\n\t\t\t\t\tvariants={ backButtonVariations }\n\t\t\t\t\ttransition={ { type: 'tween' } }\n\t\t\t\t>\n\t\t\t\t\t<BackButton.Slot />\n\t\t\t\t</motion.div>\n\t\t\t) }\n\t\t\t<motion.div\n\t\t\t\tvariants={ toolbarVariations }\n\t\t\t\tclassName=\"editor-header__toolbar\"\n\t\t\t\ttransition={ { type: 'tween' } }\n\t\t\t>\n\t\t\t\t<DocumentTools\n\t\t\t\t\tdisableBlockTools={ forceDisableBlockTools || isTextEditor }\n\t\t\t\t/>\n\t\t\t\t{ hasFixedToolbar && isLargeViewport && (\n\t\t\t\t\t<CollapsibleBlockToolbar\n\t\t\t\t\t\tisCollapsed={ isBlockToolsCollapsed }\n\t\t\t\t\t\tonToggle={ setIsBlockToolsCollapsed }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</motion.div>\n\t\t\t{ hasCenter && (\n\t\t\t\t<motion.div\n\t\t\t\t\tclassName=\"editor-header__center\"\n\t\t\t\t\tvariants={ toolbarVariations }\n\t\t\t\t\ttransition={ { type: 'tween' } }\n\t\t\t\t>\n\t\t\t\t\t<DocumentBar title={ title } />\n\t\t\t\t</motion.div>\n\t\t\t) }\n\t\t\t<motion.div\n\t\t\t\tvariants={ toolbarVariations }\n\t\t\t\ttransition={ { type: 'tween' } }\n\t\t\t\tclassName=\"editor-header__settings\"\n\t\t\t>\n\t\t\t\t{ ! customSaveButton && ! isPublishSidebarOpened && (\n\t\t\t\t\t/*\n\t\t\t\t\t * This button isn't completely hidden by the publish sidebar.\n\t\t\t\t\t * We can't hide the whole toolbar when the publish sidebar is open because\n\t\t\t\t\t * we want to prevent mounting/unmounting the PostPublishButtonOrToggle DOM node.\n\t\t\t\t\t * We track that DOM node to return focus to the PostPublishButtonOrToggle\n\t\t\t\t\t * when the publish sidebar has been closed.\n\t\t\t\t\t */\n\t\t\t\t\t<PostSavedState forceIsDirty={ forceIsDirty } />\n\t\t\t\t) }\n\n\t\t\t\t{ canBeZoomedOut && isEditorIframed && isWideViewport && (\n\t\t\t\t\t<ZoomOutToggle disabled={ forceDisableBlockTools } />\n\t\t\t\t) }\n\n\t\t\t\t<PreviewDropdown\n\t\t\t\t\tforceIsAutosaveable={ forceIsDirty }\n\t\t\t\t\tdisabled={ isNestedEntity }\n\t\t\t\t/>\n\t\t\t\t<PostPreviewButton\n\t\t\t\t\tclassName=\"editor-header__post-preview-button\"\n\t\t\t\t\tforceIsAutosaveable={ forceIsDirty }\n\t\t\t\t/>\n\t\t\t\t<PostViewLink />\n\n\t\t\t\t{ ( isWideViewport || ! showIconLabels ) && (\n\t\t\t\t\t<PinnedItems.Slot scope=\"core\" />\n\t\t\t\t) }\n\n\t\t\t\t{ ! customSaveButton && (\n\t\t\t\t\t<PostPublishButtonOrToggle\n\t\t\t\t\t\tforceIsDirty={ forceIsDirty }\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\t<CollabSidebar />\n\n\t\t\t\t{ customSaveButton }\n\t\t\t\t<MoreMenu />\n\t\t\t</motion.div>\n\t\t</div>\n\t);\n}\n\nexport default Header;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["store","blockEditorStore","useSelect","useMediaQuery","useViewportMatch","__unstableMotion","motion","preferencesStore","useState","PinnedItems","CollabSidebar","BackButton","useHasBackButton","CollapsibleBlockToolbar","DocumentBar","DocumentTools","MoreMenu","PostPreviewButton","PostPublishButtonOrToggle","PostSavedState","PostViewLink","PreviewDropdown","ZoomOutToggle","editorStore","TEMPLATE_PART_POST_TYPE","PATTERN_POST_TYPE","NAVIGATION_POST_TYPE","jsx","_jsx","jsxs","_jsxs","toolbarVariations","distractionFreeDisabled","y","distractionFreeHover","distractionFreeHidden","visible","hidden","backButtonVariations","x","Header","customSaveButton","forceIsDirty","forceDisableBlockTools","setEntitiesSavedStatesCallback","title","isWideViewport","isLargeViewport","isTooNarrowForDocumentBar","postType","isTextEditor","isPublishSidebarOpened","showIconLabels","hasFixedToolbar","hasBlockSelection","select","get","getPreference","getEditorMode","getCurrentPostType","_isPublishSidebarOpened","getBlockSelectionStart","canBeZoomedOut","includes","disablePreviewOption","isBlockToolsCollapsed","setIsBlockToolsCollapsed","hasCenter","hasBackButton","className","children","div","variants","transition","type","Slot","disableBlockTools","isCollapsed","onToggle","forceIsAutosaveable","disabled","scope"],"sources":["@wordpress/editor/src/components/header/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useMediaQuery, useViewportMatch } from '@wordpress/compose';\nimport { __unstableMotion as motion } from '@wordpress/components';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { useState } from '@wordpress/element';\nimport { PinnedItems } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport CollabSidebar from '../collab-sidebar';\nimport BackButton, { useHasBackButton } from './back-button';\nimport CollapsibleBlockToolbar from '../collapsible-block-toolbar';\nimport DocumentBar from '../document-bar';\nimport DocumentTools from '../document-tools';\nimport MoreMenu from '../more-menu';\nimport PostPreviewButton from '../post-preview-button';\nimport PostPublishButtonOrToggle from '../post-publish-button/post-publish-button-or-toggle';\nimport PostSavedState from '../post-saved-state';\nimport PostViewLink from '../post-view-link';\nimport PreviewDropdown from '../preview-dropdown';\nimport ZoomOutToggle from '../zoom-out-toggle';\nimport { store as editorStore } from '../../store';\nimport {\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n} from '../../store/constants';\n\nconst toolbarVariations = {\n\tdistractionFreeDisabled: { y: '-50px' },\n\tdistractionFreeHover: { y: 0 },\n\tdistractionFreeHidden: { y: '-50px' },\n\tvisible: { y: 0 },\n\thidden: { y: 0 },\n};\n\nconst backButtonVariations = {\n\tdistractionFreeDisabled: { x: '-100%' },\n\tdistractionFreeHover: { x: 0 },\n\tdistractionFreeHidden: { x: '-100%' },\n\tvisible: { x: 0 },\n\thidden: { x: 0 },\n};\n\nfunction Header( {\n\tcustomSaveButton,\n\tforceIsDirty,\n\tforceDisableBlockTools,\n\tsetEntitiesSavedStatesCallback,\n\ttitle,\n} ) {\n\tconst isWideViewport = useViewportMatch( 'large' );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isTooNarrowForDocumentBar = useMediaQuery( '(max-width: 403px)' );\n\tconst {\n\t\tpostType,\n\t\tisTextEditor,\n\t\tisPublishSidebarOpened,\n\t\tshowIconLabels,\n\t\thasFixedToolbar,\n\t\thasBlockSelection,\n\t} = useSelect( ( select ) => {\n\t\tconst { get: getPreference } = select( preferencesStore );\n\t\tconst {\n\t\t\tgetEditorMode,\n\t\t\tgetCurrentPostType,\n\t\t\tisPublishSidebarOpened: _isPublishSidebarOpened,\n\t\t} = select( editorStore );\n\n\t\treturn {\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tisTextEditor: getEditorMode() === 'text',\n\t\t\tisPublishSidebarOpened: _isPublishSidebarOpened(),\n\t\t\tshowIconLabels: getPreference( 'core', 'showIconLabels' ),\n\t\t\thasFixedToolbar: getPreference( 'core', 'fixedToolbar' ),\n\t\t\thasBlockSelection:\n\t\t\t\t!! select( blockEditorStore ).getBlockSelectionStart(),\n\t\t};\n\t}, [] );\n\n\tconst canBeZoomedOut = [ 'post', 'page', 'wp_template' ].includes(\n\t\tpostType\n\t);\n\n\tconst disablePreviewOption = [\n\t\tNAVIGATION_POST_TYPE,\n\t\tTEMPLATE_PART_POST_TYPE,\n\t\tPATTERN_POST_TYPE,\n\t].includes( postType );\n\n\tconst [ isBlockToolsCollapsed, setIsBlockToolsCollapsed ] =\n\t\tuseState( true );\n\n\tconst hasCenter =\n\t\t( ! hasBlockSelection || isBlockToolsCollapsed ) &&\n\t\t! isTooNarrowForDocumentBar;\n\tconst hasBackButton = useHasBackButton();\n\t/*\n\t * The edit-post-header classname is only kept for backward compatability\n\t * as some plugins might be relying on its presence.\n\t */\n\treturn (\n\t\t<div className=\"editor-header edit-post-header\">\n\t\t\t{ hasBackButton && (\n\t\t\t\t<motion.div\n\t\t\t\t\tclassName=\"editor-header__back-button\"\n\t\t\t\t\tvariants={ backButtonVariations }\n\t\t\t\t\ttransition={ { type: 'tween' } }\n\t\t\t\t>\n\t\t\t\t\t<BackButton.Slot />\n\t\t\t\t</motion.div>\n\t\t\t) }\n\t\t\t<motion.div\n\t\t\t\tvariants={ toolbarVariations }\n\t\t\t\tclassName=\"editor-header__toolbar\"\n\t\t\t\ttransition={ { type: 'tween' } }\n\t\t\t>\n\t\t\t\t<DocumentTools\n\t\t\t\t\tdisableBlockTools={ forceDisableBlockTools || isTextEditor }\n\t\t\t\t/>\n\t\t\t\t{ hasFixedToolbar && isLargeViewport && (\n\t\t\t\t\t<CollapsibleBlockToolbar\n\t\t\t\t\t\tisCollapsed={ isBlockToolsCollapsed }\n\t\t\t\t\t\tonToggle={ setIsBlockToolsCollapsed }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</motion.div>\n\t\t\t{ hasCenter && (\n\t\t\t\t<motion.div\n\t\t\t\t\tclassName=\"editor-header__center\"\n\t\t\t\t\tvariants={ toolbarVariations }\n\t\t\t\t\ttransition={ { type: 'tween' } }\n\t\t\t\t>\n\t\t\t\t\t<DocumentBar title={ title } />\n\t\t\t\t</motion.div>\n\t\t\t) }\n\t\t\t<motion.div\n\t\t\t\tvariants={ toolbarVariations }\n\t\t\t\ttransition={ { type: 'tween' } }\n\t\t\t\tclassName=\"editor-header__settings\"\n\t\t\t>\n\t\t\t\t{ ! customSaveButton && ! isPublishSidebarOpened && (\n\t\t\t\t\t/*\n\t\t\t\t\t * This button isn't completely hidden by the publish sidebar.\n\t\t\t\t\t * We can't hide the whole toolbar when the publish sidebar is open because\n\t\t\t\t\t * we want to prevent mounting/unmounting the PostPublishButtonOrToggle DOM node.\n\t\t\t\t\t * We track that DOM node to return focus to the PostPublishButtonOrToggle\n\t\t\t\t\t * when the publish sidebar has been closed.\n\t\t\t\t\t */\n\t\t\t\t\t<PostSavedState forceIsDirty={ forceIsDirty } />\n\t\t\t\t) }\n\n\t\t\t\t<PostViewLink />\n\n\t\t\t\t<PreviewDropdown\n\t\t\t\t\tforceIsAutosaveable={ forceIsDirty }\n\t\t\t\t\tdisabled={ disablePreviewOption }\n\t\t\t\t/>\n\n\t\t\t\t<PostPreviewButton\n\t\t\t\t\tclassName=\"editor-header__post-preview-button\"\n\t\t\t\t\tforceIsAutosaveable={ forceIsDirty }\n\t\t\t\t/>\n\n\t\t\t\t{ canBeZoomedOut && isWideViewport && (\n\t\t\t\t\t<ZoomOutToggle disabled={ forceDisableBlockTools } />\n\t\t\t\t) }\n\n\t\t\t\t{ ( isWideViewport || ! showIconLabels ) && (\n\t\t\t\t\t<PinnedItems.Slot scope=\"core\" />\n\t\t\t\t) }\n\n\t\t\t\t{ ! customSaveButton && (\n\t\t\t\t\t<PostPublishButtonOrToggle\n\t\t\t\t\t\tforceIsDirty={ forceIsDirty }\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\t<CollabSidebar />\n\n\t\t\t\t{ customSaveButton }\n\t\t\t\t<MoreMenu />\n\t\t\t</motion.div>\n\t\t</div>\n\t);\n}\n\nexport default Header;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -59,25 +59,27 @@ export default function MoreMenu() {
|
|
|
59
59
|
onToggle: turnOffDistractionFree,
|
|
60
60
|
label: __('Top toolbar'),
|
|
61
61
|
info: __('Access all block and document tools in a single place'),
|
|
62
|
-
messageActivated: __('Top toolbar activated'),
|
|
63
|
-
messageDeactivated: __('Top toolbar deactivated')
|
|
62
|
+
messageActivated: __('Top toolbar activated.'),
|
|
63
|
+
messageDeactivated: __('Top toolbar deactivated.')
|
|
64
64
|
}), /*#__PURE__*/_jsx(PreferenceToggleMenuItem, {
|
|
65
65
|
scope: "core",
|
|
66
66
|
name: "distractionFree",
|
|
67
67
|
label: __('Distraction free'),
|
|
68
68
|
info: __('Write with calmness'),
|
|
69
69
|
handleToggling: false,
|
|
70
|
-
onToggle: toggleDistractionFree
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
onToggle: () => toggleDistractionFree({
|
|
71
|
+
createNotice: false
|
|
72
|
+
}),
|
|
73
|
+
messageActivated: __('Distraction free mode activated.'),
|
|
74
|
+
messageDeactivated: __('Distraction free mode deactivated.'),
|
|
73
75
|
shortcut: displayShortcut.primaryShift('\\')
|
|
74
76
|
}), /*#__PURE__*/_jsx(PreferenceToggleMenuItem, {
|
|
75
77
|
scope: "core",
|
|
76
78
|
name: "focusMode",
|
|
77
79
|
label: __('Spotlight mode'),
|
|
78
80
|
info: __('Focus on one block at a time'),
|
|
79
|
-
messageActivated: __('Spotlight mode activated'),
|
|
80
|
-
messageDeactivated: __('Spotlight mode deactivated')
|
|
81
|
+
messageActivated: __('Spotlight mode activated.'),
|
|
82
|
+
messageDeactivated: __('Spotlight mode deactivated.')
|
|
81
83
|
}), /*#__PURE__*/_jsx(ViewMoreMenuGroup.Slot, {
|
|
82
84
|
fillProps: {
|
|
83
85
|
onClose
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","_x","useSelect","useDispatch","displayShortcut","external","moreVertical","MenuGroup","MenuItem","VisuallyHidden","DropdownMenu","PreferenceToggleMenuItem","store","preferencesStore","interfaceStore","ActionItem","CopyContentMenuItem","ModeSwitcher","ToolsMoreMenuGroup","ViewMoreMenuGroup","editorStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","MoreMenu","openModal","set","setPreference","toggleDistractionFree","showIconLabels","select","get","turnOffDistractionFree","children","icon","label","popoverProps","placement","className","toggleProps","showTooltip","variant","tooltipPosition","size","onClose","scope","name","onToggle","info","messageActivated","messageDeactivated","handleToggling","shortcut","primaryShift","Slot","fillProps","as","onClick","access","href","target","rel"],"sources":["@wordpress/editor/src/components/more-menu/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { external, moreVertical } from '@wordpress/icons';\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tVisuallyHidden,\n\tDropdownMenu,\n} from '@wordpress/components';\nimport {\n\tPreferenceToggleMenuItem,\n\tstore as preferencesStore,\n} from '@wordpress/preferences';\nimport { store as interfaceStore, ActionItem } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport CopyContentMenuItem from './copy-content-menu-item';\nimport ModeSwitcher from '../mode-switcher';\nimport ToolsMoreMenuGroup from './tools-more-menu-group';\nimport ViewMoreMenuGroup from './view-more-menu-group';\nimport { store as editorStore } from '../../store';\n\nexport default function MoreMenu() {\n\tconst { openModal } = useDispatch( interfaceStore );\n\tconst { set: setPreference } = useDispatch( preferencesStore );\n\tconst { toggleDistractionFree } = useDispatch( editorStore );\n\tconst showIconLabels = useSelect(\n\t\t( select ) =>\n\t\t\tselect( preferencesStore ).get( 'core', 'showIconLabels' ),\n\t\t[]\n\t);\n\tconst turnOffDistractionFree = () => {\n\t\tsetPreference( 'core', 'distractionFree', false );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenu\n\t\t\t\ticon={ moreVertical }\n\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tplacement: 'bottom-end',\n\t\t\t\t\tclassName: 'more-menu-dropdown__content',\n\t\t\t\t} }\n\t\t\t\ttoggleProps={ {\n\t\t\t\t\tshowTooltip: ! showIconLabels,\n\t\t\t\t\t...( showIconLabels && { variant: 'tertiary' } ),\n\t\t\t\t\ttooltipPosition: 'bottom',\n\t\t\t\t\tsize: 'compact',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<MenuGroup label={ _x( 'View', 'noun' ) }>\n\t\t\t\t\t\t\t<PreferenceToggleMenuItem\n\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\tname=\"fixedToolbar\"\n\t\t\t\t\t\t\t\tonToggle={ turnOffDistractionFree }\n\t\t\t\t\t\t\t\tlabel={ __( 'Top toolbar' ) }\n\t\t\t\t\t\t\t\tinfo={ __(\n\t\t\t\t\t\t\t\t\t'Access all block and document tools in a single place'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tmessageActivated={ __(\n\t\t\t\t\t\t\t\t\t'Top toolbar activated'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tmessageDeactivated={ __(\n\t\t\t\t\t\t\t\t\t'Top toolbar deactivated'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PreferenceToggleMenuItem\n\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\tname=\"distractionFree\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Distraction free' ) }\n\t\t\t\t\t\t\t\tinfo={ __( 'Write with calmness' ) }\n\t\t\t\t\t\t\t\thandleToggling={ false }\n\t\t\t\t\t\t\t\tonToggle={ toggleDistractionFree }\n\t\t\t\t\t\t\t\tmessageActivated={ __(\n\t\t\t\t\t\t\t\t\t'Distraction free mode activated'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tmessageDeactivated={ __(\n\t\t\t\t\t\t\t\t\t'Distraction free mode deactivated'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tshortcut={ displayShortcut.primaryShift(\n\t\t\t\t\t\t\t\t\t'\\\\'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PreferenceToggleMenuItem\n\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\tname=\"focusMode\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Spotlight mode' ) }\n\t\t\t\t\t\t\t\tinfo={ __( 'Focus on one block at a time' ) }\n\t\t\t\t\t\t\t\tmessageActivated={ __(\n\t\t\t\t\t\t\t\t\t'Spotlight mode activated'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tmessageDeactivated={ __(\n\t\t\t\t\t\t\t\t\t'Spotlight mode deactivated'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ViewMoreMenuGroup.Slot fillProps={ { onClose } } />\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t<ModeSwitcher />\n\t\t\t\t\t\t<ActionItem.Slot\n\t\t\t\t\t\t\tname=\"core/plugin-more-menu\"\n\t\t\t\t\t\t\tlabel={ __( 'Plugins' ) }\n\t\t\t\t\t\t\tas={ MenuGroup }\n\t\t\t\t\t\t\tfillProps={ { onClick: onClose } }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<MenuGroup label={ __( 'Tools' ) }>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\topenModal( 'editor/keyboard-shortcut-help' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tshortcut={ displayShortcut.access( 'h' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Keyboard shortcuts' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t<CopyContentMenuItem />\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/wordpress-block-editor/'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Help' ) }\n\t\t\t\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t<ToolsMoreMenuGroup.Slot\n\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\topenModal( 'editor/preferences' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Preferences' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</DropdownMenu>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__","_x","useSelect","useDispatch","displayShortcut","external","moreVertical","MenuGroup","MenuItem","VisuallyHidden","DropdownMenu","PreferenceToggleMenuItem","store","preferencesStore","interfaceStore","ActionItem","CopyContentMenuItem","ModeSwitcher","ToolsMoreMenuGroup","ViewMoreMenuGroup","editorStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","MoreMenu","openModal","set","setPreference","toggleDistractionFree","showIconLabels","select","get","turnOffDistractionFree","children","icon","label","popoverProps","placement","className","toggleProps","showTooltip","variant","tooltipPosition","size","onClose","scope","name","onToggle","info","messageActivated","messageDeactivated","handleToggling","createNotice","shortcut","primaryShift","Slot","fillProps","as","onClick","access","href","target","rel"],"sources":["@wordpress/editor/src/components/more-menu/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { external, moreVertical } from '@wordpress/icons';\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tVisuallyHidden,\n\tDropdownMenu,\n} from '@wordpress/components';\nimport {\n\tPreferenceToggleMenuItem,\n\tstore as preferencesStore,\n} from '@wordpress/preferences';\nimport { store as interfaceStore, ActionItem } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport CopyContentMenuItem from './copy-content-menu-item';\nimport ModeSwitcher from '../mode-switcher';\nimport ToolsMoreMenuGroup from './tools-more-menu-group';\nimport ViewMoreMenuGroup from './view-more-menu-group';\nimport { store as editorStore } from '../../store';\n\nexport default function MoreMenu() {\n\tconst { openModal } = useDispatch( interfaceStore );\n\tconst { set: setPreference } = useDispatch( preferencesStore );\n\tconst { toggleDistractionFree } = useDispatch( editorStore );\n\tconst showIconLabels = useSelect(\n\t\t( select ) =>\n\t\t\tselect( preferencesStore ).get( 'core', 'showIconLabels' ),\n\t\t[]\n\t);\n\n\tconst turnOffDistractionFree = () => {\n\t\tsetPreference( 'core', 'distractionFree', false );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenu\n\t\t\t\ticon={ moreVertical }\n\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tplacement: 'bottom-end',\n\t\t\t\t\tclassName: 'more-menu-dropdown__content',\n\t\t\t\t} }\n\t\t\t\ttoggleProps={ {\n\t\t\t\t\tshowTooltip: ! showIconLabels,\n\t\t\t\t\t...( showIconLabels && { variant: 'tertiary' } ),\n\t\t\t\t\ttooltipPosition: 'bottom',\n\t\t\t\t\tsize: 'compact',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<MenuGroup label={ _x( 'View', 'noun' ) }>\n\t\t\t\t\t\t\t<PreferenceToggleMenuItem\n\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\tname=\"fixedToolbar\"\n\t\t\t\t\t\t\t\tonToggle={ turnOffDistractionFree }\n\t\t\t\t\t\t\t\tlabel={ __( 'Top toolbar' ) }\n\t\t\t\t\t\t\t\tinfo={ __(\n\t\t\t\t\t\t\t\t\t'Access all block and document tools in a single place'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tmessageActivated={ __(\n\t\t\t\t\t\t\t\t\t'Top toolbar activated.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tmessageDeactivated={ __(\n\t\t\t\t\t\t\t\t\t'Top toolbar deactivated.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PreferenceToggleMenuItem\n\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\tname=\"distractionFree\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Distraction free' ) }\n\t\t\t\t\t\t\t\tinfo={ __( 'Write with calmness' ) }\n\t\t\t\t\t\t\t\thandleToggling={ false }\n\t\t\t\t\t\t\t\tonToggle={ () =>\n\t\t\t\t\t\t\t\t\ttoggleDistractionFree( {\n\t\t\t\t\t\t\t\t\t\tcreateNotice: false,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmessageActivated={ __(\n\t\t\t\t\t\t\t\t\t'Distraction free mode activated.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tmessageDeactivated={ __(\n\t\t\t\t\t\t\t\t\t'Distraction free mode deactivated.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tshortcut={ displayShortcut.primaryShift(\n\t\t\t\t\t\t\t\t\t'\\\\'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PreferenceToggleMenuItem\n\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\tname=\"focusMode\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Spotlight mode' ) }\n\t\t\t\t\t\t\t\tinfo={ __( 'Focus on one block at a time' ) }\n\t\t\t\t\t\t\t\tmessageActivated={ __(\n\t\t\t\t\t\t\t\t\t'Spotlight mode activated.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tmessageDeactivated={ __(\n\t\t\t\t\t\t\t\t\t'Spotlight mode deactivated.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ViewMoreMenuGroup.Slot fillProps={ { onClose } } />\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t<ModeSwitcher />\n\t\t\t\t\t\t<ActionItem.Slot\n\t\t\t\t\t\t\tname=\"core/plugin-more-menu\"\n\t\t\t\t\t\t\tlabel={ __( 'Plugins' ) }\n\t\t\t\t\t\t\tas={ MenuGroup }\n\t\t\t\t\t\t\tfillProps={ { onClick: onClose } }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<MenuGroup label={ __( 'Tools' ) }>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\topenModal( 'editor/keyboard-shortcut-help' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tshortcut={ displayShortcut.access( 'h' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Keyboard shortcuts' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t<CopyContentMenuItem />\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/wordpress-block-editor/'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Help' ) }\n\t\t\t\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t<ToolsMoreMenuGroup.Slot\n\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\topenModal( 'editor/preferences' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Preferences' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</DropdownMenu>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -43,6 +43,15 @@ const isSameTermName = (termA, termB) => unescapeString(termA).toLowerCase() ===
|
|
|
43
43
|
const termNamesToIds = (names, terms) => {
|
|
44
44
|
return names.map(termName => terms.find(term => isSameTermName(term.name, termName))?.id).filter(id => id !== undefined);
|
|
45
45
|
};
|
|
46
|
+
const Wrapper = ({
|
|
47
|
+
children,
|
|
48
|
+
__nextHasNoMarginBottom
|
|
49
|
+
}) => __nextHasNoMarginBottom ? /*#__PURE__*/_jsx(VStack, {
|
|
50
|
+
spacing: 4,
|
|
51
|
+
children: children
|
|
52
|
+
}) : /*#__PURE__*/_jsx(Fragment, {
|
|
53
|
+
children: children
|
|
54
|
+
});
|
|
46
55
|
|
|
47
56
|
/**
|
|
48
57
|
* Renders a flat term selector component.
|
|
@@ -216,15 +225,8 @@ export function FlatTermSelector({
|
|
|
216
225
|
_x('%s removed', 'term'), singularName);
|
|
217
226
|
const removeTermLabel = sprintf(/* translators: %s: term name. */
|
|
218
227
|
_x('Remove %s', 'term'), singularName);
|
|
219
|
-
const Wrapper = ({
|
|
220
|
-
children
|
|
221
|
-
}) => __nextHasNoMarginBottom ? /*#__PURE__*/_jsx(VStack, {
|
|
222
|
-
spacing: 4,
|
|
223
|
-
children: children
|
|
224
|
-
}) : /*#__PURE__*/_jsx(Fragment, {
|
|
225
|
-
children: children
|
|
226
|
-
});
|
|
227
228
|
return /*#__PURE__*/_jsxs(Wrapper, {
|
|
229
|
+
__nextHasNoMarginBottom: __nextHasNoMarginBottom,
|
|
228
230
|
children: [/*#__PURE__*/_jsx(FormTokenField, {
|
|
229
231
|
__next40pxDefaultSize: true,
|
|
230
232
|
value: values,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","_x","sprintf","Fragment","useEffect","useMemo","useState","FormTokenField","withFilters","__experimentalVStack","VStack","useSelect","useDispatch","deprecated","store","coreStore","useDebounce","speak","noticesStore","editorStore","unescapeString","unescapeTerm","MostUsedTerms","jsx","_jsx","jsxs","_jsxs","EMPTY_ARRAY","MAX_TERMS_SUGGESTIONS","DEFAULT_QUERY","per_page","_fields","context","isSameTermName","termA","termB","toLowerCase","termNamesToIds","names","terms","map","termName","find","term","name","id","filter","undefined","FlatTermSelector","slug","__nextHasNoMarginBottom","_taxonomy$labels$add_","_taxonomy$labels$sing2","values","setValues","search","setSearch","debouncedSearch","since","version","hint","termIds","taxonomy","hasAssignAction","hasCreateAction","hasResolvedTerms","select","_post$_links","_post$_links2","getCurrentPost","getEditedPostAttribute","getEntityRecords","getTaxonomy","hasFinishedResolution","post","_taxonomy","_termIds","rest_base","query","include","join","_links","length","searchResults","newValues","suggestions","editPost","saveEntityRecord","createErrorNotice","findOrCreateTerm","newTerm","throwOnError","error","code","data","term_id","onUpdateTerms","newTermIds","onChange","termNames","availableTerms","uniqueTerms","reduce","acc","some","n","push","newTermNames","Promise","all","then","newTerms","newAvailableTerms","concat","catch","message","type","appendTerm","_taxonomy$labels$sing","includes","defaultName","termAddedMessage","labels","singular_name","newTermLabel","add_new_item","singularName","termAddedLabel","termRemovedLabel","removeTermLabel","Wrapper","children","spacing","__next40pxDefaultSize","value","onInputChange","maxSuggestions","label","messages","added","removed","remove","onSelect"],"sources":["@wordpress/editor/src/components/post-taxonomies/flat-term-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { Fragment, useEffect, useMemo, useState } from '@wordpress/element';\nimport {\n\tFormTokenField,\n\twithFilters,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDebounce } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unescapeString, unescapeTerm } from '../../utils/terms';\nimport MostUsedTerms from './most-used-terms';\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array<any>}\n */\nconst EMPTY_ARRAY = [];\n\n/**\n * How the max suggestions limit was chosen:\n * - Matches the `per_page` range set by the REST API.\n * - Can't use \"unbound\" query. The `FormTokenField` needs a fixed number.\n * - Matches default for `FormTokenField`.\n */\nconst MAX_TERMS_SUGGESTIONS = 100;\nconst DEFAULT_QUERY = {\n\tper_page: MAX_TERMS_SUGGESTIONS,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nconst isSameTermName = ( termA, termB ) =>\n\tunescapeString( termA ).toLowerCase() ===\n\tunescapeString( termB ).toLowerCase();\n\nconst termNamesToIds = ( names, terms ) => {\n\treturn names\n\t\t.map(\n\t\t\t( termName ) =>\n\t\t\t\tterms.find( ( term ) => isSameTermName( term.name, termName ) )\n\t\t\t\t\t?.id\n\t\t)\n\t\t.filter( ( id ) => id !== undefined );\n};\n\n/**\n * Renders a flat term selector component.\n *\n * @param {Object} props The component props.\n * @param {string} props.slug The slug of the taxonomy.\n * @param {boolean} props.__nextHasNoMarginBottom Start opting into the new margin-free styles that will become the default in a future version, currently scheduled to be WordPress 7.0. (The prop can be safely removed once this happens.)\n *\n * @return {JSX.Element} The rendered flat term selector component.\n */\nexport function FlatTermSelector( { slug, __nextHasNoMarginBottom } ) {\n\tconst [ values, setValues ] = useState( [] );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tif ( ! __nextHasNoMarginBottom ) {\n\t\tdeprecated(\n\t\t\t'Bottom margin styles for wp.editor.PostTaxonomiesFlatTermSelector',\n\t\t\t{\n\t\t\t\tsince: '6.7',\n\t\t\t\tversion: '7.0',\n\t\t\t\thint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version.',\n\t\t\t}\n\t\t);\n\t}\n\n\tconst {\n\t\tterms,\n\t\ttermIds,\n\t\ttaxonomy,\n\t\thasAssignAction,\n\t\thasCreateAction,\n\t\thasResolvedTerms,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentPost, getEditedPostAttribute } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getEntityRecords, getTaxonomy, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst post = getCurrentPost();\n\t\t\tconst _taxonomy = getTaxonomy( slug );\n\t\t\tconst _termIds = _taxonomy\n\t\t\t\t? getEditedPostAttribute( _taxonomy.rest_base )\n\t\t\t\t: EMPTY_ARRAY;\n\n\t\t\tconst query = {\n\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\tinclude: _termIds?.join( ',' ),\n\t\t\t\tper_page: -1,\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\thasCreateAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t\ttermIds: _termIds,\n\t\t\t\tterms: _termIds?.length\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, query )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\thasResolvedTerms: hasFinishedResolution( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tquery,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ slug ]\n\t);\n\n\tconst { searchResults } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tsearchResults: !! search\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, {\n\t\t\t\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\t\t\t\tsearch,\n\t\t\t\t\t } )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t};\n\t\t},\n\t\t[ search, slug ]\n\t);\n\n\t// Update terms state only after the selectors are resolved.\n\t// We're using this to avoid terms temporarily disappearing on slow networks\n\t// while core data makes REST API requests.\n\tuseEffect( () => {\n\t\tif ( hasResolvedTerms ) {\n\t\t\tconst newValues = ( terms ?? [] ).map( ( term ) =>\n\t\t\t\tunescapeString( term.name )\n\t\t\t);\n\n\t\t\tsetValues( newValues );\n\t\t}\n\t}, [ terms, hasResolvedTerms ] );\n\n\tconst suggestions = useMemo( () => {\n\t\treturn ( searchResults ?? [] ).map( ( term ) =>\n\t\t\tunescapeString( term.name )\n\t\t);\n\t}, [ searchResults ] );\n\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\n\t}\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst newTerm = await saveEntityRecord( 'taxonomy', slug, term, {\n\t\t\t\tthrowOnError: true,\n\t\t\t} );\n\t\t\treturn unescapeTerm( newTerm );\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tid: error.data.term_id,\n\t\t\t\tname: term.name,\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction onUpdateTerms( newTermIds ) {\n\t\teditPost( { [ taxonomy.rest_base ]: newTermIds } );\n\t}\n\n\tfunction onChange( termNames ) {\n\t\tconst availableTerms = [\n\t\t\t...( terms ?? [] ),\n\t\t\t...( searchResults ?? [] ),\n\t\t];\n\t\tconst uniqueTerms = termNames.reduce( ( acc, name ) => {\n\t\t\tif (\n\t\t\t\t! acc.some( ( n ) => n.toLowerCase() === name.toLowerCase() )\n\t\t\t) {\n\t\t\t\tacc.push( name );\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, [] );\n\n\t\tconst newTermNames = uniqueTerms.filter(\n\t\t\t( termName ) =>\n\t\t\t\t! availableTerms.find( ( term ) =>\n\t\t\t\t\tisSameTermName( term.name, termName )\n\t\t\t\t)\n\t\t);\n\n\t\t// Optimistically update term values.\n\t\t// The selector will always re-fetch terms later.\n\t\tsetValues( uniqueTerms );\n\n\t\tif ( newTermNames.length === 0 ) {\n\t\t\tonUpdateTerms( termNamesToIds( uniqueTerms, availableTerms ) );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! hasCreateAction ) {\n\t\t\treturn;\n\t\t}\n\n\t\tPromise.all(\n\t\t\tnewTermNames.map( ( termName ) =>\n\t\t\t\tfindOrCreateTerm( { name: termName } )\n\t\t\t)\n\t\t)\n\t\t\t.then( ( newTerms ) => {\n\t\t\t\tconst newAvailableTerms = availableTerms.concat( newTerms );\n\t\t\t\tonUpdateTerms(\n\t\t\t\t\ttermNamesToIds( uniqueTerms, newAvailableTerms )\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\t// In case of a failure, try assigning available terms.\n\t\t\t\t// This will invalidate the optimistic update.\n\t\t\t\tonUpdateTerms( termNamesToIds( uniqueTerms, availableTerms ) );\n\t\t\t} );\n\t}\n\n\tfunction appendTerm( newTerm ) {\n\t\tif ( termIds.includes( newTerm.id ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newTermIds = [ ...termIds, newTerm.id ];\n\t\tconst defaultName = slug === 'post_tag' ? __( 'Tag' ) : __( 'Term' );\n\t\tconst termAddedMessage = sprintf(\n\t\t\t/* translators: %s: term name. */\n\t\t\t_x( '%s added', 'term' ),\n\t\t\ttaxonomy?.labels?.singular_name ?? defaultName\n\t\t);\n\n\t\tspeak( termAddedMessage, 'assertive' );\n\t\tonUpdateTerms( newTermIds );\n\t}\n\n\tconst newTermLabel =\n\t\ttaxonomy?.labels?.add_new_item ??\n\t\t( slug === 'post_tag' ? __( 'Add new tag' ) : __( 'Add new Term' ) );\n\tconst singularName =\n\t\ttaxonomy?.labels?.singular_name ??\n\t\t( slug === 'post_tag' ? __( 'Tag' ) : __( 'Term' ) );\n\tconst termAddedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s added', 'term' ),\n\t\tsingularName\n\t);\n\tconst termRemovedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s removed', 'term' ),\n\t\tsingularName\n\t);\n\tconst removeTermLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( 'Remove %s', 'term' ),\n\t\tsingularName\n\t);\n\n\tconst Wrapper = ( { children } ) =>\n\t\t__nextHasNoMarginBottom ? (\n\t\t\t<VStack spacing={ 4 }>{ children }</VStack>\n\t\t) : (\n\t\t\t<Fragment>{ children }</Fragment>\n\t\t);\n\n\treturn (\n\t\t<Wrapper>\n\t\t\t<FormTokenField\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tvalue={ values }\n\t\t\t\tsuggestions={ suggestions }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonInputChange={ debouncedSearch }\n\t\t\t\tmaxSuggestions={ MAX_TERMS_SUGGESTIONS }\n\t\t\t\tlabel={ newTermLabel }\n\t\t\t\tmessages={ {\n\t\t\t\t\tadded: termAddedLabel,\n\t\t\t\t\tremoved: termRemovedLabel,\n\t\t\t\t\tremove: removeTermLabel,\n\t\t\t\t} }\n\t\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t/>\n\t\t\t<MostUsedTerms taxonomy={ taxonomy } onSelect={ appendTerm } />\n\t\t</Wrapper>\n\t);\n}\n\nexport default withFilters( 'editor.PostTaxonomyType' )( FlatTermSelector );\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__","_x","sprintf","Fragment","useEffect","useMemo","useState","FormTokenField","withFilters","__experimentalVStack","VStack","useSelect","useDispatch","deprecated","store","coreStore","useDebounce","speak","noticesStore","editorStore","unescapeString","unescapeTerm","MostUsedTerms","jsx","_jsx","jsxs","_jsxs","EMPTY_ARRAY","MAX_TERMS_SUGGESTIONS","DEFAULT_QUERY","per_page","_fields","context","isSameTermName","termA","termB","toLowerCase","termNamesToIds","names","terms","map","termName","find","term","name","id","filter","undefined","Wrapper","children","__nextHasNoMarginBottom","spacing","FlatTermSelector","slug","_taxonomy$labels$add_","_taxonomy$labels$sing2","values","setValues","search","setSearch","debouncedSearch","since","version","hint","termIds","taxonomy","hasAssignAction","hasCreateAction","hasResolvedTerms","select","_post$_links","_post$_links2","getCurrentPost","getEditedPostAttribute","getEntityRecords","getTaxonomy","hasFinishedResolution","post","_taxonomy","_termIds","rest_base","query","include","join","_links","length","searchResults","newValues","suggestions","editPost","saveEntityRecord","createErrorNotice","findOrCreateTerm","newTerm","throwOnError","error","code","data","term_id","onUpdateTerms","newTermIds","onChange","termNames","availableTerms","uniqueTerms","reduce","acc","some","n","push","newTermNames","Promise","all","then","newTerms","newAvailableTerms","concat","catch","message","type","appendTerm","_taxonomy$labels$sing","includes","defaultName","termAddedMessage","labels","singular_name","newTermLabel","add_new_item","singularName","termAddedLabel","termRemovedLabel","removeTermLabel","__next40pxDefaultSize","value","onInputChange","maxSuggestions","label","messages","added","removed","remove","onSelect"],"sources":["@wordpress/editor/src/components/post-taxonomies/flat-term-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { Fragment, useEffect, useMemo, useState } from '@wordpress/element';\nimport {\n\tFormTokenField,\n\twithFilters,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDebounce } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unescapeString, unescapeTerm } from '../../utils/terms';\nimport MostUsedTerms from './most-used-terms';\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array<any>}\n */\nconst EMPTY_ARRAY = [];\n\n/**\n * How the max suggestions limit was chosen:\n * - Matches the `per_page` range set by the REST API.\n * - Can't use \"unbound\" query. The `FormTokenField` needs a fixed number.\n * - Matches default for `FormTokenField`.\n */\nconst MAX_TERMS_SUGGESTIONS = 100;\nconst DEFAULT_QUERY = {\n\tper_page: MAX_TERMS_SUGGESTIONS,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nconst isSameTermName = ( termA, termB ) =>\n\tunescapeString( termA ).toLowerCase() ===\n\tunescapeString( termB ).toLowerCase();\n\nconst termNamesToIds = ( names, terms ) => {\n\treturn names\n\t\t.map(\n\t\t\t( termName ) =>\n\t\t\t\tterms.find( ( term ) => isSameTermName( term.name, termName ) )\n\t\t\t\t\t?.id\n\t\t)\n\t\t.filter( ( id ) => id !== undefined );\n};\n\nconst Wrapper = ( { children, __nextHasNoMarginBottom } ) =>\n\t__nextHasNoMarginBottom ? (\n\t\t<VStack spacing={ 4 }>{ children }</VStack>\n\t) : (\n\t\t<Fragment>{ children }</Fragment>\n\t);\n\n/**\n * Renders a flat term selector component.\n *\n * @param {Object} props The component props.\n * @param {string} props.slug The slug of the taxonomy.\n * @param {boolean} props.__nextHasNoMarginBottom Start opting into the new margin-free styles that will become the default in a future version, currently scheduled to be WordPress 7.0. (The prop can be safely removed once this happens.)\n *\n * @return {JSX.Element} The rendered flat term selector component.\n */\nexport function FlatTermSelector( { slug, __nextHasNoMarginBottom } ) {\n\tconst [ values, setValues ] = useState( [] );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tif ( ! __nextHasNoMarginBottom ) {\n\t\tdeprecated(\n\t\t\t'Bottom margin styles for wp.editor.PostTaxonomiesFlatTermSelector',\n\t\t\t{\n\t\t\t\tsince: '6.7',\n\t\t\t\tversion: '7.0',\n\t\t\t\thint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version.',\n\t\t\t}\n\t\t);\n\t}\n\n\tconst {\n\t\tterms,\n\t\ttermIds,\n\t\ttaxonomy,\n\t\thasAssignAction,\n\t\thasCreateAction,\n\t\thasResolvedTerms,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentPost, getEditedPostAttribute } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getEntityRecords, getTaxonomy, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst post = getCurrentPost();\n\t\t\tconst _taxonomy = getTaxonomy( slug );\n\t\t\tconst _termIds = _taxonomy\n\t\t\t\t? getEditedPostAttribute( _taxonomy.rest_base )\n\t\t\t\t: EMPTY_ARRAY;\n\n\t\t\tconst query = {\n\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\tinclude: _termIds?.join( ',' ),\n\t\t\t\tper_page: -1,\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\thasCreateAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? post._links?.[\n\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base\n\t\t\t\t\t ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t\ttermIds: _termIds,\n\t\t\t\tterms: _termIds?.length\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, query )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\thasResolvedTerms: hasFinishedResolution( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tquery,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ slug ]\n\t);\n\n\tconst { searchResults } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tsearchResults: !! search\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, {\n\t\t\t\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\t\t\t\tsearch,\n\t\t\t\t\t } )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t};\n\t\t},\n\t\t[ search, slug ]\n\t);\n\n\t// Update terms state only after the selectors are resolved.\n\t// We're using this to avoid terms temporarily disappearing on slow networks\n\t// while core data makes REST API requests.\n\tuseEffect( () => {\n\t\tif ( hasResolvedTerms ) {\n\t\t\tconst newValues = ( terms ?? [] ).map( ( term ) =>\n\t\t\t\tunescapeString( term.name )\n\t\t\t);\n\n\t\t\tsetValues( newValues );\n\t\t}\n\t}, [ terms, hasResolvedTerms ] );\n\n\tconst suggestions = useMemo( () => {\n\t\treturn ( searchResults ?? [] ).map( ( term ) =>\n\t\t\tunescapeString( term.name )\n\t\t);\n\t}, [ searchResults ] );\n\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\n\t}\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst newTerm = await saveEntityRecord( 'taxonomy', slug, term, {\n\t\t\t\tthrowOnError: true,\n\t\t\t} );\n\t\t\treturn unescapeTerm( newTerm );\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tid: error.data.term_id,\n\t\t\t\tname: term.name,\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction onUpdateTerms( newTermIds ) {\n\t\teditPost( { [ taxonomy.rest_base ]: newTermIds } );\n\t}\n\n\tfunction onChange( termNames ) {\n\t\tconst availableTerms = [\n\t\t\t...( terms ?? [] ),\n\t\t\t...( searchResults ?? [] ),\n\t\t];\n\t\tconst uniqueTerms = termNames.reduce( ( acc, name ) => {\n\t\t\tif (\n\t\t\t\t! acc.some( ( n ) => n.toLowerCase() === name.toLowerCase() )\n\t\t\t) {\n\t\t\t\tacc.push( name );\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, [] );\n\n\t\tconst newTermNames = uniqueTerms.filter(\n\t\t\t( termName ) =>\n\t\t\t\t! availableTerms.find( ( term ) =>\n\t\t\t\t\tisSameTermName( term.name, termName )\n\t\t\t\t)\n\t\t);\n\n\t\t// Optimistically update term values.\n\t\t// The selector will always re-fetch terms later.\n\t\tsetValues( uniqueTerms );\n\n\t\tif ( newTermNames.length === 0 ) {\n\t\t\tonUpdateTerms( termNamesToIds( uniqueTerms, availableTerms ) );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! hasCreateAction ) {\n\t\t\treturn;\n\t\t}\n\n\t\tPromise.all(\n\t\t\tnewTermNames.map( ( termName ) =>\n\t\t\t\tfindOrCreateTerm( { name: termName } )\n\t\t\t)\n\t\t)\n\t\t\t.then( ( newTerms ) => {\n\t\t\t\tconst newAvailableTerms = availableTerms.concat( newTerms );\n\t\t\t\tonUpdateTerms(\n\t\t\t\t\ttermNamesToIds( uniqueTerms, newAvailableTerms )\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\t// In case of a failure, try assigning available terms.\n\t\t\t\t// This will invalidate the optimistic update.\n\t\t\t\tonUpdateTerms( termNamesToIds( uniqueTerms, availableTerms ) );\n\t\t\t} );\n\t}\n\n\tfunction appendTerm( newTerm ) {\n\t\tif ( termIds.includes( newTerm.id ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newTermIds = [ ...termIds, newTerm.id ];\n\t\tconst defaultName = slug === 'post_tag' ? __( 'Tag' ) : __( 'Term' );\n\t\tconst termAddedMessage = sprintf(\n\t\t\t/* translators: %s: term name. */\n\t\t\t_x( '%s added', 'term' ),\n\t\t\ttaxonomy?.labels?.singular_name ?? defaultName\n\t\t);\n\n\t\tspeak( termAddedMessage, 'assertive' );\n\t\tonUpdateTerms( newTermIds );\n\t}\n\n\tconst newTermLabel =\n\t\ttaxonomy?.labels?.add_new_item ??\n\t\t( slug === 'post_tag' ? __( 'Add new tag' ) : __( 'Add new Term' ) );\n\tconst singularName =\n\t\ttaxonomy?.labels?.singular_name ??\n\t\t( slug === 'post_tag' ? __( 'Tag' ) : __( 'Term' ) );\n\tconst termAddedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s added', 'term' ),\n\t\tsingularName\n\t);\n\tconst termRemovedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s removed', 'term' ),\n\t\tsingularName\n\t);\n\tconst removeTermLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( 'Remove %s', 'term' ),\n\t\tsingularName\n\t);\n\n\treturn (\n\t\t<Wrapper __nextHasNoMarginBottom={ __nextHasNoMarginBottom }>\n\t\t\t<FormTokenField\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tvalue={ values }\n\t\t\t\tsuggestions={ suggestions }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonInputChange={ debouncedSearch }\n\t\t\t\tmaxSuggestions={ MAX_TERMS_SUGGESTIONS }\n\t\t\t\tlabel={ newTermLabel }\n\t\t\t\tmessages={ {\n\t\t\t\t\tadded: termAddedLabel,\n\t\t\t\t\tremoved: termRemovedLabel,\n\t\t\t\t\tremove: removeTermLabel,\n\t\t\t\t} }\n\t\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t/>\n\t\t\t<MostUsedTerms taxonomy={ taxonomy } onSelect={ appendTerm } />\n\t\t</Wrapper>\n\t);\n}\n\nexport default withFilters( 'editor.PostTaxonomyType' )( FlatTermSelector );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,7 +9,6 @@ import { __ } from '@wordpress/i18n';
|
|
|
9
9
|
import { useDispatch } from '@wordpress/data';
|
|
10
10
|
import { store as coreStore } from '@wordpress/core-data';
|
|
11
11
|
import { parse } from '@wordpress/blocks';
|
|
12
|
-
import { useAsyncList } from '@wordpress/compose';
|
|
13
12
|
|
|
14
13
|
/**
|
|
15
14
|
* Internal dependencies
|
|
@@ -70,11 +69,9 @@ function TemplatesList({
|
|
|
70
69
|
title: decodeEntities(template.title.rendered),
|
|
71
70
|
id: template.id
|
|
72
71
|
})), [availableTemplates]);
|
|
73
|
-
const shownTemplates = useAsyncList(templatesAsPatterns);
|
|
74
72
|
return /*#__PURE__*/_jsx(BlockPatternsList, {
|
|
75
73
|
label: __('Templates'),
|
|
76
74
|
blockPatterns: templatesAsPatterns,
|
|
77
|
-
shownPatterns: shownTemplates,
|
|
78
75
|
onClickPattern: onSelect
|
|
79
76
|
});
|
|
80
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useState","decodeEntities","__experimentalBlockPatternsList","BlockPatternsList","MenuItem","Modal","__","useDispatch","store","coreStore","parse","
|
|
1
|
+
{"version":3,"names":["useMemo","useState","decodeEntities","__experimentalBlockPatternsList","BlockPatternsList","MenuItem","Modal","__","useDispatch","store","coreStore","parse","useAvailableTemplates","useEditedPostContext","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SwapTemplateButton","onClick","showModal","setShowModal","postType","postId","availableTemplates","editEntityRecord","length","onTemplateSelect","template","name","undoIgnore","children","title","onRequestClose","overlayClassName","isFullScreen","className","TemplatesList","onSelect","templatesAsPatterns","map","slug","blocks","content","raw","rendered","id","label","blockPatterns","onClickPattern"],"sources":["@wordpress/editor/src/components/post-template/swap-template-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';\nimport { MenuItem, Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { parse } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useAvailableTemplates, useEditedPostContext } from './hooks';\n\nexport default function SwapTemplateButton( { onClick } ) {\n\tconst [ showModal, setShowModal ] = useState( false );\n\tconst { postType, postId } = useEditedPostContext();\n\tconst availableTemplates = useAvailableTemplates( postType );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tif ( ! availableTemplates?.length ) {\n\t\treturn null;\n\t}\n\tconst onTemplateSelect = async ( template ) => {\n\t\teditEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType,\n\t\t\tpostId,\n\t\t\t{ template: template.name },\n\t\t\t{ undoIgnore: true }\n\t\t);\n\t\tsetShowModal( false ); // Close the template suggestions modal first.\n\t\tonClick();\n\t};\n\treturn (\n\t\t<>\n\t\t\t<MenuItem onClick={ () => setShowModal( true ) }>\n\t\t\t\t{ __( 'Swap template' ) }\n\t\t\t</MenuItem>\n\t\t\t{ showModal && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Choose a template' ) }\n\t\t\t\t\tonRequestClose={ () => setShowModal( false ) }\n\t\t\t\t\toverlayClassName=\"editor-post-template__swap-template-modal\"\n\t\t\t\t\tisFullScreen\n\t\t\t\t>\n\t\t\t\t\t<div className=\"editor-post-template__swap-template-modal-content\">\n\t\t\t\t\t\t<TemplatesList\n\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\tonSelect={ onTemplateSelect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction TemplatesList( { postType, onSelect } ) {\n\tconst availableTemplates = useAvailableTemplates( postType );\n\tconst templatesAsPatterns = useMemo(\n\t\t() =>\n\t\t\tavailableTemplates.map( ( template ) => ( {\n\t\t\t\tname: template.slug,\n\t\t\t\tblocks: parse( template.content.raw ),\n\t\t\t\ttitle: decodeEntities( template.title.rendered ),\n\t\t\t\tid: template.id,\n\t\t\t} ) ),\n\t\t[ availableTemplates ]\n\t);\n\treturn (\n\t\t<BlockPatternsList\n\t\t\tlabel={ __( 'Templates' ) }\n\t\t\tblockPatterns={ templatesAsPatterns }\n\t\t\tonClickPattern={ onSelect }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,7 +5,6 @@ import { useSelect, useDispatch } from '@wordpress/data';
|
|
|
5
5
|
import { store as coreStore } from '@wordpress/core-data';
|
|
6
6
|
import { PanelBody } from '@wordpress/components';
|
|
7
7
|
import { __ } from '@wordpress/i18n';
|
|
8
|
-
import { useAsyncList } from '@wordpress/compose';
|
|
9
8
|
import { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';
|
|
10
9
|
import { serialize } from '@wordpress/blocks';
|
|
11
10
|
|
|
@@ -20,14 +19,12 @@ function TemplatesList({
|
|
|
20
19
|
availableTemplates,
|
|
21
20
|
onSelect
|
|
22
21
|
}) {
|
|
23
|
-
const shownTemplates = useAsyncList(availableTemplates);
|
|
24
22
|
if (!availableTemplates || availableTemplates?.length === 0) {
|
|
25
23
|
return null;
|
|
26
24
|
}
|
|
27
25
|
return /*#__PURE__*/_jsx(BlockPatternsList, {
|
|
28
26
|
label: __('Templates'),
|
|
29
27
|
blockPatterns: availableTemplates,
|
|
30
|
-
shownPatterns: shownTemplates,
|
|
31
28
|
onClickPattern: onSelect,
|
|
32
29
|
showTitlesAsTooltip: true
|
|
33
30
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useSelect","useDispatch","store","coreStore","PanelBody","__","
|
|
1
|
+
{"version":3,"names":["useSelect","useDispatch","store","coreStore","PanelBody","__","__experimentalBlockPatternsList","BlockPatternsList","serialize","editorStore","useAvailablePatterns","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","jsx","_jsx","TemplatesList","availableTemplates","onSelect","length","label","blockPatterns","onClickPattern","showTitlesAsTooltip","PostTransform","record","postType","postId","select","getCurrentPostType","getCurrentPostId","getEditedEntityRecord","type","id","editEntityRecord","availablePatterns","onTemplateSelect","selectedTemplate","blocks","content","title","initialOpen","children","PostTransformPanel","includes"],"sources":["@wordpress/editor/src/components/post-transform-panel/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { PanelBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';\nimport { serialize } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { useAvailablePatterns } from './hooks';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../store/constants';\n\nfunction TemplatesList( { availableTemplates, onSelect } ) {\n\tif ( ! availableTemplates || availableTemplates?.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockPatternsList\n\t\t\tlabel={ __( 'Templates' ) }\n\t\t\tblockPatterns={ availableTemplates }\n\t\t\tonClickPattern={ onSelect }\n\t\t\tshowTitlesAsTooltip\n\t\t/>\n\t);\n}\n\nfunction PostTransform() {\n\tconst { record, postType, postId } = useSelect( ( select ) => {\n\t\tconst { getCurrentPostType, getCurrentPostId } = select( editorStore );\n\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\tconst type = getCurrentPostType();\n\t\tconst id = getCurrentPostId();\n\t\treturn {\n\t\t\tpostType: type,\n\t\t\tpostId: id,\n\t\t\trecord: getEditedEntityRecord( 'postType', type, id ),\n\t\t};\n\t}, [] );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst availablePatterns = useAvailablePatterns( record );\n\tconst onTemplateSelect = async ( selectedTemplate ) => {\n\t\tawait editEntityRecord( 'postType', postType, postId, {\n\t\t\tblocks: selectedTemplate.blocks,\n\t\t\tcontent: serialize( selectedTemplate.blocks ),\n\t\t} );\n\t};\n\tif ( ! availablePatterns?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody\n\t\t\ttitle={ __( 'Design' ) }\n\t\t\tinitialOpen={ record.type === TEMPLATE_PART_POST_TYPE }\n\t\t>\n\t\t\t<TemplatesList\n\t\t\t\tavailableTemplates={ availablePatterns }\n\t\t\t\tonSelect={ onTemplateSelect }\n\t\t\t/>\n\t\t</PanelBody>\n\t);\n}\n\nexport default function PostTransformPanel() {\n\tconst { postType } = useSelect( ( select ) => {\n\t\tconst { getCurrentPostType } = select( editorStore );\n\t\treturn {\n\t\t\tpostType: getCurrentPostType(),\n\t\t};\n\t}, [] );\n\n\tif (\n\t\t! [ TEMPLATE_PART_POST_TYPE, TEMPLATE_POST_TYPE ].includes( postType )\n\t) {\n\t\treturn null;\n\t}\n\n\treturn <PostTransform />;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -34,30 +34,40 @@ const {
|
|
|
34
34
|
export default function EditorPreferencesModal({
|
|
35
35
|
extraSections = {}
|
|
36
36
|
}) {
|
|
37
|
-
const
|
|
37
|
+
const isActive = useSelect(select => {
|
|
38
|
+
return select(interfaceStore).isModalActive('editor/preferences');
|
|
39
|
+
}, []);
|
|
38
40
|
const {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
closeModal
|
|
42
|
+
} = useDispatch(interfaceStore);
|
|
43
|
+
if (!isActive) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Please wrap all contents inside PreferencesModalContents to prevent all
|
|
48
|
+
// hooks from executing when the modal is not open.
|
|
49
|
+
return /*#__PURE__*/_jsx(PreferencesModal, {
|
|
50
|
+
closeModal: closeModal,
|
|
51
|
+
children: /*#__PURE__*/_jsx(PreferencesModalContents, {
|
|
52
|
+
extraSections: extraSections
|
|
53
|
+
})
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function PreferencesModalContents({
|
|
57
|
+
extraSections = {}
|
|
58
|
+
}) {
|
|
59
|
+
const isLargeViewport = useViewportMatch('medium');
|
|
60
|
+
const showBlockBreadcrumbsOption = useSelect(select => {
|
|
42
61
|
const {
|
|
43
62
|
getEditorSettings
|
|
44
63
|
} = select(editorStore);
|
|
45
64
|
const {
|
|
46
65
|
get
|
|
47
66
|
} = select(preferencesStore);
|
|
48
|
-
const {
|
|
49
|
-
isModalActive
|
|
50
|
-
} = select(interfaceStore);
|
|
51
67
|
const isRichEditingEnabled = getEditorSettings().richEditingEnabled;
|
|
52
68
|
const isDistractionFreeEnabled = get('core', 'distractionFree');
|
|
53
|
-
return
|
|
54
|
-
showBlockBreadcrumbsOption: !isDistractionFreeEnabled && isLargeViewport && isRichEditingEnabled,
|
|
55
|
-
isActive: isModalActive('editor/preferences')
|
|
56
|
-
};
|
|
69
|
+
return !isDistractionFreeEnabled && isLargeViewport && isRichEditingEnabled;
|
|
57
70
|
}, [isLargeViewport]);
|
|
58
|
-
const {
|
|
59
|
-
closeModal
|
|
60
|
-
} = useDispatch(interfaceStore);
|
|
61
71
|
const {
|
|
62
72
|
setIsListViewOpened,
|
|
63
73
|
setIsInserterOpened
|
|
@@ -222,14 +232,8 @@ export default function EditorPreferencesModal({
|
|
|
222
232
|
})
|
|
223
233
|
})
|
|
224
234
|
}].filter(Boolean), [showBlockBreadcrumbsOption, extraSections, setIsInserterOpened, setIsListViewOpened, setPreference, isLargeViewport, hasStarterPatterns]);
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
}
|
|
228
|
-
return /*#__PURE__*/_jsx(PreferencesModal, {
|
|
229
|
-
closeModal: closeModal,
|
|
230
|
-
children: /*#__PURE__*/_jsx(PreferencesModalTabs, {
|
|
231
|
-
sections: sections
|
|
232
|
-
})
|
|
235
|
+
return /*#__PURE__*/_jsx(PreferencesModalTabs, {
|
|
236
|
+
sections: sections
|
|
233
237
|
});
|
|
234
238
|
}
|
|
235
239
|
//# sourceMappingURL=index.js.map
|