@wordpress/block-directory 4.11.0 → 4.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/build/components/block-ratings/index.js +7 -10
- package/build/components/block-ratings/index.js.map +1 -1
- package/build/components/block-ratings/stars.js +3 -4
- package/build/components/block-ratings/stars.js.map +1 -1
- package/build/components/compact-list/index.js +23 -28
- package/build/components/compact-list/index.js.map +1 -1
- package/build/components/downloadable-block-icon/index.js +3 -4
- package/build/components/downloadable-block-icon/index.js.map +1 -1
- package/build/components/downloadable-block-list-item/index.js +14 -17
- package/build/components/downloadable-block-list-item/index.js.map +1 -1
- package/build/components/downloadable-block-notice/index.js +3 -4
- package/build/components/downloadable-block-notice/index.js.map +1 -1
- package/build/components/downloadable-blocks-list/index.js +5 -6
- package/build/components/downloadable-blocks-list/index.js.map +1 -1
- package/build/components/downloadable-blocks-panel/index.js +13 -16
- package/build/components/downloadable-blocks-panel/index.js.map +1 -1
- package/build/components/downloadable-blocks-panel/inserter-panel.js +5 -6
- package/build/components/downloadable-blocks-panel/inserter-panel.js.map +1 -1
- package/build/plugins/get-install-missing/index.js +7 -11
- package/build/plugins/get-install-missing/index.js.map +1 -1
- package/build/plugins/get-install-missing/install-button.js +5 -6
- package/build/plugins/get-install-missing/install-button.js.map +1 -1
- package/build/plugins/inserter-menu-downloadable-blocks-panel/index.js +7 -9
- package/build/plugins/inserter-menu-downloadable-blocks-panel/index.js.map +1 -1
- package/build/plugins/installed-blocks-pre-publish-panel/index.js +2 -2
- package/build/plugins/installed-blocks-pre-publish-panel/index.js.map +1 -1
- package/build/store/actions.js +10 -17
- package/build/store/actions.js.map +1 -1
- package/build/store/reducer.js +6 -15
- package/build/store/reducer.js.map +1 -1
- package/build/store/resolvers.js +4 -9
- package/build/store/resolvers.js.map +1 -1
- package/build/store/selectors.js +4 -4
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils/has-block-type.js +4 -9
- package/build/store/utils/has-block-type.js.map +1 -1
- package/build-module/components/block-ratings/index.js +7 -10
- package/build-module/components/block-ratings/index.js.map +1 -1
- package/build-module/components/block-ratings/stars.js +3 -4
- package/build-module/components/block-ratings/stars.js.map +1 -1
- package/build-module/components/compact-list/index.js +23 -28
- package/build-module/components/compact-list/index.js.map +1 -1
- package/build-module/components/downloadable-block-icon/index.js +3 -4
- package/build-module/components/downloadable-block-icon/index.js.map +1 -1
- package/build-module/components/downloadable-block-list-item/index.js +14 -17
- package/build-module/components/downloadable-block-list-item/index.js.map +1 -1
- package/build-module/components/downloadable-block-notice/index.js +3 -4
- package/build-module/components/downloadable-block-notice/index.js.map +1 -1
- package/build-module/components/downloadable-blocks-list/index.js +5 -6
- package/build-module/components/downloadable-blocks-list/index.js.map +1 -1
- package/build-module/components/downloadable-blocks-panel/index.js +13 -16
- package/build-module/components/downloadable-blocks-panel/index.js.map +1 -1
- package/build-module/components/downloadable-blocks-panel/inserter-panel.js +5 -6
- package/build-module/components/downloadable-blocks-panel/inserter-panel.js.map +1 -1
- package/build-module/plugins/get-install-missing/index.js +7 -11
- package/build-module/plugins/get-install-missing/index.js.map +1 -1
- package/build-module/plugins/get-install-missing/install-button.js +5 -6
- package/build-module/plugins/get-install-missing/install-button.js.map +1 -1
- package/build-module/plugins/inserter-menu-downloadable-blocks-panel/index.js +7 -9
- package/build-module/plugins/inserter-menu-downloadable-blocks-panel/index.js.map +1 -1
- package/build-module/plugins/installed-blocks-pre-publish-panel/index.js +2 -2
- package/build-module/plugins/installed-blocks-pre-publish-panel/index.js.map +1 -1
- package/build-module/store/actions.js +10 -17
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/reducer.js +6 -15
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/resolvers.js +4 -9
- package/build-module/store/resolvers.js.map +1 -1
- package/build-module/store/selectors.js +4 -4
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils/has-block-type.js +4 -9
- package/build-module/store/utils/has-block-type.js.map +1 -1
- package/package.json +20 -20
|
@@ -10,10 +10,9 @@ import { useSelect } from '@wordpress/data';
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import { store as blockDirectoryStore } from '../../store';
|
|
13
|
-
export const DownloadableBlockNotice =
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
} = _ref;
|
|
13
|
+
export const DownloadableBlockNotice = ({
|
|
14
|
+
block
|
|
15
|
+
}) => {
|
|
17
16
|
const errorNotice = useSelect(select => select(blockDirectoryStore).getErrorNoticeForBlock(block.id), [block]);
|
|
18
17
|
|
|
19
18
|
if (!errorNotice) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-block-notice/index.js"],"names":["__","useSelect","store","blockDirectoryStore","DownloadableBlockNotice","block","errorNotice","select","getErrorNoticeForBlock","id","message","isFatal"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,mBAAlB,QAA6C,aAA7C;AAEA,OAAO,MAAMC,uBAAuB,GAAG,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-block-notice/index.js"],"names":["__","useSelect","store","blockDirectoryStore","DownloadableBlockNotice","block","errorNotice","select","getErrorNoticeForBlock","id","message","isFatal"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,mBAAlB,QAA6C,aAA7C;AAEA,OAAO,MAAMC,uBAAuB,GAAG,CAAE;AAAEC,EAAAA;AAAF,CAAF,KAAiB;AACvD,QAAMC,WAAW,GAAGL,SAAS,CAC1BM,MAAF,IACCA,MAAM,CAAEJ,mBAAF,CAAN,CAA8BK,sBAA9B,CAAsDH,KAAK,CAACI,EAA5D,CAF2B,EAG5B,CAAEJ,KAAF,CAH4B,CAA7B;;AAMA,MAAK,CAAEC,WAAP,EAAqB;AACpB,WAAO,IAAP;AACA;;AAED,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGA,WAAW,CAACI,OADf,EAEGJ,WAAW,CAACK,OAAZ,GACC,MAAMX,EAAE,CAAE,yBAAF,CADT,GAEC,IAJJ,CADD,CADD;AAUA,CArBM;AAuBP,eAAeI,uBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockDirectoryStore } from '../../store';\n\nexport const DownloadableBlockNotice = ( { block } ) => {\n\tconst errorNotice = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockDirectoryStore ).getErrorNoticeForBlock( block.id ),\n\t\t[ block ]\n\t);\n\n\tif ( ! errorNotice ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"block-directory-downloadable-block-notice\">\n\t\t\t<div className=\"block-directory-downloadable-block-notice__content\">\n\t\t\t\t{ errorNotice.message }\n\t\t\t\t{ errorNotice.isFatal\n\t\t\t\t\t? ' ' + __( 'Try reloading the page.' )\n\t\t\t\t\t: null }\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default DownloadableBlockNotice;\n"]}
|
|
@@ -17,12 +17,11 @@ import { store as blockDirectoryStore } from '../../store';
|
|
|
17
17
|
|
|
18
18
|
const noop = () => {};
|
|
19
19
|
|
|
20
|
-
function DownloadableBlocksList(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
} = _ref;
|
|
20
|
+
function DownloadableBlocksList({
|
|
21
|
+
items,
|
|
22
|
+
onHover = noop,
|
|
23
|
+
onSelect
|
|
24
|
+
}) {
|
|
26
25
|
const composite = useCompositeState();
|
|
27
26
|
const {
|
|
28
27
|
installBlockType
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-blocks-list/index.js"],"names":["__","__unstableComposite","Composite","__unstableUseCompositeState","useCompositeState","getBlockType","useDispatch","DownloadableBlockListItem","store","blockDirectoryStore","noop","DownloadableBlocksList","items","onHover","onSelect","composite","installBlockType","length","map","item","id","name","then","success"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SACCC,mBAAmB,IAAIC,SADxB,EAECC,2BAA2B,IAAIC,iBAFhC,QAGO,uBAHP;AAIA,SAASC,YAAT,QAA6B,mBAA7B;AACA,SAASC,WAAT,QAA4B,iBAA5B;AAEA;AACA;AACA;;AACA,OAAOC,yBAAP,MAAsC,iCAAtC;AACA,SAASC,KAAK,IAAIC,mBAAlB,QAA6C,aAA7C;;AAEA,MAAMC,IAAI,GAAG,MAAM,CAAE,CAArB;;AAEA,SAASC,sBAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-blocks-list/index.js"],"names":["__","__unstableComposite","Composite","__unstableUseCompositeState","useCompositeState","getBlockType","useDispatch","DownloadableBlockListItem","store","blockDirectoryStore","noop","DownloadableBlocksList","items","onHover","onSelect","composite","installBlockType","length","map","item","id","name","then","success"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SACCC,mBAAmB,IAAIC,SADxB,EAECC,2BAA2B,IAAIC,iBAFhC,QAGO,uBAHP;AAIA,SAASC,YAAT,QAA6B,mBAA7B;AACA,SAASC,WAAT,QAA4B,iBAA5B;AAEA;AACA;AACA;;AACA,OAAOC,yBAAP,MAAsC,iCAAtC;AACA,SAASC,KAAK,IAAIC,mBAAlB,QAA6C,aAA7C;;AAEA,MAAMC,IAAI,GAAG,MAAM,CAAE,CAArB;;AAEA,SAASC,sBAAT,CAAiC;AAAEC,EAAAA,KAAF;AAASC,EAAAA,OAAO,GAAGH,IAAnB;AAAyBI,EAAAA;AAAzB,CAAjC,EAAuE;AACtE,QAAMC,SAAS,GAAGX,iBAAiB,EAAnC;AACA,QAAM;AAAEY,IAAAA;AAAF,MAAuBV,WAAW,CAAEG,mBAAF,CAAxC;;AAEA,MAAK,CAAEG,KAAK,CAACK,MAAb,EAAsB;AACrB,WAAO,IAAP;AACA;;AAED,SACC,cAAC,SAAD,eACMF,SADN;AAEC,IAAA,IAAI,EAAC,SAFN;AAGC,IAAA,SAAS,EAAC,0CAHX;AAIC,kBAAaf,EAAE,CAAE,8BAAF;AAJhB,MAMGY,KAAK,CAACM,GAAN,CAAaC,IAAF,IAAY;AACxB,WACC,cAAC,yBAAD;AACC,MAAA,GAAG,EAAGA,IAAI,CAACC,EADZ;AAEC,MAAA,SAAS,EAAGL,SAFb;AAGC,MAAA,OAAO,EAAG,MAAM;AACf;AACA;AACA;AACA,YAAKV,YAAY,CAAEc,IAAI,CAACE,IAAP,CAAjB,EAAiC;AAChCP,UAAAA,QAAQ,CAAEK,IAAF,CAAR;AACA,SAFD,MAEO;AACNH,UAAAA,gBAAgB,CAAEG,IAAF,CAAhB,CAAyBG,IAAzB,CAAiCC,OAAF,IAAe;AAC7C,gBAAKA,OAAL,EAAe;AACdT,cAAAA,QAAQ,CAAEK,IAAF,CAAR;AACA;AACD,WAJD;AAKA;;AACDN,QAAAA,OAAO,CAAE,IAAF,CAAP;AACA,OAjBF;AAkBC,MAAA,OAAO,EAAGA,OAlBX;AAmBC,MAAA,IAAI,EAAGM;AAnBR,MADD;AAuBA,GAxBC,CANH,CADD;AAkCA;;AAED,eAAeR,sBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n} from '@wordpress/components';\nimport { getBlockType } from '@wordpress/blocks';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport DownloadableBlockListItem from '../downloadable-block-list-item';\nimport { store as blockDirectoryStore } from '../../store';\n\nconst noop = () => {};\n\nfunction DownloadableBlocksList( { items, onHover = noop, onSelect } ) {\n\tconst composite = useCompositeState();\n\tconst { installBlockType } = useDispatch( blockDirectoryStore );\n\n\tif ( ! items.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Composite\n\t\t\t{ ...composite }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-directory-downloadable-blocks-list\"\n\t\t\taria-label={ __( 'Blocks available for install' ) }\n\t\t>\n\t\t\t{ items.map( ( item ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DownloadableBlockListItem\n\t\t\t\t\t\tkey={ item.id }\n\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t// Check if the block is registered (`getBlockType`\n\t\t\t\t\t\t\t// will return an object). If so, insert the block.\n\t\t\t\t\t\t\t// This prevents installing existing plugins.\n\t\t\t\t\t\t\tif ( getBlockType( item.name ) ) {\n\t\t\t\t\t\t\t\tonSelect( item );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tinstallBlockType( item ).then( ( success ) => {\n\t\t\t\t\t\t\t\t\tif ( success ) {\n\t\t\t\t\t\t\t\t\t\tonSelect( item );\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\tonHover( null );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n\nexport default DownloadableBlocksList;\n"]}
|
|
@@ -19,17 +19,15 @@ import DownloadableBlocksNoResults from './no-results';
|
|
|
19
19
|
import { store as blockDirectoryStore } from '../../store';
|
|
20
20
|
const EMPTY_ARRAY = [];
|
|
21
21
|
|
|
22
|
-
function DownloadableBlocksPanel(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
} = _ref;
|
|
32
|
-
|
|
22
|
+
function DownloadableBlocksPanel({
|
|
23
|
+
downloadableItems,
|
|
24
|
+
onSelect,
|
|
25
|
+
onHover,
|
|
26
|
+
hasLocalBlocks,
|
|
27
|
+
hasPermission,
|
|
28
|
+
isLoading,
|
|
29
|
+
isTyping
|
|
30
|
+
}) {
|
|
33
31
|
if (typeof hasPermission === 'undefined' || isLoading || isTyping) {
|
|
34
32
|
return createElement(Fragment, null, hasPermission && !hasLocalBlocks && createElement(Fragment, null, createElement("p", {
|
|
35
33
|
className: "block-directory-downloadable-blocks-panel__no-local"
|
|
@@ -58,11 +56,10 @@ function DownloadableBlocksPanel(_ref) {
|
|
|
58
56
|
})) : !hasLocalBlocks && createElement(DownloadableBlocksNoResults, null);
|
|
59
57
|
}
|
|
60
58
|
|
|
61
|
-
export default compose([withSelect((select,
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
} = _ref2;
|
|
59
|
+
export default compose([withSelect((select, {
|
|
60
|
+
filterValue,
|
|
61
|
+
rootClientId = null
|
|
62
|
+
}) => {
|
|
66
63
|
const {
|
|
67
64
|
getDownloadableBlocks,
|
|
68
65
|
isRequestingDownloadableBlocks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-blocks-panel/index.js"],"names":["__","Spinner","compose","store","blockEditorStore","coreStore","withSelect","DownloadableBlocksList","DownloadableBlocksInserterPanel","DownloadableBlocksNoResults","blockDirectoryStore","EMPTY_ARRAY","DownloadableBlocksPanel","downloadableItems","onSelect","onHover","hasLocalBlocks","hasPermission","isLoading","isTyping","length","select","filterValue","rootClientId","getDownloadableBlocks","isRequestingDownloadableBlocks","canInsertBlockType","canUser","getInstallableBlocks","term","downloadableBlocks","installableBlocks","filter","block"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,OAAT,QAAwB,uBAAxB;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,yBAA1C;AACA,SAASD,KAAK,IAAIE,SAAlB,QAAmC,sBAAnC;AACA,SAASC,UAAT,QAA2B,iBAA3B;AAEA;AACA;AACA;;AACA,OAAOC,sBAAP,MAAmC,6BAAnC;AACA,OAAOC,+BAAP,MAA4C,kBAA5C;AACA,OAAOC,2BAAP,MAAwC,cAAxC;AACA,SAASN,KAAK,IAAIO,mBAAlB,QAA6C,aAA7C;AAEA,MAAMC,WAAW,GAAG,EAApB;;AAEA,SAASC,uBAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-blocks-panel/index.js"],"names":["__","Spinner","compose","store","blockEditorStore","coreStore","withSelect","DownloadableBlocksList","DownloadableBlocksInserterPanel","DownloadableBlocksNoResults","blockDirectoryStore","EMPTY_ARRAY","DownloadableBlocksPanel","downloadableItems","onSelect","onHover","hasLocalBlocks","hasPermission","isLoading","isTyping","length","select","filterValue","rootClientId","getDownloadableBlocks","isRequestingDownloadableBlocks","canInsertBlockType","canUser","getInstallableBlocks","term","downloadableBlocks","installableBlocks","filter","block"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Spinner } from '@wordpress/components';\nimport { compose } from '@wordpress/compose';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { withSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport DownloadableBlocksList from '../downloadable-blocks-list';\nimport DownloadableBlocksInserterPanel from './inserter-panel';\nimport DownloadableBlocksNoResults from './no-results';\nimport { store as blockDirectoryStore } from '../../store';\n\nconst EMPTY_ARRAY = [];\n\nfunction DownloadableBlocksPanel( {\n\tdownloadableItems,\n\tonSelect,\n\tonHover,\n\thasLocalBlocks,\n\thasPermission,\n\tisLoading,\n\tisTyping,\n} ) {\n\tif ( typeof hasPermission === 'undefined' || isLoading || isTyping ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ hasPermission && ! hasLocalBlocks && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<p className=\"block-directory-downloadable-blocks-panel__no-local\">\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'No results available from your installed blocks.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<div className=\"block-editor-inserter__quick-inserter-separator\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<div className=\"block-directory-downloadable-blocks-panel has-blocks-loading\">\n\t\t\t\t\t<Spinner />\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( false === hasPermission ) {\n\t\tif ( ! hasLocalBlocks ) {\n\t\t\treturn <DownloadableBlocksNoResults />;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\treturn !! downloadableItems.length ? (\n\t\t<DownloadableBlocksInserterPanel\n\t\t\tdownloadableItems={ downloadableItems }\n\t\t\thasLocalBlocks={ hasLocalBlocks }\n\t\t>\n\t\t\t<DownloadableBlocksList\n\t\t\t\titems={ downloadableItems }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tonHover={ onHover }\n\t\t\t/>\n\t\t</DownloadableBlocksInserterPanel>\n\t) : (\n\t\t! hasLocalBlocks && <DownloadableBlocksNoResults />\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select, { filterValue, rootClientId = null } ) => {\n\t\tconst { getDownloadableBlocks, isRequestingDownloadableBlocks } =\n\t\t\tselect( blockDirectoryStore );\n\t\tconst { canInsertBlockType } = select( blockEditorStore );\n\n\t\tconst hasPermission = select( coreStore ).canUser(\n\t\t\t'read',\n\t\t\t'block-directory/search'\n\t\t);\n\n\t\tfunction getInstallableBlocks( term ) {\n\t\t\tconst downloadableBlocks = getDownloadableBlocks( term );\n\t\t\tconst installableBlocks = downloadableBlocks.filter( ( block ) =>\n\t\t\t\tcanInsertBlockType( block, rootClientId, true )\n\t\t\t);\n\n\t\t\tif ( downloadableBlocks.length === installableBlocks.length ) {\n\t\t\t\treturn downloadableBlocks;\n\t\t\t}\n\t\t\treturn installableBlocks;\n\t\t}\n\n\t\tlet downloadableItems = hasPermission\n\t\t\t? getInstallableBlocks( filterValue )\n\t\t\t: [];\n\n\t\tif ( downloadableItems.length === 0 ) {\n\t\t\tdownloadableItems = EMPTY_ARRAY;\n\t\t}\n\n\t\tconst isLoading = isRequestingDownloadableBlocks( filterValue );\n\n\t\treturn {\n\t\t\tdownloadableItems,\n\t\t\thasPermission,\n\t\t\tisLoading,\n\t\t};\n\t} ),\n] )( DownloadableBlocksPanel );\n"]}
|
|
@@ -7,12 +7,11 @@ import { __, _n, sprintf } from '@wordpress/i18n';
|
|
|
7
7
|
import { useEffect } from '@wordpress/element';
|
|
8
8
|
import { speak } from '@wordpress/a11y';
|
|
9
9
|
|
|
10
|
-
function DownloadableBlocksInserterPanel(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
} = _ref;
|
|
10
|
+
function DownloadableBlocksInserterPanel({
|
|
11
|
+
children,
|
|
12
|
+
downloadableItems,
|
|
13
|
+
hasLocalBlocks
|
|
14
|
+
}) {
|
|
16
15
|
const count = downloadableItems.length;
|
|
17
16
|
useEffect(() => {
|
|
18
17
|
speak(sprintf(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-blocks-panel/inserter-panel.js"],"names":["__","_n","sprintf","useEffect","speak","DownloadableBlocksInserterPanel","children","downloadableItems","hasLocalBlocks","count","length"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,EAAb,EAAiBC,OAAjB,QAAgC,iBAAhC;AACA,SAASC,SAAT,QAA0B,oBAA1B;AACA,SAASC,KAAT,QAAsB,iBAAtB;;AAEA,SAASC,+BAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-directory/src/components/downloadable-blocks-panel/inserter-panel.js"],"names":["__","_n","sprintf","useEffect","speak","DownloadableBlocksInserterPanel","children","downloadableItems","hasLocalBlocks","count","length"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,EAAb,EAAiBC,OAAjB,QAAgC,iBAAhC;AACA,SAASC,SAAT,QAA0B,oBAA1B;AACA,SAASC,KAAT,QAAsB,iBAAtB;;AAEA,SAASC,+BAAT,CAA0C;AACzCC,EAAAA,QADyC;AAEzCC,EAAAA,iBAFyC;AAGzCC,EAAAA;AAHyC,CAA1C,EAII;AACH,QAAMC,KAAK,GAAGF,iBAAiB,CAACG,MAAhC;AACAP,EAAAA,SAAS,CAAE,MAAM;AAChBC,IAAAA,KAAK,CACJF,OAAO;AACN;AACAD,IAAAA,EAAE,CACD,8CADC,EAED,gDAFC,EAGDQ,KAHC,CAFI,EAONA,KAPM,CADH,CAAL;AAWA,GAZQ,EAYN,CAAEA,KAAF,CAZM,CAAT;AAcA,SACC,8BACG,CAAED,cAAF,IACD;AAAG,IAAA,SAAS,EAAC;AAAb,KACGR,EAAE,CAAE,kDAAF,CADL,CAFF,EAOC;AAAK,IAAA,SAAS,EAAC;AAAf,IAPD,EASC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAI,IAAA,SAAS,EAAC;AAAd,KACGA,EAAE,CAAE,sBAAF,CADL,CADD,EAIC;AAAG,IAAA,SAAS,EAAC;AAAb,KACGA,EAAE,CACH,oDADG,CADL,CAJD,CADD,EAWGM,QAXH,CATD,CADD;AAyBA;;AAED,eAAeD,+BAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { speak } from '@wordpress/a11y';\n\nfunction DownloadableBlocksInserterPanel( {\n\tchildren,\n\tdownloadableItems,\n\thasLocalBlocks,\n} ) {\n\tconst count = downloadableItems.length;\n\tuseEffect( () => {\n\t\tspeak(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %d: number of available blocks. */\n\t\t\t\t_n(\n\t\t\t\t\t'%d additional block is available to install.',\n\t\t\t\t\t'%d additional blocks are available to install.',\n\t\t\t\t\tcount\n\t\t\t\t),\n\t\t\t\tcount\n\t\t\t)\n\t\t);\n\t}, [ count ] );\n\n\treturn (\n\t\t<>\n\t\t\t{ ! hasLocalBlocks && (\n\t\t\t\t<p className=\"block-directory-downloadable-blocks-panel__no-local\">\n\t\t\t\t\t{ __( 'No results available from your installed blocks.' ) }\n\t\t\t\t</p>\n\t\t\t) }\n\n\t\t\t<div className=\"block-editor-inserter__quick-inserter-separator\" />\n\n\t\t\t<div className=\"block-directory-downloadable-blocks-panel\">\n\t\t\t\t<div className=\"block-directory-downloadable-blocks-panel__header\">\n\t\t\t\t\t<h2 className=\"block-directory-downloadable-blocks-panel__title\">\n\t\t\t\t\t\t{ __( 'Available to install' ) }\n\t\t\t\t\t</h2>\n\t\t\t\t\t<p className=\"block-directory-downloadable-blocks-panel__description\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select a block to install and add it to your post.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default DownloadableBlocksInserterPanel;\n"]}
|
|
@@ -31,12 +31,9 @@ const getInstallMissing = OriginalComponent => props => {
|
|
|
31
31
|
const {
|
|
32
32
|
getDownloadableBlocks
|
|
33
33
|
} = select(blockDirectoryStore);
|
|
34
|
-
const blocks = getDownloadableBlocks('block:' + originalName).filter(
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
} = _ref;
|
|
38
|
-
return originalName === name;
|
|
39
|
-
});
|
|
34
|
+
const blocks = getDownloadableBlocks('block:' + originalName).filter(({
|
|
35
|
+
name
|
|
36
|
+
}) => originalName === name);
|
|
40
37
|
return {
|
|
41
38
|
hasPermission: select(coreStore).canUser('read', 'block-directory/search'),
|
|
42
39
|
block: blocks.length && blocks[0]
|
|
@@ -52,11 +49,10 @@ const getInstallMissing = OriginalComponent => props => {
|
|
|
52
49
|
}));
|
|
53
50
|
};
|
|
54
51
|
|
|
55
|
-
const ModifiedWarning =
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
} = _ref2;
|
|
52
|
+
const ModifiedWarning = ({
|
|
53
|
+
originalBlock,
|
|
54
|
+
...props
|
|
55
|
+
}) => {
|
|
60
56
|
const {
|
|
61
57
|
originalName,
|
|
62
58
|
originalUndelimitedContent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-directory/src/plugins/get-install-missing/index.js"],"names":["__","sprintf","Button","createBlock","RawHTML","useDispatch","useSelect","store","coreStore","Warning","useBlockProps","blockEditorStore","InstallButton","blockDirectoryStore","getInstallMissing","OriginalComponent","props","originalName","attributes","block","hasPermission","select","getDownloadableBlocks","blocks","filter","name","canUser","length","ModifiedWarning","originalBlock","originalUndelimitedContent","clientId","replaceBlock","convertToHTML","content","hasContent","hasHTMLBlock","canInsertBlockType","getBlockRootClientId","messageHTML","title","actions","push"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,WAAT,QAA4B,mBAA5B;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AACA,SACCC,OADD,EAECC,aAFD,EAGCH,KAAK,IAAII,gBAHV,QAIO,yBAJP;AAMA;AACA;AACA;;AACA,OAAOC,aAAP,MAA0B,kBAA1B;AACA,SAASL,KAAK,IAAIM,mBAAlB,QAA6C,aAA7C;;AAEA,MAAMC,iBAAiB,GAAKC,iBAAF,IAA2BC,KAAF,IAAa;AAC/D,QAAM;AAAEC,IAAAA;AAAF,MAAmBD,KAAK,CAACE,UAA/B,CAD+D,CAE/D;AACA;;AACA,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA;AAAT,MAA2Bd,SAAS,CACvCe,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAA4BD,MAAM,CAAER,mBAAF,CAAxC;AACA,UAAMU,MAAM,GAAGD,qBAAqB,CACnC,WAAWL,YADwB,CAArB,CAEbO,MAFa,CAEL
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-directory/src/plugins/get-install-missing/index.js"],"names":["__","sprintf","Button","createBlock","RawHTML","useDispatch","useSelect","store","coreStore","Warning","useBlockProps","blockEditorStore","InstallButton","blockDirectoryStore","getInstallMissing","OriginalComponent","props","originalName","attributes","block","hasPermission","select","getDownloadableBlocks","blocks","filter","name","canUser","length","ModifiedWarning","originalBlock","originalUndelimitedContent","clientId","replaceBlock","convertToHTML","content","hasContent","hasHTMLBlock","canInsertBlockType","getBlockRootClientId","messageHTML","title","actions","push"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { createBlock } from '@wordpress/blocks';\nimport { RawHTML } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tWarning,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport InstallButton from './install-button';\nimport { store as blockDirectoryStore } from '../../store';\n\nconst getInstallMissing = ( OriginalComponent ) => ( props ) => {\n\tconst { originalName } = props.attributes;\n\t// Disable reason: This is a valid component, but it's mistaken for a callback.\n\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\tconst { block, hasPermission } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getDownloadableBlocks } = select( blockDirectoryStore );\n\t\t\tconst blocks = getDownloadableBlocks(\n\t\t\t\t'block:' + originalName\n\t\t\t).filter( ( { name } ) => originalName === name );\n\t\t\treturn {\n\t\t\t\thasPermission: select( coreStore ).canUser(\n\t\t\t\t\t'read',\n\t\t\t\t\t'block-directory/search'\n\t\t\t\t),\n\t\t\t\tblock: blocks.length && blocks[ 0 ],\n\t\t\t};\n\t\t},\n\t\t[ originalName ]\n\t);\n\n\t// The user can't install blocks, or the block isn't available for download.\n\tif ( ! hasPermission || ! block ) {\n\t\treturn <OriginalComponent { ...props } />;\n\t}\n\n\treturn <ModifiedWarning { ...props } originalBlock={ block } />;\n};\n\nconst ModifiedWarning = ( { originalBlock, ...props } ) => {\n\tconst { originalName, originalUndelimitedContent, clientId } =\n\t\tprops.attributes;\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst convertToHTML = () => {\n\t\treplaceBlock(\n\t\t\tprops.clientId,\n\t\t\tcreateBlock( 'core/html', {\n\t\t\t\tcontent: originalUndelimitedContent,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst hasContent = !! originalUndelimitedContent;\n\tconst hasHTMLBlock = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canInsertBlockType, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn canInsertBlockType(\n\t\t\t\t'core/html',\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tlet messageHTML = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__(\n\t\t\t'Your site doesn’t include support for the %s block. You can try installing the block or remove it entirely.'\n\t\t),\n\t\toriginalBlock.title || originalName\n\t);\n\tconst actions = [\n\t\t<InstallButton\n\t\t\tkey=\"install\"\n\t\t\tblock={ originalBlock }\n\t\t\tattributes={ props.attributes }\n\t\t\tclientId={ props.clientId }\n\t\t/>,\n\t];\n\n\tif ( hasContent && hasHTMLBlock ) {\n\t\tmessageHTML = sprintf(\n\t\t\t/* translators: %s: block name */\n\t\t\t__(\n\t\t\t\t'Your site doesn’t include support for the %s block. You can try installing the block, convert it to a Custom HTML block, or remove it entirely.'\n\t\t\t),\n\t\t\toriginalBlock.title || originalName\n\t\t);\n\t\tactions.push(\n\t\t\t<Button key=\"convert\" onClick={ convertToHTML } variant=\"tertiary\">\n\t\t\t\t{ __( 'Keep as HTML' ) }\n\t\t\t</Button>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...useBlockProps() }>\n\t\t\t<Warning actions={ actions }>{ messageHTML }</Warning>\n\t\t\t<RawHTML>{ originalUndelimitedContent }</RawHTML>\n\t\t</div>\n\t);\n};\n\nexport default getInstallMissing;\n"]}
|
|
@@ -13,12 +13,11 @@ import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import { store as blockDirectoryStore } from '../../store';
|
|
16
|
-
export default function InstallButton(
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
} = _ref;
|
|
16
|
+
export default function InstallButton({
|
|
17
|
+
attributes,
|
|
18
|
+
block,
|
|
19
|
+
clientId
|
|
20
|
+
}) {
|
|
22
21
|
const isInstallingBlock = useSelect(select => select(blockDirectoryStore).isInstalling(block.id), [block.id]);
|
|
23
22
|
const {
|
|
24
23
|
installBlockType
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-directory/src/plugins/get-install-missing/install-button.js"],"names":["__","sprintf","Button","createBlock","getBlockType","parse","useSelect","useDispatch","store","blockEditorStore","blockDirectoryStore","InstallButton","attributes","block","clientId","isInstallingBlock","select","isInstalling","id","installBlockType","replaceBlock","then","success","blockType","name","originalBlock","originalContent","innerBlocks","title"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,WAAT,EAAsBC,YAAtB,EAAoCC,KAApC,QAAiD,mBAAjD;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,yBAA1C;AAEA;AACA;AACA;;AACA,SAASD,KAAK,IAAIE,mBAAlB,QAA6C,aAA7C;AAEA,eAAe,SAASC,aAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-directory/src/plugins/get-install-missing/install-button.js"],"names":["__","sprintf","Button","createBlock","getBlockType","parse","useSelect","useDispatch","store","blockEditorStore","blockDirectoryStore","InstallButton","attributes","block","clientId","isInstallingBlock","select","isInstalling","id","installBlockType","replaceBlock","then","success","blockType","name","originalBlock","originalContent","innerBlocks","title"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,WAAT,EAAsBC,YAAtB,EAAoCC,KAApC,QAAiD,mBAAjD;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,yBAA1C;AAEA;AACA;AACA;;AACA,SAASD,KAAK,IAAIE,mBAAlB,QAA6C,aAA7C;AAEA,eAAe,SAASC,aAAT,CAAwB;AAAEC,EAAAA,UAAF;AAAcC,EAAAA,KAAd;AAAqBC,EAAAA;AAArB,CAAxB,EAA0D;AACxE,QAAMC,iBAAiB,GAAGT,SAAS,CAChCU,MAAF,IAAcA,MAAM,CAAEN,mBAAF,CAAN,CAA8BO,YAA9B,CAA4CJ,KAAK,CAACK,EAAlD,CADoB,EAElC,CAAEL,KAAK,CAACK,EAAR,CAFkC,CAAnC;AAIA,QAAM;AAAEC,IAAAA;AAAF,MAAuBZ,WAAW,CAAEG,mBAAF,CAAxC;AACA,QAAM;AAAEU,IAAAA;AAAF,MAAmBb,WAAW,CAAEE,gBAAF,CAApC;AAEA,SACC,cAAC,MAAD;AACC,IAAA,OAAO,EAAG,MACTU,gBAAgB,CAAEN,KAAF,CAAhB,CAA0BQ,IAA1B,CAAkCC,OAAF,IAAe;AAC9C,UAAKA,OAAL,EAAe;AACd,cAAMC,SAAS,GAAGnB,YAAY,CAAES,KAAK,CAACW,IAAR,CAA9B;AACA,cAAM,CAAEC,aAAF,IAAoBpB,KAAK,CAC9BO,UAAU,CAACc,eADmB,CAA/B;;AAGA,YAAKD,aAAa,IAAIF,SAAtB,EAAkC;AACjCH,UAAAA,YAAY,CACXN,QADW,EAEXX,WAAW,CACVoB,SAAS,CAACC,IADA,EAEVC,aAAa,CAACb,UAFJ,EAGVa,aAAa,CAACE,WAHJ,CAFA,CAAZ;AAQA;AACD;AACD,KAjBD,CAFF;AAqBC,IAAA,QAAQ,EAAGZ,iBArBZ;AAsBC,IAAA,MAAM,EAAGA,iBAtBV;AAuBC,IAAA,OAAO,EAAC;AAvBT,KAyBGd,OAAO;AACR;AACAD,EAAAA,EAAE,CAAE,YAAF,CAFM,EAGRa,KAAK,CAACe,KAHE,CAzBV,CADD;AAiCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { createBlock, getBlockType, parse } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { store as blockDirectoryStore } from '../../store';\n\nexport default function InstallButton( { attributes, block, clientId } ) {\n\tconst isInstallingBlock = useSelect(\n\t\t( select ) => select( blockDirectoryStore ).isInstalling( block.id ),\n\t\t[ block.id ]\n\t);\n\tconst { installBlockType } = useDispatch( blockDirectoryStore );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={ () =>\n\t\t\t\tinstallBlockType( block ).then( ( success ) => {\n\t\t\t\t\tif ( success ) {\n\t\t\t\t\t\tconst blockType = getBlockType( block.name );\n\t\t\t\t\t\tconst [ originalBlock ] = parse(\n\t\t\t\t\t\t\tattributes.originalContent\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( originalBlock && blockType ) {\n\t\t\t\t\t\t\treplaceBlock(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\t\t\tblockType.name,\n\t\t\t\t\t\t\t\t\toriginalBlock.attributes,\n\t\t\t\t\t\t\t\t\toriginalBlock.innerBlocks\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t}\n\t\t\tdisabled={ isInstallingBlock }\n\t\t\tisBusy={ isInstallingBlock }\n\t\t\tvariant=\"primary\"\n\t\t>\n\t\t\t{ sprintf(\n\t\t\t\t/* translators: %s: block name */\n\t\t\t\t__( 'Install %s' ),\n\t\t\t\tblock.title\n\t\t\t) }\n\t\t</Button>\n\t);\n}\n"]}
|
|
@@ -15,15 +15,13 @@ import DownloadableBlocksPanel from '../../components/downloadable-blocks-panel'
|
|
|
15
15
|
function InserterMenuDownloadableBlocksPanel() {
|
|
16
16
|
const [debouncedFilterValue, setFilterValue] = useState('');
|
|
17
17
|
const debouncedSetFilterValue = debounce(setFilterValue, 400);
|
|
18
|
-
return createElement(__unstableInserterMenuExtension, null,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
} = _ref;
|
|
26
|
-
|
|
18
|
+
return createElement(__unstableInserterMenuExtension, null, ({
|
|
19
|
+
onSelect,
|
|
20
|
+
onHover,
|
|
21
|
+
filterValue,
|
|
22
|
+
hasItems,
|
|
23
|
+
rootClientId
|
|
24
|
+
}) => {
|
|
27
25
|
if (debouncedFilterValue !== filterValue) {
|
|
28
26
|
debouncedSetFilterValue(filterValue);
|
|
29
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-directory/src/plugins/inserter-menu-downloadable-blocks-panel/index.js"],"names":["__unstableInserterMenuExtension","debounce","useState","DownloadableBlocksPanel","InserterMenuDownloadableBlocksPanel","debouncedFilterValue","setFilterValue","debouncedSetFilterValue","onSelect","onHover","filterValue","hasItems","rootClientId"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,+BAAT,QAAgD,yBAAhD;AACA,SAASC,QAAT,QAAyB,oBAAzB;AACA,SAASC,QAAT,QAAyB,oBAAzB;AAEA;AACA;AACA;;AACA,OAAOC,uBAAP,MAAoC,4CAApC;;AAEA,SAASC,mCAAT,GAA+C;AAC9C,QAAM,CAAEC,oBAAF,EAAwBC,cAAxB,IAA2CJ,QAAQ,CAAE,EAAF,CAAzD;AACA,QAAMK,uBAAuB,GAAGN,QAAQ,CAAEK,cAAF,EAAkB,GAAlB,CAAxC;AAEA,SACC,cAAC,+BAAD,QACG,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-directory/src/plugins/inserter-menu-downloadable-blocks-panel/index.js"],"names":["__unstableInserterMenuExtension","debounce","useState","DownloadableBlocksPanel","InserterMenuDownloadableBlocksPanel","debouncedFilterValue","setFilterValue","debouncedSetFilterValue","onSelect","onHover","filterValue","hasItems","rootClientId"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,+BAAT,QAAgD,yBAAhD;AACA,SAASC,QAAT,QAAyB,oBAAzB;AACA,SAASC,QAAT,QAAyB,oBAAzB;AAEA;AACA;AACA;;AACA,OAAOC,uBAAP,MAAoC,4CAApC;;AAEA,SAASC,mCAAT,GAA+C;AAC9C,QAAM,CAAEC,oBAAF,EAAwBC,cAAxB,IAA2CJ,QAAQ,CAAE,EAAF,CAAzD;AACA,QAAMK,uBAAuB,GAAGN,QAAQ,CAAEK,cAAF,EAAkB,GAAlB,CAAxC;AAEA,SACC,cAAC,+BAAD,QACG,CAAE;AACHE,IAAAA,QADG;AAEHC,IAAAA,OAFG;AAGHC,IAAAA,WAHG;AAIHC,IAAAA,QAJG;AAKHC,IAAAA;AALG,GAAF,KAMK;AACN,QAAKP,oBAAoB,KAAKK,WAA9B,EAA4C;AAC3CH,MAAAA,uBAAuB,CAAEG,WAAF,CAAvB;AACA;;AAED,QAAK,CAAEL,oBAAP,EAA8B;AAC7B,aAAO,IAAP;AACA;;AAED,WACC,cAAC,uBAAD;AACC,MAAA,QAAQ,EAAGG,QADZ;AAEC,MAAA,OAAO,EAAGC,OAFX;AAGC,MAAA,YAAY,EAAGG,YAHhB;AAIC,MAAA,WAAW,EAAGP,oBAJf;AAKC,MAAA,cAAc,EAAGM,QALlB;AAMC,MAAA,QAAQ,EAAGD,WAAW,KAAKL;AAN5B,MADD;AAUA,GA1BF,CADD;AA8BA;;AAED,eAAeD,mCAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __unstableInserterMenuExtension } from '@wordpress/block-editor';\nimport { debounce } from '@wordpress/compose';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DownloadableBlocksPanel from '../../components/downloadable-blocks-panel';\n\nfunction InserterMenuDownloadableBlocksPanel() {\n\tconst [ debouncedFilterValue, setFilterValue ] = useState( '' );\n\tconst debouncedSetFilterValue = debounce( setFilterValue, 400 );\n\n\treturn (\n\t\t<__unstableInserterMenuExtension>\n\t\t\t{ ( {\n\t\t\t\tonSelect,\n\t\t\t\tonHover,\n\t\t\t\tfilterValue,\n\t\t\t\thasItems,\n\t\t\t\trootClientId,\n\t\t\t} ) => {\n\t\t\t\tif ( debouncedFilterValue !== filterValue ) {\n\t\t\t\t\tdebouncedSetFilterValue( filterValue );\n\t\t\t\t}\n\n\t\t\t\tif ( ! debouncedFilterValue ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<DownloadableBlocksPanel\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tfilterValue={ debouncedFilterValue }\n\t\t\t\t\t\thasLocalBlocks={ hasItems }\n\t\t\t\t\t\tisTyping={ filterValue !== debouncedFilterValue }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t</__unstableInserterMenuExtension>\n\t);\n}\n\nexport default InserterMenuDownloadableBlocksPanel;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _window$wp$editPost
|
|
1
|
+
var _window$wp$editPost;
|
|
2
2
|
|
|
3
3
|
import { createElement } from "@wordpress/element";
|
|
4
4
|
|
|
@@ -18,7 +18,7 @@ import { store as blockDirectoryStore } from '../../store'; // We shouldn't impo
|
|
|
18
18
|
|
|
19
19
|
const {
|
|
20
20
|
PluginPrePublishPanel
|
|
21
|
-
} = (_window$wp$editPost =
|
|
21
|
+
} = (_window$wp$editPost = window?.wp?.editPost) !== null && _window$wp$editPost !== void 0 ? _window$wp$editPost : {};
|
|
22
22
|
export default function InstalledBlocksPrePublishPanel() {
|
|
23
23
|
const newBlockTypes = useSelect(select => select(blockDirectoryStore).getNewBlockTypes(), []);
|
|
24
24
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-directory/src/plugins/installed-blocks-pre-publish-panel/index.js"],"names":["_n","sprintf","useSelect","blockDefault","CompactList","store","blockDirectoryStore","PluginPrePublishPanel","window","wp","editPost","InstalledBlocksPrePublishPanel","newBlockTypes","select","getNewBlockTypes","length"],"mappings":";;;;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,YAAT,QAA6B,kBAA7B;AAEA;AACA;AACA;;AACA,OAAOC,WAAP,MAAwB,+BAAxB;AACA,SAASC,KAAK,IAAIC,mBAAlB,QAA6C,aAA7C,C,CAEA;AACA;;AACA,MAAM;AAAEC,EAAAA;AAAF,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-directory/src/plugins/installed-blocks-pre-publish-panel/index.js"],"names":["_n","sprintf","useSelect","blockDefault","CompactList","store","blockDirectoryStore","PluginPrePublishPanel","window","wp","editPost","InstalledBlocksPrePublishPanel","newBlockTypes","select","getNewBlockTypes","length"],"mappings":";;;;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,YAAT,QAA6B,kBAA7B;AAEA;AACA;AACA;;AACA,OAAOC,WAAP,MAAwB,+BAAxB;AACA,SAASC,KAAK,IAAIC,mBAAlB,QAA6C,aAA7C,C,CAEA;AACA;;AACA,MAAM;AAAEC,EAAAA;AAAF,2BAA4BC,MAAM,EAAEC,EAAR,EAAYC,QAAxC,qEAAoD,EAA1D;AAEA,eAAe,SAASC,8BAAT,GAA0C;AACxD,QAAMC,aAAa,GAAGV,SAAS,CAC5BW,MAAF,IAAcA,MAAM,CAAEP,mBAAF,CAAN,CAA8BQ,gBAA9B,EADgB,EAE9B,EAF8B,CAA/B;;AAKA,MAAK,CAAEF,aAAa,CAACG,MAArB,EAA8B;AAC7B,WAAO,IAAP;AACA;;AAED,SACC,cAAC,qBAAD;AACC,IAAA,IAAI,EAAGZ,YADR;AAEC,IAAA,KAAK,EAAGF,OAAO,EACd;AACAD,IAAAA,EAAE,CACD,iBADC,EAED,kBAFC,EAGDY,aAAa,CAACG,MAHb,CAFY,EAOdH,aAAa,CAACG,MAPA,CAFhB;AAWC,IAAA,WAAW,EAAG;AAXf,KAaC;AAAG,IAAA,SAAS,EAAC;AAAb,KACGf,EAAE,CACH,kDADG,EAEH,oDAFG,EAGHY,aAAa,CAACG,MAHX,CADL,CAbD,EAoBC,cAAC,WAAD;AAAa,IAAA,KAAK,EAAGH;AAArB,IApBD,CADD;AAwBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _n, sprintf } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { blockDefault } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport CompactList from '../../components/compact-list';\nimport { store as blockDirectoryStore } from '../../store';\n\n// We shouldn't import the edit-post package directly\n// because it would include the wp-edit-post in all pages loading the block-directory script.\nconst { PluginPrePublishPanel } = window?.wp?.editPost ?? {};\n\nexport default function InstalledBlocksPrePublishPanel() {\n\tconst newBlockTypes = useSelect(\n\t\t( select ) => select( blockDirectoryStore ).getNewBlockTypes(),\n\t\t[]\n\t);\n\n\tif ( ! newBlockTypes.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PluginPrePublishPanel\n\t\t\ticon={ blockDefault }\n\t\t\ttitle={ sprintf(\n\t\t\t\t// translators: %d: number of blocks (number).\n\t\t\t\t_n(\n\t\t\t\t\t'Added: %d block',\n\t\t\t\t\t'Added: %d blocks',\n\t\t\t\t\tnewBlockTypes.length\n\t\t\t\t),\n\t\t\t\tnewBlockTypes.length\n\t\t\t) }\n\t\t\tinitialOpen={ true }\n\t\t>\n\t\t\t<p className=\"installed-blocks-pre-publish-panel__copy\">\n\t\t\t\t{ _n(\n\t\t\t\t\t'The following block has been added to your site.',\n\t\t\t\t\t'The following blocks have been added to your site.',\n\t\t\t\t\tnewBlockTypes.length\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<CompactList items={ newBlockTypes } />\n\t\t</PluginPrePublishPanel>\n\t);\n}\n"]}
|
|
@@ -53,11 +53,10 @@ export function receiveDownloadableBlocks(downloadableBlocks, filterValue) {
|
|
|
53
53
|
* @return {boolean} Whether the block was successfully installed & loaded.
|
|
54
54
|
*/
|
|
55
55
|
|
|
56
|
-
export const installBlockType = block => async
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
} = _ref;
|
|
56
|
+
export const installBlockType = block => async ({
|
|
57
|
+
registry,
|
|
58
|
+
dispatch
|
|
59
|
+
}) => {
|
|
61
60
|
const {
|
|
62
61
|
id,
|
|
63
62
|
name
|
|
@@ -110,10 +109,7 @@ export const installBlockType = block => async _ref => {
|
|
|
110
109
|
}
|
|
111
110
|
|
|
112
111
|
unstable__bootstrapServerSideBlockDefinitions({
|
|
113
|
-
[name]: Object.fromEntries(Object.entries(response).filter(
|
|
114
|
-
let [key] = _ref2;
|
|
115
|
-
return metadataFields.includes(key);
|
|
116
|
-
}))
|
|
112
|
+
[name]: Object.fromEntries(Object.entries(response).filter(([key]) => metadataFields.includes(key)))
|
|
117
113
|
});
|
|
118
114
|
});
|
|
119
115
|
await loadAssets();
|
|
@@ -161,12 +157,10 @@ export const installBlockType = block => async _ref => {
|
|
|
161
157
|
* @param {Object} block The blockType object.
|
|
162
158
|
*/
|
|
163
159
|
|
|
164
|
-
export const uninstallBlockType = block => async
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
} = _ref3;
|
|
169
|
-
|
|
160
|
+
export const uninstallBlockType = block => async ({
|
|
161
|
+
registry,
|
|
162
|
+
dispatch
|
|
163
|
+
}) => {
|
|
170
164
|
try {
|
|
171
165
|
const url = getPluginUrl(block);
|
|
172
166
|
await apiFetch({
|
|
@@ -241,8 +235,7 @@ export function setIsInstalling(blockId, isInstalling) {
|
|
|
241
235
|
* @return {Object} Action object.
|
|
242
236
|
*/
|
|
243
237
|
|
|
244
|
-
export function setErrorNotice(blockId, message) {
|
|
245
|
-
let isFatal = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
238
|
+
export function setErrorNotice(blockId, message, isFatal = false) {
|
|
246
239
|
return {
|
|
247
240
|
type: 'SET_ERROR_NOTICE',
|
|
248
241
|
blockId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-directory/src/store/actions.js"],"names":["store","blocksStore","unstable__bootstrapServerSideBlockDefinitions","__","sprintf","apiFetch","noticesStore","addQueryArgs","loadAssets","getPluginUrl","fetchDownloadableBlocks","filterValue","type","receiveDownloadableBlocks","downloadableBlocks","installBlockType","block","registry","dispatch","id","name","success","clearErrorNotice","setIsInstalling","url","links","method","data","status","response","path","slug","_links","addInstalledBlockType","metadataFields","_fields","catch","then","Object","fromEntries","entries","filter","key","includes","registeredBlocks","select","getBlockTypes","some","i","Error","createInfoNotice","title","speak","error","message","isFatal","fatalAPIErrors","folder_exists","unable_to_connect_to_filesystem","code","setErrorNotice","createErrorNotice","isDismissible","uninstallBlockType","removeInstalledBlockType","item","blockId","isInstalling"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tstore as blocksStore,\n\tunstable__bootstrapServerSideBlockDefinitions, // eslint-disable-line camelcase\n} from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { loadAssets } from './load-assets';\nimport getPluginUrl from './utils/get-plugin-url';\n\n/**\n * Returns an action object used in signalling that the downloadable blocks\n * have been requested and are loading.\n *\n * @param {string} filterValue Search string.\n *\n * @return {Object} Action object.\n */\nexport function fetchDownloadableBlocks( filterValue ) {\n\treturn { type: 'FETCH_DOWNLOADABLE_BLOCKS', filterValue };\n}\n\n/**\n * Returns an action object used in signalling that the downloadable blocks\n * have been updated.\n *\n * @param {Array} downloadableBlocks Downloadable blocks.\n * @param {string} filterValue Search string.\n *\n * @return {Object} Action object.\n */\nexport function receiveDownloadableBlocks( downloadableBlocks, filterValue ) {\n\treturn {\n\t\ttype: 'RECEIVE_DOWNLOADABLE_BLOCKS',\n\t\tdownloadableBlocks,\n\t\tfilterValue,\n\t};\n}\n\n/**\n * Action triggered to install a block plugin.\n *\n * @param {Object} block The block item returned by search.\n *\n * @return {boolean} Whether the block was successfully installed & loaded.\n */\nexport const installBlockType =\n\t( block ) =>\n\tasync ( { registry, dispatch } ) => {\n\t\tconst { id, name } = block;\n\t\tlet success = false;\n\t\tdispatch.clearErrorNotice( id );\n\t\ttry {\n\t\t\tdispatch.setIsInstalling( id, true );\n\n\t\t\t// If we have a wp:plugin link, the plugin is installed but inactive.\n\t\t\tconst url = getPluginUrl( block );\n\t\t\tlet links = {};\n\t\t\tif ( url ) {\n\t\t\t\tawait apiFetch( {\n\t\t\t\t\tmethod: 'PUT',\n\t\t\t\t\turl,\n\t\t\t\t\tdata: { status: 'active' },\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tconst response = await apiFetch( {\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\tpath: 'wp/v2/plugins',\n\t\t\t\t\tdata: { slug: id, status: 'active' },\n\t\t\t\t} );\n\t\t\t\t// Add the `self` link for newly-installed blocks.\n\t\t\t\tlinks = response._links;\n\t\t\t}\n\n\t\t\tdispatch.addInstalledBlockType( {\n\t\t\t\t...block,\n\t\t\t\tlinks: { ...block.links, ...links },\n\t\t\t} );\n\n\t\t\t// Ensures that the block metadata is propagated to the editor when registered on the server.\n\t\t\tconst metadataFields = [\n\t\t\t\t'api_version',\n\t\t\t\t'title',\n\t\t\t\t'category',\n\t\t\t\t'parent',\n\t\t\t\t'icon',\n\t\t\t\t'description',\n\t\t\t\t'keywords',\n\t\t\t\t'attributes',\n\t\t\t\t'provides_context',\n\t\t\t\t'uses_context',\n\t\t\t\t'supports',\n\t\t\t\t'styles',\n\t\t\t\t'example',\n\t\t\t\t'variations',\n\t\t\t];\n\t\t\tawait apiFetch( {\n\t\t\t\tpath: addQueryArgs( `/wp/v2/block-types/${ name }`, {\n\t\t\t\t\t_fields: metadataFields,\n\t\t\t\t} ),\n\t\t\t} )\n\t\t\t\t// Ignore when the block is not registered on the server.\n\t\t\t\t.catch( () => {} )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif ( ! response ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tunstable__bootstrapServerSideBlockDefinitions( {\n\t\t\t\t\t\t[ name ]: Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries( response ).filter( ( [ key ] ) =>\n\t\t\t\t\t\t\t\tmetadataFields.includes( key )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\tawait loadAssets();\n\t\t\tconst registeredBlocks = registry\n\t\t\t\t.select( blocksStore )\n\t\t\t\t.getBlockTypes();\n\t\t\tif ( ! registeredBlocks.some( ( i ) => i.name === name ) ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t__( 'Error registering block. Try reloading the page.' )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tregistry.dispatch( noticesStore ).createInfoNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s is the block title.\n\t\t\t\t\t__( 'Block %s installed and added.' ),\n\t\t\t\t\tblock.title\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tspeak: true,\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t\tsuccess = true;\n\t\t} catch ( error ) {\n\t\t\tlet message = error.message || __( 'An error occurred.' );\n\n\t\t\t// Errors we throw are fatal.\n\t\t\tlet isFatal = error instanceof Error;\n\n\t\t\t// Specific API errors that are fatal.\n\t\t\tconst fatalAPIErrors = {\n\t\t\t\tfolder_exists: __(\n\t\t\t\t\t'This block is already installed. Try reloading the page.'\n\t\t\t\t),\n\t\t\t\tunable_to_connect_to_filesystem: __(\n\t\t\t\t\t'Error installing block. You can reload the page and try again.'\n\t\t\t\t),\n\t\t\t};\n\n\t\t\tif ( fatalAPIErrors[ error.code ] ) {\n\t\t\t\tisFatal = true;\n\t\t\t\tmessage = fatalAPIErrors[ error.code ];\n\t\t\t}\n\n\t\t\tdispatch.setErrorNotice( id, message, isFatal );\n\t\t\tregistry.dispatch( noticesStore ).createErrorNotice( message, {\n\t\t\t\tspeak: true,\n\t\t\t\tisDismissible: true,\n\t\t\t} );\n\t\t}\n\t\tdispatch.setIsInstalling( id, false );\n\t\treturn success;\n\t};\n\n/**\n * Action triggered to uninstall a block plugin.\n *\n * @param {Object} block The blockType object.\n */\nexport const uninstallBlockType =\n\t( block ) =>\n\tasync ( { registry, dispatch } ) => {\n\t\ttry {\n\t\t\tconst url = getPluginUrl( block );\n\t\t\tawait apiFetch( {\n\t\t\t\tmethod: 'PUT',\n\t\t\t\turl,\n\t\t\t\tdata: { status: 'inactive' },\n\t\t\t} );\n\t\t\tawait apiFetch( {\n\t\t\t\tmethod: 'DELETE',\n\t\t\t\turl,\n\t\t\t} );\n\t\t\tdispatch.removeInstalledBlockType( block );\n\t\t} catch ( error ) {\n\t\t\tregistry\n\t\t\t\t.dispatch( noticesStore )\n\t\t\t\t.createErrorNotice(\n\t\t\t\t\terror.message || __( 'An error occurred.' )\n\t\t\t\t);\n\t\t}\n\t};\n\n/**\n * Returns an action object used to add a block type to the \"newly installed\"\n * tracking list.\n *\n * @param {Object} item The block item with the block id and name.\n *\n * @return {Object} Action object.\n */\nexport function addInstalledBlockType( item ) {\n\treturn {\n\t\ttype: 'ADD_INSTALLED_BLOCK_TYPE',\n\t\titem,\n\t};\n}\n\n/**\n * Returns an action object used to remove a block type from the \"newly installed\"\n * tracking list.\n *\n * @param {string} item The block item with the block id and name.\n *\n * @return {Object} Action object.\n */\nexport function removeInstalledBlockType( item ) {\n\treturn {\n\t\ttype: 'REMOVE_INSTALLED_BLOCK_TYPE',\n\t\titem,\n\t};\n}\n\n/**\n * Returns an action object used to indicate install in progress.\n *\n * @param {string} blockId\n * @param {boolean} isInstalling\n *\n * @return {Object} Action object.\n */\nexport function setIsInstalling( blockId, isInstalling ) {\n\treturn {\n\t\ttype: 'SET_INSTALLING_BLOCK',\n\t\tblockId,\n\t\tisInstalling,\n\t};\n}\n\n/**\n * Sets an error notice to be displayed to the user for a given block.\n *\n * @param {string} blockId The ID of the block plugin. eg: my-block\n * @param {string} message The message shown in the notice.\n * @param {boolean} isFatal Whether the user can recover from the error.\n *\n * @return {Object} Action object.\n */\nexport function setErrorNotice( blockId, message, isFatal = false ) {\n\treturn {\n\t\ttype: 'SET_ERROR_NOTICE',\n\t\tblockId,\n\t\tmessage,\n\t\tisFatal,\n\t};\n}\n\n/**\n * Sets the error notice to empty for specific block.\n *\n * @param {string} blockId The ID of the block plugin. eg: my-block\n *\n * @return {Object} Action object.\n */\nexport function clearErrorNotice( blockId ) {\n\treturn {\n\t\ttype: 'CLEAR_ERROR_NOTICE',\n\t\tblockId,\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-directory/src/store/actions.js"],"names":["store","blocksStore","unstable__bootstrapServerSideBlockDefinitions","__","sprintf","apiFetch","noticesStore","addQueryArgs","loadAssets","getPluginUrl","fetchDownloadableBlocks","filterValue","type","receiveDownloadableBlocks","downloadableBlocks","installBlockType","block","registry","dispatch","id","name","success","clearErrorNotice","setIsInstalling","url","links","method","data","status","response","path","slug","_links","addInstalledBlockType","metadataFields","_fields","catch","then","Object","fromEntries","entries","filter","key","includes","registeredBlocks","select","getBlockTypes","some","i","Error","createInfoNotice","title","speak","error","message","isFatal","fatalAPIErrors","folder_exists","unable_to_connect_to_filesystem","code","setErrorNotice","createErrorNotice","isDismissible","uninstallBlockType","removeInstalledBlockType","item","blockId","isInstalling"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tstore as blocksStore,\n\tunstable__bootstrapServerSideBlockDefinitions, // eslint-disable-line camelcase\n} from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { loadAssets } from './load-assets';\nimport getPluginUrl from './utils/get-plugin-url';\n\n/**\n * Returns an action object used in signalling that the downloadable blocks\n * have been requested and are loading.\n *\n * @param {string} filterValue Search string.\n *\n * @return {Object} Action object.\n */\nexport function fetchDownloadableBlocks( filterValue ) {\n\treturn { type: 'FETCH_DOWNLOADABLE_BLOCKS', filterValue };\n}\n\n/**\n * Returns an action object used in signalling that the downloadable blocks\n * have been updated.\n *\n * @param {Array} downloadableBlocks Downloadable blocks.\n * @param {string} filterValue Search string.\n *\n * @return {Object} Action object.\n */\nexport function receiveDownloadableBlocks( downloadableBlocks, filterValue ) {\n\treturn {\n\t\ttype: 'RECEIVE_DOWNLOADABLE_BLOCKS',\n\t\tdownloadableBlocks,\n\t\tfilterValue,\n\t};\n}\n\n/**\n * Action triggered to install a block plugin.\n *\n * @param {Object} block The block item returned by search.\n *\n * @return {boolean} Whether the block was successfully installed & loaded.\n */\nexport const installBlockType =\n\t( block ) =>\n\tasync ( { registry, dispatch } ) => {\n\t\tconst { id, name } = block;\n\t\tlet success = false;\n\t\tdispatch.clearErrorNotice( id );\n\t\ttry {\n\t\t\tdispatch.setIsInstalling( id, true );\n\n\t\t\t// If we have a wp:plugin link, the plugin is installed but inactive.\n\t\t\tconst url = getPluginUrl( block );\n\t\t\tlet links = {};\n\t\t\tif ( url ) {\n\t\t\t\tawait apiFetch( {\n\t\t\t\t\tmethod: 'PUT',\n\t\t\t\t\turl,\n\t\t\t\t\tdata: { status: 'active' },\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tconst response = await apiFetch( {\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\tpath: 'wp/v2/plugins',\n\t\t\t\t\tdata: { slug: id, status: 'active' },\n\t\t\t\t} );\n\t\t\t\t// Add the `self` link for newly-installed blocks.\n\t\t\t\tlinks = response._links;\n\t\t\t}\n\n\t\t\tdispatch.addInstalledBlockType( {\n\t\t\t\t...block,\n\t\t\t\tlinks: { ...block.links, ...links },\n\t\t\t} );\n\n\t\t\t// Ensures that the block metadata is propagated to the editor when registered on the server.\n\t\t\tconst metadataFields = [\n\t\t\t\t'api_version',\n\t\t\t\t'title',\n\t\t\t\t'category',\n\t\t\t\t'parent',\n\t\t\t\t'icon',\n\t\t\t\t'description',\n\t\t\t\t'keywords',\n\t\t\t\t'attributes',\n\t\t\t\t'provides_context',\n\t\t\t\t'uses_context',\n\t\t\t\t'supports',\n\t\t\t\t'styles',\n\t\t\t\t'example',\n\t\t\t\t'variations',\n\t\t\t];\n\t\t\tawait apiFetch( {\n\t\t\t\tpath: addQueryArgs( `/wp/v2/block-types/${ name }`, {\n\t\t\t\t\t_fields: metadataFields,\n\t\t\t\t} ),\n\t\t\t} )\n\t\t\t\t// Ignore when the block is not registered on the server.\n\t\t\t\t.catch( () => {} )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tif ( ! response ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tunstable__bootstrapServerSideBlockDefinitions( {\n\t\t\t\t\t\t[ name ]: Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries( response ).filter( ( [ key ] ) =>\n\t\t\t\t\t\t\t\tmetadataFields.includes( key )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\tawait loadAssets();\n\t\t\tconst registeredBlocks = registry\n\t\t\t\t.select( blocksStore )\n\t\t\t\t.getBlockTypes();\n\t\t\tif ( ! registeredBlocks.some( ( i ) => i.name === name ) ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t__( 'Error registering block. Try reloading the page.' )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tregistry.dispatch( noticesStore ).createInfoNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s is the block title.\n\t\t\t\t\t__( 'Block %s installed and added.' ),\n\t\t\t\t\tblock.title\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tspeak: true,\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t\tsuccess = true;\n\t\t} catch ( error ) {\n\t\t\tlet message = error.message || __( 'An error occurred.' );\n\n\t\t\t// Errors we throw are fatal.\n\t\t\tlet isFatal = error instanceof Error;\n\n\t\t\t// Specific API errors that are fatal.\n\t\t\tconst fatalAPIErrors = {\n\t\t\t\tfolder_exists: __(\n\t\t\t\t\t'This block is already installed. Try reloading the page.'\n\t\t\t\t),\n\t\t\t\tunable_to_connect_to_filesystem: __(\n\t\t\t\t\t'Error installing block. You can reload the page and try again.'\n\t\t\t\t),\n\t\t\t};\n\n\t\t\tif ( fatalAPIErrors[ error.code ] ) {\n\t\t\t\tisFatal = true;\n\t\t\t\tmessage = fatalAPIErrors[ error.code ];\n\t\t\t}\n\n\t\t\tdispatch.setErrorNotice( id, message, isFatal );\n\t\t\tregistry.dispatch( noticesStore ).createErrorNotice( message, {\n\t\t\t\tspeak: true,\n\t\t\t\tisDismissible: true,\n\t\t\t} );\n\t\t}\n\t\tdispatch.setIsInstalling( id, false );\n\t\treturn success;\n\t};\n\n/**\n * Action triggered to uninstall a block plugin.\n *\n * @param {Object} block The blockType object.\n */\nexport const uninstallBlockType =\n\t( block ) =>\n\tasync ( { registry, dispatch } ) => {\n\t\ttry {\n\t\t\tconst url = getPluginUrl( block );\n\t\t\tawait apiFetch( {\n\t\t\t\tmethod: 'PUT',\n\t\t\t\turl,\n\t\t\t\tdata: { status: 'inactive' },\n\t\t\t} );\n\t\t\tawait apiFetch( {\n\t\t\t\tmethod: 'DELETE',\n\t\t\t\turl,\n\t\t\t} );\n\t\t\tdispatch.removeInstalledBlockType( block );\n\t\t} catch ( error ) {\n\t\t\tregistry\n\t\t\t\t.dispatch( noticesStore )\n\t\t\t\t.createErrorNotice(\n\t\t\t\t\terror.message || __( 'An error occurred.' )\n\t\t\t\t);\n\t\t}\n\t};\n\n/**\n * Returns an action object used to add a block type to the \"newly installed\"\n * tracking list.\n *\n * @param {Object} item The block item with the block id and name.\n *\n * @return {Object} Action object.\n */\nexport function addInstalledBlockType( item ) {\n\treturn {\n\t\ttype: 'ADD_INSTALLED_BLOCK_TYPE',\n\t\titem,\n\t};\n}\n\n/**\n * Returns an action object used to remove a block type from the \"newly installed\"\n * tracking list.\n *\n * @param {string} item The block item with the block id and name.\n *\n * @return {Object} Action object.\n */\nexport function removeInstalledBlockType( item ) {\n\treturn {\n\t\ttype: 'REMOVE_INSTALLED_BLOCK_TYPE',\n\t\titem,\n\t};\n}\n\n/**\n * Returns an action object used to indicate install in progress.\n *\n * @param {string} blockId\n * @param {boolean} isInstalling\n *\n * @return {Object} Action object.\n */\nexport function setIsInstalling( blockId, isInstalling ) {\n\treturn {\n\t\ttype: 'SET_INSTALLING_BLOCK',\n\t\tblockId,\n\t\tisInstalling,\n\t};\n}\n\n/**\n * Sets an error notice to be displayed to the user for a given block.\n *\n * @param {string} blockId The ID of the block plugin. eg: my-block\n * @param {string} message The message shown in the notice.\n * @param {boolean} isFatal Whether the user can recover from the error.\n *\n * @return {Object} Action object.\n */\nexport function setErrorNotice( blockId, message, isFatal = false ) {\n\treturn {\n\t\ttype: 'SET_ERROR_NOTICE',\n\t\tblockId,\n\t\tmessage,\n\t\tisFatal,\n\t};\n}\n\n/**\n * Sets the error notice to empty for specific block.\n *\n * @param {string} blockId The ID of the block plugin. eg: my-block\n *\n * @return {Object} Action object.\n */\nexport function clearErrorNotice( blockId ) {\n\treturn {\n\t\ttype: 'CLEAR_ERROR_NOTICE',\n\t\tblockId,\n\t};\n}\n"]}
|
|
@@ -11,10 +11,7 @@ import { combineReducers } from '@wordpress/data';
|
|
|
11
11
|
* @return {Object} Updated state.
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
export const downloadableBlocks =
|
|
15
|
-
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
16
|
-
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
17
|
-
|
|
14
|
+
export const downloadableBlocks = (state = {}, action) => {
|
|
18
15
|
switch (action.type) {
|
|
19
16
|
case 'FETCH_DOWNLOADABLE_BLOCKS':
|
|
20
17
|
return { ...state,
|
|
@@ -43,13 +40,10 @@ export const downloadableBlocks = function () {
|
|
|
43
40
|
* @return {Object} Updated state.
|
|
44
41
|
*/
|
|
45
42
|
|
|
46
|
-
export const blockManagement =
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
};
|
|
51
|
-
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
52
|
-
|
|
43
|
+
export const blockManagement = (state = {
|
|
44
|
+
installedBlockTypes: [],
|
|
45
|
+
isInstalling: {}
|
|
46
|
+
}, action) => {
|
|
53
47
|
switch (action.type) {
|
|
54
48
|
case 'ADD_INSTALLED_BLOCK_TYPE':
|
|
55
49
|
return { ...state,
|
|
@@ -80,10 +74,7 @@ export const blockManagement = function () {
|
|
|
80
74
|
* @return {Object} Updated state.
|
|
81
75
|
*/
|
|
82
76
|
|
|
83
|
-
export const errorNotices =
|
|
84
|
-
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
85
|
-
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
86
|
-
|
|
77
|
+
export const errorNotices = (state = {}, action) => {
|
|
87
78
|
switch (action.type) {
|
|
88
79
|
case 'SET_ERROR_NOTICE':
|
|
89
80
|
return { ...state,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-directory/src/store/reducer.js"],"names":["combineReducers","downloadableBlocks","state","action","type","filterValue","isRequesting","results","blockManagement","installedBlockTypes","isInstalling","item","filter","blockType","name","blockId","errorNotices","message","isFatal","restState"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,eAAT,QAAgC,iBAAhC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,kBAAkB,GAAG,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-directory/src/store/reducer.js"],"names":["combineReducers","downloadableBlocks","state","action","type","filterValue","isRequesting","results","blockManagement","installedBlockTypes","isInstalling","item","filter","blockType","name","blockId","errorNotices","message","isFatal","restState"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,eAAT,QAAgC,iBAAhC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,kBAAkB,GAAG,CAAEC,KAAK,GAAG,EAAV,EAAcC,MAAd,KAA0B;AAC3D,UAASA,MAAM,CAACC,IAAhB;AACC,SAAK,2BAAL;AACC,aAAO,EACN,GAAGF,KADG;AAEN,SAAEC,MAAM,CAACE,WAAT,GAAwB;AACvBC,UAAAA,YAAY,EAAE;AADS;AAFlB,OAAP;;AAMD,SAAK,6BAAL;AACC,aAAO,EACN,GAAGJ,KADG;AAEN,SAAEC,MAAM,CAACE,WAAT,GAAwB;AACvBE,UAAAA,OAAO,EAAEJ,MAAM,CAACF,kBADO;AAEvBK,UAAAA,YAAY,EAAE;AAFS;AAFlB,OAAP;AATF;;AAiBA,SAAOJ,KAAP;AACA,CAnBM;AAqBP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMM,eAAe,GAAG,CAC9BN,KAAK,GAAG;AACPO,EAAAA,mBAAmB,EAAE,EADd;AAEPC,EAAAA,YAAY,EAAE;AAFP,CADsB,EAK9BP,MAL8B,KAM1B;AACJ,UAASA,MAAM,CAACC,IAAhB;AACC,SAAK,0BAAL;AACC,aAAO,EACN,GAAGF,KADG;AAENO,QAAAA,mBAAmB,EAAE,CACpB,GAAGP,KAAK,CAACO,mBADW,EAEpBN,MAAM,CAACQ,IAFa;AAFf,OAAP;;AAOD,SAAK,6BAAL;AACC,aAAO,EACN,GAAGT,KADG;AAENO,QAAAA,mBAAmB,EAAEP,KAAK,CAACO,mBAAN,CAA0BG,MAA1B,CAClBC,SAAF,IAAiBA,SAAS,CAACC,IAAV,KAAmBX,MAAM,CAACQ,IAAP,CAAYG,IAD5B;AAFf,OAAP;;AAMD,SAAK,sBAAL;AACC,aAAO,EACN,GAAGZ,KADG;AAENQ,QAAAA,YAAY,EAAE,EACb,GAAGR,KAAK,CAACQ,YADI;AAEb,WAAEP,MAAM,CAACY,OAAT,GAAoBZ,MAAM,CAACO;AAFd;AAFR,OAAP;AAjBF;;AAyBA,SAAOR,KAAP;AACA,CAjCM;AAmCP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMc,YAAY,GAAG,CAAEd,KAAK,GAAG,EAAV,EAAcC,MAAd,KAA0B;AACrD,UAASA,MAAM,CAACC,IAAhB;AACC,SAAK,kBAAL;AACC,aAAO,EACN,GAAGF,KADG;AAEN,SAAEC,MAAM,CAACY,OAAT,GAAoB;AACnBE,UAAAA,OAAO,EAAEd,MAAM,CAACc,OADG;AAEnBC,UAAAA,OAAO,EAAEf,MAAM,CAACe;AAFG;AAFd,OAAP;;AAOD,SAAK,oBAAL;AACC,YAAM;AAAE,SAAEf,MAAM,CAACY,OAAT,GAAoBA,OAAtB;AAA+B,WAAGI;AAAlC,UAAgDjB,KAAtD;AACA,aAAOiB,SAAP;AAXF;;AAaA,SAAOjB,KAAP;AACA,CAfM;AAiBP,eAAeF,eAAe,CAAE;AAC/BC,EAAAA,kBAD+B;AAE/BO,EAAAA,eAF+B;AAG/BQ,EAAAA;AAH+B,CAAF,CAA9B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { combineReducers } from '@wordpress/data';\n\n/**\n * Reducer returning an array of downloadable blocks.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport const downloadableBlocks = ( state = {}, action ) => {\n\tswitch ( action.type ) {\n\t\tcase 'FETCH_DOWNLOADABLE_BLOCKS':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.filterValue ]: {\n\t\t\t\t\tisRequesting: true,\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'RECEIVE_DOWNLOADABLE_BLOCKS':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.filterValue ]: {\n\t\t\t\t\tresults: action.downloadableBlocks,\n\t\t\t\t\tisRequesting: false,\n\t\t\t\t},\n\t\t\t};\n\t}\n\treturn state;\n};\n\n/**\n * Reducer managing the installation and deletion of blocks.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport const blockManagement = (\n\tstate = {\n\t\tinstalledBlockTypes: [],\n\t\tisInstalling: {},\n\t},\n\taction\n) => {\n\tswitch ( action.type ) {\n\t\tcase 'ADD_INSTALLED_BLOCK_TYPE':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tinstalledBlockTypes: [\n\t\t\t\t\t...state.installedBlockTypes,\n\t\t\t\t\taction.item,\n\t\t\t\t],\n\t\t\t};\n\t\tcase 'REMOVE_INSTALLED_BLOCK_TYPE':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tinstalledBlockTypes: state.installedBlockTypes.filter(\n\t\t\t\t\t( blockType ) => blockType.name !== action.item.name\n\t\t\t\t),\n\t\t\t};\n\t\tcase 'SET_INSTALLING_BLOCK':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisInstalling: {\n\t\t\t\t\t...state.isInstalling,\n\t\t\t\t\t[ action.blockId ]: action.isInstalling,\n\t\t\t\t},\n\t\t\t};\n\t}\n\treturn state;\n};\n\n/**\n * Reducer returning an object of error notices.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport const errorNotices = ( state = {}, action ) => {\n\tswitch ( action.type ) {\n\t\tcase 'SET_ERROR_NOTICE':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ action.blockId ]: {\n\t\t\t\t\tmessage: action.message,\n\t\t\t\t\tisFatal: action.isFatal,\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'CLEAR_ERROR_NOTICE':\n\t\t\tconst { [ action.blockId ]: blockId, ...restState } = state;\n\t\t\treturn restState;\n\t}\n\treturn state;\n};\n\nexport default combineReducers( {\n\tdownloadableBlocks,\n\tblockManagement,\n\terrorNotices,\n} );\n"]}
|
|
@@ -12,11 +12,9 @@ import apiFetch from '@wordpress/api-fetch';
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
import { fetchDownloadableBlocks, receiveDownloadableBlocks } from './actions';
|
|
15
|
-
export const getDownloadableBlocks = filterValue => async
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
} = _ref;
|
|
19
|
-
|
|
15
|
+
export const getDownloadableBlocks = filterValue => async ({
|
|
16
|
+
dispatch
|
|
17
|
+
}) => {
|
|
20
18
|
if (!filterValue) {
|
|
21
19
|
return;
|
|
22
20
|
}
|
|
@@ -26,10 +24,7 @@ export const getDownloadableBlocks = filterValue => async _ref => {
|
|
|
26
24
|
const results = await apiFetch({
|
|
27
25
|
path: `wp/v2/block-directory/search?term=${filterValue}`
|
|
28
26
|
});
|
|
29
|
-
const blocks = results.map(result => Object.fromEntries(Object.entries(result).map(
|
|
30
|
-
let [key, value] = _ref2;
|
|
31
|
-
return [camelCase(key), value];
|
|
32
|
-
})));
|
|
27
|
+
const blocks = results.map(result => Object.fromEntries(Object.entries(result).map(([key, value]) => [camelCase(key), value])));
|
|
33
28
|
dispatch(receiveDownloadableBlocks(blocks, filterValue));
|
|
34
29
|
} catch {}
|
|
35
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-directory/src/store/resolvers.js"],"names":["camelCase","apiFetch","fetchDownloadableBlocks","receiveDownloadableBlocks","getDownloadableBlocks","filterValue","dispatch","results","path","blocks","map","result","Object","fromEntries","entries","key","value"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,aAA1B;AAEA;AACA;AACA;;AACA,OAAOC,QAAP,MAAqB,sBAArB;AAEA;AACA;AACA;;AACA,SAASC,uBAAT,EAAkCC,yBAAlC,QAAmE,WAAnE;AAEA,OAAO,MAAMC,qBAAqB,GAC/BC,WAAF,IACA,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-directory/src/store/resolvers.js"],"names":["camelCase","apiFetch","fetchDownloadableBlocks","receiveDownloadableBlocks","getDownloadableBlocks","filterValue","dispatch","results","path","blocks","map","result","Object","fromEntries","entries","key","value"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,aAA1B;AAEA;AACA;AACA;;AACA,OAAOC,QAAP,MAAqB,sBAArB;AAEA;AACA;AACA;;AACA,SAASC,uBAAT,EAAkCC,yBAAlC,QAAmE,WAAnE;AAEA,OAAO,MAAMC,qBAAqB,GAC/BC,WAAF,IACA,OAAQ;AAAEC,EAAAA;AAAF,CAAR,KAA0B;AACzB,MAAK,CAAED,WAAP,EAAqB;AACpB;AACA;;AAED,MAAI;AACHC,IAAAA,QAAQ,CAAEJ,uBAAuB,CAAEG,WAAF,CAAzB,CAAR;AACA,UAAME,OAAO,GAAG,MAAMN,QAAQ,CAAE;AAC/BO,MAAAA,IAAI,EAAG,qCAAqCH,WAAa;AAD1B,KAAF,CAA9B;AAGA,UAAMI,MAAM,GAAGF,OAAO,CAACG,GAAR,CAAeC,MAAF,IAC3BC,MAAM,CAACC,WAAP,CACCD,MAAM,CAACE,OAAP,CAAgBH,MAAhB,EAAyBD,GAAzB,CAA8B,CAAE,CAAEK,GAAF,EAAOC,KAAP,CAAF,KAAsB,CACnDhB,SAAS,CAAEe,GAAF,CAD0C,EAEnDC,KAFmD,CAApD,CADD,CADc,CAAf;AASAV,IAAAA,QAAQ,CAAEH,yBAAyB,CAAEM,MAAF,EAAUJ,WAAV,CAA3B,CAAR;AACA,GAfD,CAeE,MAAM,CAAE;AACV,CAvBK","sourcesContent":["/**\n * External dependencies\n */\nimport { camelCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\n\n/**\n * Internal dependencies\n */\nimport { fetchDownloadableBlocks, receiveDownloadableBlocks } from './actions';\n\nexport const getDownloadableBlocks =\n\t( filterValue ) =>\n\tasync ( { dispatch } ) => {\n\t\tif ( ! filterValue ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tdispatch( fetchDownloadableBlocks( filterValue ) );\n\t\t\tconst results = await apiFetch( {\n\t\t\t\tpath: `wp/v2/block-directory/search?term=${ filterValue }`,\n\t\t\t} );\n\t\t\tconst blocks = results.map( ( result ) =>\n\t\t\t\tObject.fromEntries(\n\t\t\t\t\tObject.entries( result ).map( ( [ key, value ] ) => [\n\t\t\t\t\t\tcamelCase( key ),\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t] )\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tdispatch( receiveDownloadableBlocks( blocks, filterValue ) );\n\t\t} catch {}\n\t};\n"]}
|