@wordpress/commands 1.32.0 → 1.32.1-next.47f435fc9.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/README.md +2 -2
- package/build/components/command-menu.js +261 -246
- package/build/components/command-menu.js.map +7 -1
- package/build/hooks/use-command-context.js +31 -35
- package/build/hooks/use-command-context.js.map +7 -1
- package/build/hooks/use-command-loader.js +35 -92
- package/build/hooks/use-command-loader.js.map +7 -1
- package/build/hooks/use-command.js +53 -90
- package/build/hooks/use-command.js.map +7 -1
- package/build/index.js +49 -45
- package/build/index.js.map +7 -1
- package/build/lock-unlock.js +31 -15
- package/build/lock-unlock.js.map +7 -1
- package/build/private-apis.js +41 -19
- package/build/private-apis.js.map +7 -1
- package/build/store/actions.js +42 -92
- package/build/store/actions.js.map +7 -1
- package/build/store/index.js +47 -44
- package/build/store/index.js.map +7 -1
- package/build/store/private-actions.js +27 -14
- package/build/store/private-actions.js.map +7 -1
- package/build/store/reducer.js +39 -70
- package/build/store/reducer.js.map +7 -1
- package/build/store/selectors.js +47 -54
- package/build/store/selectors.js.map +7 -1
- package/build-module/components/command-menu.js +232 -229
- package/build-module/components/command-menu.js.map +7 -1
- package/build-module/hooks/use-command-context.js +11 -28
- package/build-module/hooks/use-command-context.js.map +7 -1
- package/build-module/hooks/use-command-loader.js +17 -87
- package/build-module/hooks/use-command-loader.js.map +7 -1
- package/build-module/hooks/use-command.js +25 -79
- package/build-module/hooks/use-command.js.map +7 -1
- package/build-module/index.js +14 -6
- package/build-module/index.js.map +7 -1
- package/build-module/lock-unlock.js +8 -7
- package/build-module/lock-unlock.js.map +7 -1
- package/build-module/private-apis.js +7 -11
- package/build-module/private-apis.js.map +7 -1
- package/build-module/store/actions.js +21 -88
- package/build-module/store/actions.js.map +7 -1
- package/build-module/store/index.js +12 -32
- package/build-module/store/index.js.map +7 -1
- package/build-module/store/private-actions.js +6 -10
- package/build-module/store/private-actions.js.map +7 -1
- package/build-module/store/reducer.js +20 -64
- package/build-module/store/reducer.js.map +7 -1
- package/build-module/store/selectors.js +24 -49
- package/build-module/store/selectors.js.map +7 -1
- package/build-style/style-rtl.css +7 -138
- package/build-style/style.css +7 -138
- package/package.json +18 -10
- package/src/components/command-menu.js +4 -1
- package/src/components/style.scss +10 -0
- package/src/hooks/use-command.js +2 -2
- package/src/style.scss +2 -1
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{"version":3,"names":["_cmdk","require","_clsx","_interopRequireDefault","_data","_element","_i18n","_components","_keyboardShortcuts","_icons","_store","_jsxRuntime","inputLabel","__","CommandMenuLoader","name","search","hook","setLoader","close","_hook","isLoading","commands","useEffect","length","jsx","Fragment","children","map","command","_command$searchLabel","Command","Item","value","searchLabel","label","keywords","onSelect","callback","id","jsxs","__experimentalHStack","alignment","className","clsx","icon","Icon","TextHighlight","text","highlight","CommandMenuLoaderWrapper","currentLoaderRef","useRef","key","setKey","useState","current","prevKey","CommandMenuGroup","isContextual","loaders","useSelect","select","getCommands","getCommandLoaders","commandsStore","Group","_command$searchLabel2","loader","CommandInput","isOpen","setSearch","commandMenuInput","_value","useCommandState","state","selectedItemId","useMemo","item","document","querySelector","getAttribute","focus","Input","ref","onValueChange","placeholder","CommandMenu","registerShortcut","useDispatch","keyboardShortcutsStore","open","setLoaders","category","description","keyCombination","modifier","character","useShortcut","event","defaultPrevented","preventDefault","bindGlobal","useCallback","closeAndReset","onKeyDown","nativeEvent","isComposing","keyCode","Object","values","some","Boolean","Modal","overlayClassName","onRequestClose","__experimentalHideHeader","contentLabel","inputIcon","List","Empty"],"sources":["@wordpress/commands/src/components/command-menu.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Command, useCommandState } from 'cmdk';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tModal,\n\tTextHighlight,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport {\n\tstore as keyboardShortcutsStore,\n\tuseShortcut,\n} from '@wordpress/keyboard-shortcuts';\nimport { Icon, search as inputIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as commandsStore } from '../store';\n\nconst inputLabel = __( 'Search commands and settings' );\n\nfunction CommandMenuLoader( { name, search, hook, setLoader, close } ) {\n\tconst { isLoading, commands = [] } = hook( { search } ) ?? {};\n\tuseEffect( () => {\n\t\tsetLoader( name, isLoading );\n\t}, [ setLoader, name, isLoading ] );\n\n\tif ( ! commands.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ commands.map( ( command ) => (\n\t\t\t\t<Command.Item\n\t\t\t\t\tkey={ command.name }\n\t\t\t\t\tvalue={ command.searchLabel ?? command.label }\n\t\t\t\t\tkeywords={ command.keywords }\n\t\t\t\t\tonSelect={ () => command.callback( { close } ) }\n\t\t\t\t\tid={ command.name }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\tclassName={ clsx( 'commands-command-menu__item', {\n\t\t\t\t\t\t\t'has-icon': command.icon,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ command.icon && <Icon icon={ command.icon } /> }\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t<TextHighlight\n\t\t\t\t\t\t\t\ttext={ command.label }\n\t\t\t\t\t\t\t\thighlight={ search }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Command.Item>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nexport function CommandMenuLoaderWrapper( { hook, search, setLoader, close } ) {\n\t// The \"hook\" prop is actually a custom React hook\n\t// so to avoid breaking the rules of hooks\n\t// the CommandMenuLoaderWrapper component need to be\n\t// remounted on each hook prop change\n\t// We use the key state to make sure we do that properly.\n\tconst currentLoaderRef = useRef( hook );\n\tconst [ key, setKey ] = useState( 0 );\n\tuseEffect( () => {\n\t\tif ( currentLoaderRef.current !== hook ) {\n\t\t\tcurrentLoaderRef.current = hook;\n\t\t\tsetKey( ( prevKey ) => prevKey + 1 );\n\t\t}\n\t}, [ hook ] );\n\n\treturn (\n\t\t<CommandMenuLoader\n\t\t\tkey={ key }\n\t\t\thook={ currentLoaderRef.current }\n\t\t\tsearch={ search }\n\t\t\tsetLoader={ setLoader }\n\t\t\tclose={ close }\n\t\t/>\n\t);\n}\n\nexport function CommandMenuGroup( { isContextual, search, setLoader, close } ) {\n\tconst { commands, loaders } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCommands, getCommandLoaders } = select( commandsStore );\n\t\t\treturn {\n\t\t\t\tcommands: getCommands( isContextual ),\n\t\t\t\tloaders: getCommandLoaders( isContextual ),\n\t\t\t};\n\t\t},\n\t\t[ isContextual ]\n\t);\n\n\tif ( ! commands.length && ! loaders.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Command.Group>\n\t\t\t{ commands.map( ( command ) => (\n\t\t\t\t<Command.Item\n\t\t\t\t\tkey={ command.name }\n\t\t\t\t\tvalue={ command.searchLabel ?? command.label }\n\t\t\t\t\tkeywords={ command.keywords }\n\t\t\t\t\tonSelect={ () => command.callback( { close } ) }\n\t\t\t\t\tid={ command.name }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\tclassName={ clsx( 'commands-command-menu__item', {\n\t\t\t\t\t\t\t'has-icon': command.icon,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ command.icon && <Icon icon={ command.icon } /> }\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t<TextHighlight\n\t\t\t\t\t\t\t\ttext={ command.label }\n\t\t\t\t\t\t\t\thighlight={ search }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Command.Item>\n\t\t\t) ) }\n\t\t\t{ loaders.map( ( loader ) => (\n\t\t\t\t<CommandMenuLoaderWrapper\n\t\t\t\t\tkey={ loader.name }\n\t\t\t\t\thook={ loader.hook }\n\t\t\t\t\tsearch={ search }\n\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\tclose={ close }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Command.Group>\n\t);\n}\n\nfunction CommandInput( { isOpen, search, setSearch } ) {\n\tconst commandMenuInput = useRef();\n\tconst _value = useCommandState( ( state ) => state.value );\n\tconst selectedItemId = useMemo( () => {\n\t\tconst item = document.querySelector(\n\t\t\t`[cmdk-item=\"\"][data-value=\"${ _value }\"]`\n\t\t);\n\t\treturn item?.getAttribute( 'id' );\n\t}, [ _value ] );\n\tuseEffect( () => {\n\t\t// Focus the command palette input when mounting the modal.\n\t\tif ( isOpen ) {\n\t\t\tcommandMenuInput.current.focus();\n\t\t}\n\t}, [ isOpen ] );\n\treturn (\n\t\t<Command.Input\n\t\t\tref={ commandMenuInput }\n\t\t\tvalue={ search }\n\t\t\tonValueChange={ setSearch }\n\t\t\tplaceholder={ inputLabel }\n\t\t\taria-activedescendant={ selectedItemId }\n\t\t\ticon={ search }\n\t\t/>\n\t);\n}\n\n/**\n * @ignore\n */\nexport function CommandMenu() {\n\tconst { registerShortcut } = useDispatch( keyboardShortcutsStore );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst isOpen = useSelect(\n\t\t( select ) => select( commandsStore ).isOpen(),\n\t\t[]\n\t);\n\tconst { open, close } = useDispatch( commandsStore );\n\tconst [ loaders, setLoaders ] = useState( {} );\n\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/commands',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Open the command palette.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'k',\n\t\t\t},\n\t\t} );\n\t}, [ registerShortcut ] );\n\n\tuseShortcut(\n\t\t'core/commands',\n\t\t/** @type {import('react').KeyboardEventHandler} */\n\t\t( event ) => {\n\t\t\t// Bails to avoid obscuring the effect of the preceding handler(s).\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\t\t\tif ( isOpen ) {\n\t\t\t\tclose();\n\t\t\t} else {\n\t\t\t\topen();\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tbindGlobal: true,\n\t\t}\n\t);\n\n\tconst setLoader = useCallback(\n\t\t( name, value ) =>\n\t\t\tsetLoaders( ( current ) => ( {\n\t\t\t\t...current,\n\t\t\t\t[ name ]: value,\n\t\t\t} ) ),\n\t\t[]\n\t);\n\tconst closeAndReset = () => {\n\t\tsetSearch( '' );\n\t\tclose();\n\t};\n\n\tif ( ! isOpen ) {\n\t\treturn false;\n\t}\n\n\tconst onKeyDown = ( event ) => {\n\t\tif (\n\t\t\t// Ignore keydowns from IMEs\n\t\t\tevent.nativeEvent.isComposing ||\n\t\t\t// Workaround for Mac Safari where the final Enter/Backspace of an IME composition\n\t\t\t// is `isComposing=false`, even though it's technically still part of the composition.\n\t\t\t// These can only be detected by keyCode.\n\t\t\tevent.keyCode === 229\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tconst isLoading = Object.values( loaders ).some( Boolean );\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"commands-command-menu\"\n\t\t\toverlayClassName=\"commands-command-menu__overlay\"\n\t\t\tonRequestClose={ closeAndReset }\n\t\t\t__experimentalHideHeader\n\t\t\tcontentLabel={ __( 'Command palette' ) }\n\t\t>\n\t\t\t<div className=\"commands-command-menu__container\">\n\t\t\t\t<Command label={ inputLabel } onKeyDown={ onKeyDown }>\n\t\t\t\t\t<div className=\"commands-command-menu__header\">\n\t\t\t\t\t\t<CommandInput\n\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\tsetSearch={ setSearch }\n\t\t\t\t\t\t\tisOpen={ isOpen }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Icon icon={ inputIcon } />\n\t\t\t\t\t</div>\n\t\t\t\t\t<Command.List label={ __( 'Command suggestions' ) }>\n\t\t\t\t\t\t{ search && ! isLoading && (\n\t\t\t\t\t\t\t<Command.Empty>\n\t\t\t\t\t\t\t\t{ __( 'No results found.' ) }\n\t\t\t\t\t\t\t</Command.Empty>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<CommandMenuGroup\n\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\t\t\tclose={ closeAndReset }\n\t\t\t\t\t\t\tisContextual\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ search && (\n\t\t\t\t\t\t\t<CommandMenuGroup\n\t\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\t\t\t\tclose={ closeAndReset }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Command.List>\n\t\t\t\t</Command>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/command-menu.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport { Command, useCommandState } from 'cmdk';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tModal,\n\tTextHighlight,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport {\n\tstore as keyboardShortcutsStore,\n\tuseShortcut,\n} from '@wordpress/keyboard-shortcuts';\nimport { Icon, search as inputIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as commandsStore } from '../store';\n\nconst inputLabel = __( 'Search commands and settings' );\n\nfunction CommandMenuLoader( { name, search, hook, setLoader, close } ) {\n\tconst { isLoading, commands = [] } = hook( { search } ) ?? {};\n\tuseEffect( () => {\n\t\tsetLoader( name, isLoading );\n\t}, [ setLoader, name, isLoading ] );\n\n\tif ( ! commands.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ commands.map( ( command ) => (\n\t\t\t\t<Command.Item\n\t\t\t\t\tkey={ command.name }\n\t\t\t\t\tvalue={ command.searchLabel ?? command.label }\n\t\t\t\t\tkeywords={ command.keywords }\n\t\t\t\t\tonSelect={ () => command.callback( { close } ) }\n\t\t\t\t\tid={ command.name }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\tclassName={ clsx( 'commands-command-menu__item', {\n\t\t\t\t\t\t\t'has-icon': command.icon,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ command.icon && <Icon icon={ command.icon } /> }\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t<TextHighlight\n\t\t\t\t\t\t\t\ttext={ command.label }\n\t\t\t\t\t\t\t\thighlight={ search }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Command.Item>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nexport function CommandMenuLoaderWrapper( { hook, search, setLoader, close } ) {\n\t// The \"hook\" prop is actually a custom React hook\n\t// so to avoid breaking the rules of hooks\n\t// the CommandMenuLoaderWrapper component need to be\n\t// remounted on each hook prop change\n\t// We use the key state to make sure we do that properly.\n\tconst currentLoaderRef = useRef( hook );\n\tconst [ key, setKey ] = useState( 0 );\n\tuseEffect( () => {\n\t\tif ( currentLoaderRef.current !== hook ) {\n\t\t\tcurrentLoaderRef.current = hook;\n\t\t\tsetKey( ( prevKey ) => prevKey + 1 );\n\t\t}\n\t}, [ hook ] );\n\n\treturn (\n\t\t<CommandMenuLoader\n\t\t\tkey={ key }\n\t\t\thook={ currentLoaderRef.current }\n\t\t\tsearch={ search }\n\t\t\tsetLoader={ setLoader }\n\t\t\tclose={ close }\n\t\t/>\n\t);\n}\n\nexport function CommandMenuGroup( { isContextual, search, setLoader, close } ) {\n\tconst { commands, loaders } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCommands, getCommandLoaders } = select( commandsStore );\n\t\t\treturn {\n\t\t\t\tcommands: getCommands( isContextual ),\n\t\t\t\tloaders: getCommandLoaders( isContextual ),\n\t\t\t};\n\t\t},\n\t\t[ isContextual ]\n\t);\n\n\tif ( ! commands.length && ! loaders.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Command.Group>\n\t\t\t{ commands.map( ( command ) => (\n\t\t\t\t<Command.Item\n\t\t\t\t\tkey={ command.name }\n\t\t\t\t\tvalue={ command.searchLabel ?? command.label }\n\t\t\t\t\tkeywords={ command.keywords }\n\t\t\t\t\tonSelect={ () => command.callback( { close } ) }\n\t\t\t\t\tid={ command.name }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\tclassName={ clsx( 'commands-command-menu__item', {\n\t\t\t\t\t\t\t'has-icon': command.icon,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ command.icon && <Icon icon={ command.icon } /> }\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t<TextHighlight\n\t\t\t\t\t\t\t\ttext={ command.label }\n\t\t\t\t\t\t\t\thighlight={ search }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Command.Item>\n\t\t\t) ) }\n\t\t\t{ loaders.map( ( loader ) => (\n\t\t\t\t<CommandMenuLoaderWrapper\n\t\t\t\t\tkey={ loader.name }\n\t\t\t\t\thook={ loader.hook }\n\t\t\t\t\tsearch={ search }\n\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\tclose={ close }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Command.Group>\n\t);\n}\n\nfunction CommandInput( { isOpen, search, setSearch } ) {\n\tconst commandMenuInput = useRef();\n\tconst _value = useCommandState( ( state ) => state.value );\n\tconst selectedItemId = useMemo( () => {\n\t\tconst item = document.querySelector(\n\t\t\t`[cmdk-item=\"\"][data-value=\"${ _value }\"]`\n\t\t);\n\t\treturn item?.getAttribute( 'id' );\n\t}, [ _value ] );\n\tuseEffect( () => {\n\t\t// Focus the command palette input when mounting the modal.\n\t\tif ( isOpen ) {\n\t\t\tcommandMenuInput.current.focus();\n\t\t}\n\t}, [ isOpen ] );\n\treturn (\n\t\t<Command.Input\n\t\t\tref={ commandMenuInput }\n\t\t\tvalue={ search }\n\t\t\tonValueChange={ setSearch }\n\t\t\tplaceholder={ inputLabel }\n\t\t\taria-activedescendant={ selectedItemId }\n\t\t\ticon={ search }\n\t\t/>\n\t);\n}\n\n/**\n * @ignore\n */\nexport function CommandMenu() {\n\tconst { registerShortcut } = useDispatch( keyboardShortcutsStore );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst isOpen = useSelect(\n\t\t( select ) => select( commandsStore ).isOpen(),\n\t\t[]\n\t);\n\tconst { open, close } = useDispatch( commandsStore );\n\tconst [ loaders, setLoaders ] = useState( {} );\n\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/commands',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Open the command palette.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'k',\n\t\t\t},\n\t\t} );\n\t}, [ registerShortcut ] );\n\n\tuseShortcut(\n\t\t'core/commands',\n\t\t/** @type {import('react').KeyboardEventHandler} */\n\t\t( event ) => {\n\t\t\t// Bails to avoid obscuring the effect of the preceding handler(s).\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\t\t\tif ( isOpen ) {\n\t\t\t\tclose();\n\t\t\t} else {\n\t\t\t\topen();\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tbindGlobal: true,\n\t\t}\n\t);\n\n\tconst setLoader = useCallback(\n\t\t( name, value ) =>\n\t\t\tsetLoaders( ( current ) => ( {\n\t\t\t\t...current,\n\t\t\t\t[ name ]: value,\n\t\t\t} ) ),\n\t\t[]\n\t);\n\tconst closeAndReset = () => {\n\t\tsetSearch( '' );\n\t\tclose();\n\t};\n\n\tif ( ! isOpen ) {\n\t\treturn false;\n\t}\n\n\tconst onKeyDown = ( event ) => {\n\t\tif (\n\t\t\t// Ignore keydowns from IMEs\n\t\t\tevent.nativeEvent.isComposing ||\n\t\t\t// Workaround for Mac Safari where the final Enter/Backspace of an IME composition\n\t\t\t// is `isComposing=false`, even though it's technically still part of the composition.\n\t\t\t// These can only be detected by keyCode.\n\t\t\tevent.keyCode === 229\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tconst isLoading = Object.values( loaders ).some( Boolean );\n\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"commands-command-menu\"\n\t\t\toverlayClassName=\"commands-command-menu__overlay\"\n\t\t\tonRequestClose={ closeAndReset }\n\t\t\t__experimentalHideHeader\n\t\t\tcontentLabel={ __( 'Command palette' ) }\n\t\t>\n\t\t\t<div className=\"commands-command-menu__container\">\n\t\t\t\t<Command label={ inputLabel } onKeyDown={ onKeyDown }>\n\t\t\t\t\t<div className=\"commands-command-menu__header\">\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tclassName=\"commands-command-menu__header-search-icon\"\n\t\t\t\t\t\t\ticon={ inputIcon }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<CommandInput\n\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\tsetSearch={ setSearch }\n\t\t\t\t\t\t\tisOpen={ isOpen }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Command.List label={ __( 'Command suggestions' ) }>\n\t\t\t\t\t\t{ search && ! isLoading && (\n\t\t\t\t\t\t\t<Command.Empty>\n\t\t\t\t\t\t\t\t{ __( 'No results found.' ) }\n\t\t\t\t\t\t\t</Command.Empty>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<CommandMenuGroup\n\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\t\t\tclose={ closeAndReset }\n\t\t\t\t\t\t\tisContextual\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ search && (\n\t\t\t\t\t\t\t<CommandMenuGroup\n\t\t\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\t\t\tsetLoader={ setLoader }\n\t\t\t\t\t\t\t\tclose={ closeAndReset }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Command.List>\n\t\t\t\t</Command>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["HStack", "clsx", "commandsStore", "keyboardShortcutsStore", "inputIcon"]
|
|
7
|
+
}
|
|
@@ -1,43 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var use_command_context_exports = {};
|
|
19
|
+
__export(use_command_context_exports, {
|
|
20
|
+
default: () => useCommandContext
|
|
5
21
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
/**
|
|
12
|
-
* WordPress dependencies
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Internal dependencies
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Sets the active context of the command palette
|
|
21
|
-
*
|
|
22
|
-
* @param {string} context Context to set.
|
|
23
|
-
*/
|
|
22
|
+
module.exports = __toCommonJS(use_command_context_exports);
|
|
23
|
+
var import_element = require("@wordpress/element");
|
|
24
|
+
var import_data = require("@wordpress/data");
|
|
25
|
+
var import_store = require("../store");
|
|
26
|
+
var import_lock_unlock = require("../lock-unlock");
|
|
24
27
|
function useCommandContext(context) {
|
|
25
|
-
const {
|
|
26
|
-
|
|
27
|
-
} = (0,
|
|
28
|
-
|
|
29
|
-
const {
|
|
30
|
-
setContext
|
|
31
|
-
} = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store));
|
|
32
|
-
(0, _element.useEffect)(() => {
|
|
28
|
+
const { getContext } = (0, import_data.useSelect)(import_store.store);
|
|
29
|
+
const initialContext = (0, import_element.useRef)(getContext());
|
|
30
|
+
const { setContext } = (0, import_lock_unlock.unlock)((0, import_data.useDispatch)(import_store.store));
|
|
31
|
+
(0, import_element.useEffect)(() => {
|
|
33
32
|
setContext(context);
|
|
34
33
|
}, [context, setContext]);
|
|
35
|
-
|
|
36
|
-
// This effects ensures that on unmount, we restore the context
|
|
37
|
-
// that was set before the component actually mounts.
|
|
38
|
-
(0, _element.useEffect)(() => {
|
|
34
|
+
(0, import_element.useEffect)(() => {
|
|
39
35
|
const initialContextRef = initialContext.current;
|
|
40
36
|
return () => setContext(initialContextRef);
|
|
41
37
|
}, [setContext]);
|
|
42
38
|
}
|
|
43
|
-
//# sourceMappingURL=use-command-context.js.map
|
|
39
|
+
//# sourceMappingURL=use-command-context.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/hooks/use-command-context.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as commandsStore } from '../store';\nimport { unlock } from '../lock-unlock';\n\n/**\n * Sets the active context of the command palette\n *\n * @param {string} context Context to set.\n */\nexport default function useCommandContext( context ) {\n\tconst { getContext } = useSelect( commandsStore );\n\tconst initialContext = useRef( getContext() );\n\tconst { setContext } = unlock( useDispatch( commandsStore ) );\n\n\tuseEffect( () => {\n\t\tsetContext( context );\n\t}, [ context, setContext ] );\n\n\t// This effects ensures that on unmount, we restore the context\n\t// that was set before the component actually mounts.\n\tuseEffect( () => {\n\t\tconst initialContextRef = initialContext.current;\n\t\treturn () => setContext( initialContextRef );\n\t}, [ setContext ] );\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAAkC;AAClC,kBAAuC;AAKvC,mBAAuC;AACvC,yBAAuB;AAOR,SAAR,kBAAoC,SAAU;AACpD,QAAM,EAAE,WAAW,QAAI,uBAAW,aAAAA,KAAc;AAChD,QAAM,qBAAiB,uBAAQ,WAAW,CAAE;AAC5C,QAAM,EAAE,WAAW,QAAI,+BAAQ,yBAAa,aAAAA,KAAc,CAAE;AAE5D,gCAAW,MAAM;AAChB,eAAY,OAAQ;AAAA,EACrB,GAAG,CAAE,SAAS,UAAW,CAAE;AAI3B,gCAAW,MAAM;AAChB,UAAM,oBAAoB,eAAe;AACzC,WAAO,MAAM,WAAY,iBAAkB;AAAA,EAC5C,GAAG,CAAE,UAAW,CAAE;AACnB;",
|
|
6
|
+
"names": ["commandsStore"]
|
|
7
|
+
}
|
|
@@ -1,95 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var use_command_loader_exports = {};
|
|
19
|
+
__export(use_command_loader_exports, {
|
|
20
|
+
default: () => useCommandLoader
|
|
5
21
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
/**
|
|
11
|
-
* WordPress dependencies
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Internal dependencies
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Attach a command loader to the command palette. Used for dynamic commands.
|
|
20
|
-
*
|
|
21
|
-
* @param {import('../store/actions').WPCommandLoaderConfig} loader command loader config.
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* ```js
|
|
25
|
-
* import { useCommandLoader } from '@wordpress/commands';
|
|
26
|
-
* import { post, page, layout, symbolFilled } from '@wordpress/icons';
|
|
27
|
-
*
|
|
28
|
-
* const icons = {
|
|
29
|
-
* post,
|
|
30
|
-
* page,
|
|
31
|
-
* wp_template: layout,
|
|
32
|
-
* wp_template_part: symbolFilled,
|
|
33
|
-
* };
|
|
34
|
-
*
|
|
35
|
-
* function usePageSearchCommandLoader( { search } ) {
|
|
36
|
-
* // Retrieve the pages for the "search" term.
|
|
37
|
-
* const { records, isLoading } = useSelect( ( select ) => {
|
|
38
|
-
* const { getEntityRecords } = select( coreStore );
|
|
39
|
-
* const query = {
|
|
40
|
-
* search: !! search ? search : undefined,
|
|
41
|
-
* per_page: 10,
|
|
42
|
-
* orderby: search ? 'relevance' : 'date',
|
|
43
|
-
* };
|
|
44
|
-
* return {
|
|
45
|
-
* records: getEntityRecords( 'postType', 'page', query ),
|
|
46
|
-
* isLoading: ! select( coreStore ).hasFinishedResolution(
|
|
47
|
-
* 'getEntityRecords',
|
|
48
|
-
* 'postType', 'page', query ]
|
|
49
|
-
* ),
|
|
50
|
-
* };
|
|
51
|
-
* }, [ search ] );
|
|
52
|
-
*
|
|
53
|
-
* // Create the commands.
|
|
54
|
-
* const commands = useMemo( () => {
|
|
55
|
-
* return ( records ?? [] ).slice( 0, 10 ).map( ( record ) => {
|
|
56
|
-
* return {
|
|
57
|
-
* name: record.title?.rendered + ' ' + record.id,
|
|
58
|
-
* label: record.title?.rendered
|
|
59
|
-
* ? record.title?.rendered
|
|
60
|
-
* : __( '(no title)' ),
|
|
61
|
-
* icon: icons[ postType ],
|
|
62
|
-
* callback: ( { close } ) => {
|
|
63
|
-
* const args = {
|
|
64
|
-
* postType,
|
|
65
|
-
* postId: record.id,
|
|
66
|
-
* ...extraArgs,
|
|
67
|
-
* };
|
|
68
|
-
* document.location = addQueryArgs( 'site-editor.php', args );
|
|
69
|
-
* close();
|
|
70
|
-
* },
|
|
71
|
-
* };
|
|
72
|
-
* } );
|
|
73
|
-
* }, [ records, history ] );
|
|
74
|
-
*
|
|
75
|
-
* return {
|
|
76
|
-
* commands,
|
|
77
|
-
* isLoading,
|
|
78
|
-
* };
|
|
79
|
-
* }
|
|
80
|
-
*
|
|
81
|
-
* useCommandLoader( {
|
|
82
|
-
* name: 'myplugin/page-search',
|
|
83
|
-
* hook: usePageSearchCommandLoader,
|
|
84
|
-
* } );
|
|
85
|
-
* ```
|
|
86
|
-
*/
|
|
22
|
+
module.exports = __toCommonJS(use_command_loader_exports);
|
|
23
|
+
var import_element = require("@wordpress/element");
|
|
24
|
+
var import_data = require("@wordpress/data");
|
|
25
|
+
var import_store = require("../store");
|
|
87
26
|
function useCommandLoader(loader) {
|
|
88
|
-
const {
|
|
89
|
-
|
|
90
|
-
unregisterCommandLoader
|
|
91
|
-
} = (0, _data.useDispatch)(_store.store);
|
|
92
|
-
(0, _element.useEffect)(() => {
|
|
27
|
+
const { registerCommandLoader, unregisterCommandLoader } = (0, import_data.useDispatch)(import_store.store);
|
|
28
|
+
(0, import_element.useEffect)(() => {
|
|
93
29
|
if (loader.disabled) {
|
|
94
30
|
return;
|
|
95
31
|
}
|
|
@@ -101,6 +37,13 @@ function useCommandLoader(loader) {
|
|
|
101
37
|
return () => {
|
|
102
38
|
unregisterCommandLoader(loader.name);
|
|
103
39
|
};
|
|
104
|
-
}, [
|
|
40
|
+
}, [
|
|
41
|
+
loader.name,
|
|
42
|
+
loader.hook,
|
|
43
|
+
loader.context,
|
|
44
|
+
loader.disabled,
|
|
45
|
+
registerCommandLoader,
|
|
46
|
+
unregisterCommandLoader
|
|
47
|
+
]);
|
|
105
48
|
}
|
|
106
|
-
//# sourceMappingURL=use-command-loader.js.map
|
|
49
|
+
//# sourceMappingURL=use-command-loader.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/hooks/use-command-loader.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as commandsStore } from '../store';\n\n/**\n * Attach a command loader to the command palette. Used for dynamic commands.\n *\n * @param {import('../store/actions').WPCommandLoaderConfig} loader command loader config.\n *\n * @example\n * ```js\n * import { useCommandLoader } from '@wordpress/commands';\n * import { post, page, layout, symbolFilled } from '@wordpress/icons';\n *\n * const icons = {\n * post,\n * page,\n * wp_template: layout,\n * wp_template_part: symbolFilled,\n * };\n *\n * function usePageSearchCommandLoader( { search } ) {\n * // Retrieve the pages for the \"search\" term.\n * const { records, isLoading } = useSelect( ( select ) => {\n * const { getEntityRecords } = select( coreStore );\n * const query = {\n * search: !! search ? search : undefined,\n * per_page: 10,\n * orderby: search ? 'relevance' : 'date',\n * };\n * return {\n * records: getEntityRecords( 'postType', 'page', query ),\n * isLoading: ! select( coreStore ).hasFinishedResolution(\n * 'getEntityRecords',\n * 'postType', 'page', query ]\n * ),\n * };\n * }, [ search ] );\n *\n * // Create the commands.\n * const commands = useMemo( () => {\n * return ( records ?? [] ).slice( 0, 10 ).map( ( record ) => {\n * return {\n * name: record.title?.rendered + ' ' + record.id,\n * label: record.title?.rendered\n * ? record.title?.rendered\n * : __( '(no title)' ),\n * icon: icons[ postType ],\n * callback: ( { close } ) => {\n * const args = {\n * postType,\n * postId: record.id,\n * ...extraArgs,\n * };\n * document.location = addQueryArgs( 'site-editor.php', args );\n * close();\n * },\n * };\n * } );\n * }, [ records, history ] );\n *\n * return {\n * commands,\n * isLoading,\n * };\n * }\n *\n * useCommandLoader( {\n * name: 'myplugin/page-search',\n * hook: usePageSearchCommandLoader,\n * } );\n * ```\n */\nexport default function useCommandLoader( loader ) {\n\tconst { registerCommandLoader, unregisterCommandLoader } =\n\t\tuseDispatch( commandsStore );\n\tuseEffect( () => {\n\t\tif ( loader.disabled ) {\n\t\t\treturn;\n\t\t}\n\t\tregisterCommandLoader( {\n\t\t\tname: loader.name,\n\t\t\thook: loader.hook,\n\t\t\tcontext: loader.context,\n\t\t} );\n\t\treturn () => {\n\t\t\tunregisterCommandLoader( loader.name );\n\t\t};\n\t}, [\n\t\tloader.name,\n\t\tloader.hook,\n\t\tloader.context,\n\t\tloader.disabled,\n\t\tregisterCommandLoader,\n\t\tunregisterCommandLoader,\n\t] );\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAA0B;AAC1B,kBAA4B;AAK5B,mBAAuC;AAuExB,SAAR,iBAAmC,QAAS;AAClD,QAAM,EAAE,uBAAuB,wBAAwB,QACtD,yBAAa,aAAAA,KAAc;AAC5B,gCAAW,MAAM;AAChB,QAAK,OAAO,UAAW;AACtB;AAAA,IACD;AACA,0BAAuB;AAAA,MACtB,MAAM,OAAO;AAAA,MACb,MAAM,OAAO;AAAA,MACb,SAAS,OAAO;AAAA,IACjB,CAAE;AACF,WAAO,MAAM;AACZ,8BAAyB,OAAO,IAAK;AAAA,IACtC;AAAA,EACD,GAAG;AAAA,IACF,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP;AAAA,IACA;AAAA,EACD,CAAE;AACH;",
|
|
6
|
+
"names": ["commandsStore"]
|
|
7
|
+
}
|
|
@@ -1,52 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var use_command_exports = {};
|
|
19
|
+
__export(use_command_exports, {
|
|
20
|
+
useCommand: () => useCommand,
|
|
21
|
+
useCommands: () => useCommands
|
|
5
22
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var _store = require("../store");
|
|
11
|
-
/**
|
|
12
|
-
* WordPress dependencies
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Internal dependencies
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Attach a command to the command palette. Used for static commands.
|
|
21
|
-
*
|
|
22
|
-
* @param {import('../store/actions').WPCommandConfig} command command config.
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* ```js
|
|
26
|
-
* import { useCommand } from '@wordpress/commands';
|
|
27
|
-
* import { plus } from '@wordpress/icons';
|
|
28
|
-
*
|
|
29
|
-
* useCommand( {
|
|
30
|
-
* name: 'myplugin/my-command-name',
|
|
31
|
-
* label: __( 'Add new post' ),
|
|
32
|
-
* icon: plus,
|
|
33
|
-
* callback: ({ close }) => {
|
|
34
|
-
* document.location.href = 'post-new.php';
|
|
35
|
-
* close();
|
|
36
|
-
* },
|
|
37
|
-
* } );
|
|
38
|
-
* ```
|
|
39
|
-
*/
|
|
23
|
+
module.exports = __toCommonJS(use_command_exports);
|
|
24
|
+
var import_element = require("@wordpress/element");
|
|
25
|
+
var import_data = require("@wordpress/data");
|
|
26
|
+
var import_store = require("../store");
|
|
40
27
|
function useCommand(command) {
|
|
41
|
-
const {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
} = (0, _data.useDispatch)(_store.store);
|
|
45
|
-
const currentCallbackRef = (0, _element.useRef)(command.callback);
|
|
46
|
-
(0, _element.useEffect)(() => {
|
|
28
|
+
const { registerCommand, unregisterCommand } = (0, import_data.useDispatch)(import_store.store);
|
|
29
|
+
const currentCallbackRef = (0, import_element.useRef)(command.callback);
|
|
30
|
+
(0, import_element.useEffect)(() => {
|
|
47
31
|
currentCallbackRef.current = command.callback;
|
|
48
32
|
}, [command.callback]);
|
|
49
|
-
(0,
|
|
33
|
+
(0, import_element.useEffect)(() => {
|
|
50
34
|
if (command.disabled) {
|
|
51
35
|
return;
|
|
52
36
|
}
|
|
@@ -62,62 +46,36 @@ function useCommand(command) {
|
|
|
62
46
|
return () => {
|
|
63
47
|
unregisterCommand(command.name);
|
|
64
48
|
};
|
|
65
|
-
}, [
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
* @example
|
|
74
|
-
* ```js
|
|
75
|
-
* import { useCommands } from '@wordpress/commands';
|
|
76
|
-
* import { plus, edit } from '@wordpress/icons';
|
|
77
|
-
*
|
|
78
|
-
* useCommands( [
|
|
79
|
-
* {
|
|
80
|
-
* name: 'myplugin/add-post',
|
|
81
|
-
* label: __( 'Add new post' ),
|
|
82
|
-
* icon: plus,
|
|
83
|
-
* callback: ({ close }) => {
|
|
84
|
-
* document.location.href = 'post-new.php';
|
|
85
|
-
* close();
|
|
86
|
-
* },
|
|
87
|
-
* },
|
|
88
|
-
* {
|
|
89
|
-
* name: 'myplugin/edit-posts',
|
|
90
|
-
* label: __( 'Edit posts' ),
|
|
91
|
-
* icon: edit,
|
|
92
|
-
* callback: ({ close }) => {
|
|
93
|
-
* document.location.href = 'edit.php';
|
|
94
|
-
* close();
|
|
95
|
-
* },
|
|
96
|
-
* },
|
|
97
|
-
* ] );
|
|
98
|
-
* ```
|
|
99
|
-
*/
|
|
100
|
-
function useCommands(commands) {
|
|
101
|
-
const {
|
|
49
|
+
}, [
|
|
50
|
+
command.name,
|
|
51
|
+
command.label,
|
|
52
|
+
command.searchLabel,
|
|
53
|
+
command.icon,
|
|
54
|
+
command.context,
|
|
55
|
+
command.keywords,
|
|
56
|
+
command.disabled,
|
|
102
57
|
registerCommand,
|
|
103
58
|
unregisterCommand
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
59
|
+
]);
|
|
60
|
+
}
|
|
61
|
+
function useCommands(commands) {
|
|
62
|
+
const { registerCommand, unregisterCommand } = (0, import_data.useDispatch)(import_store.store);
|
|
63
|
+
const currentCallbacksRef = (0, import_element.useRef)({});
|
|
64
|
+
(0, import_element.useEffect)(() => {
|
|
107
65
|
if (!commands) {
|
|
108
66
|
return;
|
|
109
67
|
}
|
|
110
|
-
commands.forEach(command => {
|
|
68
|
+
commands.forEach((command) => {
|
|
111
69
|
if (command.callback) {
|
|
112
70
|
currentCallbacksRef.current[command.name] = command.callback;
|
|
113
71
|
}
|
|
114
72
|
});
|
|
115
73
|
}, [commands]);
|
|
116
|
-
(0,
|
|
74
|
+
(0, import_element.useEffect)(() => {
|
|
117
75
|
if (!commands) {
|
|
118
76
|
return;
|
|
119
77
|
}
|
|
120
|
-
commands.forEach(command => {
|
|
78
|
+
commands.forEach((command) => {
|
|
121
79
|
if (command.disabled) {
|
|
122
80
|
return;
|
|
123
81
|
}
|
|
@@ -137,10 +95,15 @@ function useCommands(commands) {
|
|
|
137
95
|
});
|
|
138
96
|
});
|
|
139
97
|
return () => {
|
|
140
|
-
commands.forEach(command => {
|
|
98
|
+
commands.forEach((command) => {
|
|
141
99
|
unregisterCommand(command.name);
|
|
142
100
|
});
|
|
143
101
|
};
|
|
144
102
|
}, [commands, registerCommand, unregisterCommand]);
|
|
145
103
|
}
|
|
146
|
-
|
|
104
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
105
|
+
0 && (module.exports = {
|
|
106
|
+
useCommand,
|
|
107
|
+
useCommands
|
|
108
|
+
});
|
|
109
|
+
//# sourceMappingURL=use-command.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/hooks/use-command.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as commandsStore } from '../store';\n\n/**\n * Attach a command to the command palette. Used for static commands.\n *\n * @param {import('../store/actions').WPCommandConfig} command command config.\n *\n * @example\n * ```js\n * import { useCommand } from '@wordpress/commands';\n * import { plus } from '@wordpress/icons';\n *\n * useCommand( {\n * name: 'myplugin/my-command-name',\n * label: __( 'Add new post' ),\n *\t icon: plus,\n * callback: ({ close }) => {\n * document.location.href = 'post-new.php';\n * close();\n * },\n * } );\n * ```\n */\nexport function useCommand( command ) {\n\tconst { registerCommand, unregisterCommand } = useDispatch( commandsStore );\n\tconst currentCallbackRef = useRef( command.callback );\n\tuseEffect( () => {\n\t\tcurrentCallbackRef.current = command.callback;\n\t}, [ command.callback ] );\n\n\tuseEffect( () => {\n\t\tif ( command.disabled ) {\n\t\t\treturn;\n\t\t}\n\t\tregisterCommand( {\n\t\t\tname: command.name,\n\t\t\tcontext: command.context,\n\t\t\tlabel: command.label,\n\t\t\tsearchLabel: command.searchLabel,\n\t\t\ticon: command.icon,\n\t\t\tkeywords: command.keywords,\n\t\t\tcallback: ( ...args ) => currentCallbackRef.current( ...args ),\n\t\t} );\n\t\treturn () => {\n\t\t\tunregisterCommand( command.name );\n\t\t};\n\t}, [\n\t\tcommand.name,\n\t\tcommand.label,\n\t\tcommand.searchLabel,\n\t\tcommand.icon,\n\t\tcommand.context,\n\t\tcommand.keywords,\n\t\tcommand.disabled,\n\t\tregisterCommand,\n\t\tunregisterCommand,\n\t] );\n}\n\n/**\n * Attach multiple commands to the command palette. Used for static commands.\n *\n * @param {import('../store/actions').WPCommandConfig[]} commands Array of command configs.\n *\n * @example\n * ```js\n * import { useCommands } from '@wordpress/commands';\n * import { plus, pencil } from '@wordpress/icons';\n *\n * useCommands( [\n * {\n * name: 'myplugin/add-post',\n * label: __( 'Add new post' ),\n * icon: plus,\n * callback: ({ close }) => {\n * document.location.href = 'post-new.php';\n * close();\n * },\n * },\n * {\n * name: 'myplugin/edit-posts',\n * label: __( 'Edit posts' ),\n * icon: pencil,\n * callback: ({ close }) => {\n * document.location.href = 'edit.php';\n * close();\n * },\n * },\n * ] );\n * ```\n */\nexport function useCommands( commands ) {\n\tconst { registerCommand, unregisterCommand } = useDispatch( commandsStore );\n\tconst currentCallbacksRef = useRef( {} );\n\n\tuseEffect( () => {\n\t\tif ( ! commands ) {\n\t\t\treturn;\n\t\t}\n\t\tcommands.forEach( ( command ) => {\n\t\t\tif ( command.callback ) {\n\t\t\t\tcurrentCallbacksRef.current[ command.name ] = command.callback;\n\t\t\t}\n\t\t} );\n\t}, [ commands ] );\n\n\tuseEffect( () => {\n\t\tif ( ! commands ) {\n\t\t\treturn;\n\t\t}\n\t\tcommands.forEach( ( command ) => {\n\t\t\tif ( command.disabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tregisterCommand( {\n\t\t\t\tname: command.name,\n\t\t\t\tcontext: command.context,\n\t\t\t\tlabel: command.label,\n\t\t\t\tsearchLabel: command.searchLabel,\n\t\t\t\ticon: command.icon,\n\t\t\t\tkeywords: command.keywords,\n\t\t\t\tcallback: ( ...args ) => {\n\t\t\t\t\tconst callback =\n\t\t\t\t\t\tcurrentCallbacksRef.current[ command.name ];\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tcallback( ...args );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t} );\n\t\t} );\n\n\t\treturn () => {\n\t\t\tcommands.forEach( ( command ) => {\n\t\t\t\tunregisterCommand( command.name );\n\t\t\t} );\n\t\t};\n\t}, [ commands, registerCommand, unregisterCommand ] );\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAAkC;AAClC,kBAA4B;AAK5B,mBAAuC;AAuBhC,SAAS,WAAY,SAAU;AACrC,QAAM,EAAE,iBAAiB,kBAAkB,QAAI,yBAAa,aAAAA,KAAc;AAC1E,QAAM,yBAAqB,uBAAQ,QAAQ,QAAS;AACpD,gCAAW,MAAM;AAChB,uBAAmB,UAAU,QAAQ;AAAA,EACtC,GAAG,CAAE,QAAQ,QAAS,CAAE;AAExB,gCAAW,MAAM;AAChB,QAAK,QAAQ,UAAW;AACvB;AAAA,IACD;AACA,oBAAiB;AAAA,MAChB,MAAM,QAAQ;AAAA,MACd,SAAS,QAAQ;AAAA,MACjB,OAAO,QAAQ;AAAA,MACf,aAAa,QAAQ;AAAA,MACrB,MAAM,QAAQ;AAAA,MACd,UAAU,QAAQ;AAAA,MAClB,UAAU,IAAK,SAAU,mBAAmB,QAAS,GAAG,IAAK;AAAA,IAC9D,CAAE;AACF,WAAO,MAAM;AACZ,wBAAmB,QAAQ,IAAK;AAAA,IACjC;AAAA,EACD,GAAG;AAAA,IACF,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,EACD,CAAE;AACH;AAkCO,SAAS,YAAa,UAAW;AACvC,QAAM,EAAE,iBAAiB,kBAAkB,QAAI,yBAAa,aAAAA,KAAc;AAC1E,QAAM,0BAAsB,uBAAQ,CAAC,CAAE;AAEvC,gCAAW,MAAM;AAChB,QAAK,CAAE,UAAW;AACjB;AAAA,IACD;AACA,aAAS,QAAS,CAAE,YAAa;AAChC,UAAK,QAAQ,UAAW;AACvB,4BAAoB,QAAS,QAAQ,IAAK,IAAI,QAAQ;AAAA,MACvD;AAAA,IACD,CAAE;AAAA,EACH,GAAG,CAAE,QAAS,CAAE;AAEhB,gCAAW,MAAM;AAChB,QAAK,CAAE,UAAW;AACjB;AAAA,IACD;AACA,aAAS,QAAS,CAAE,YAAa;AAChC,UAAK,QAAQ,UAAW;AACvB;AAAA,MACD;AACA,sBAAiB;AAAA,QAChB,MAAM,QAAQ;AAAA,QACd,SAAS,QAAQ;AAAA,QACjB,OAAO,QAAQ;AAAA,QACf,aAAa,QAAQ;AAAA,QACrB,MAAM,QAAQ;AAAA,QACd,UAAU,QAAQ;AAAA,QAClB,UAAU,IAAK,SAAU;AACxB,gBAAM,WACL,oBAAoB,QAAS,QAAQ,IAAK;AAC3C,cAAK,UAAW;AACf,qBAAU,GAAG,IAAK;AAAA,UACnB;AAAA,QACD;AAAA,MACD,CAAE;AAAA,IACH,CAAE;AAEF,WAAO,MAAM;AACZ,eAAS,QAAS,CAAE,YAAa;AAChC,0BAAmB,QAAQ,IAAK;AAAA,MACjC,CAAE;AAAA,IACH;AAAA,EACD,GAAG,CAAE,UAAU,iBAAiB,iBAAkB,CAAE;AACrD;",
|
|
6
|
+
"names": ["commandsStore"]
|
|
7
|
+
}
|