UNPKG

@wordpress/block-library

Version:
8 lines (7 loc) 4.88 kB
{ "version": 3, "sources": ["../../../src/template-part/edit/selection-modal.js"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useDispatch } from '@wordpress/data';\nimport { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';\nimport {\n\tSearchControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n} from './utils/hooks';\nimport { mapTemplatePartToBlockPattern } from './utils/map-template-part-to-block-pattern';\nimport { searchPatterns } from '../../utils/search-patterns';\n\nexport default function TemplatePartSelectionModal( {\n\tsetAttributes,\n\tonClose,\n\ttemplatePartId = null,\n\tarea,\n\tclientId,\n} ) {\n\tconst [ searchValue, setSearchValue ] = useState( '' );\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\n\t// We can map template parts to block patters to reuse the BlockPatternsList UI\n\tconst filteredTemplateParts = useMemo( () => {\n\t\tconst partsAsPatterns = templateParts.map( ( templatePart ) =>\n\t\t\tmapTemplatePartToBlockPattern( templatePart )\n\t\t);\n\n\t\treturn searchPatterns( partsAsPatterns, searchValue );\n\t}, [ templateParts, searchValue ] );\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\tconst filteredBlockPatterns = useMemo( () => {\n\t\treturn searchPatterns( blockPatterns, searchValue );\n\t}, [ blockPatterns, searchValue ] );\n\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst onTemplatePartSelect = ( templatePart ) => {\n\t\tsetAttributes( {\n\t\t\tslug: templatePart.slug,\n\t\t\ttheme: templatePart.theme,\n\t\t\tarea: undefined,\n\t\t} );\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: template part title. */\n\t\t\t\t__( 'Template Part \"%s\" inserted.' ),\n\t\t\t\ttemplatePart.title?.rendered || templatePart.slug\n\t\t\t),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t\tonClose();\n\t};\n\n\tconst hasTemplateParts = !! filteredTemplateParts.length;\n\tconst hasBlockPatterns = !! filteredBlockPatterns.length;\n\n\treturn (\n\t\t<div className=\"block-library-template-part__selection-content\">\n\t\t\t<div className=\"block-library-template-part__selection-search\">\n\t\t\t\t<SearchControl\n\t\t\t\t\tonChange={ setSearchValue }\n\t\t\t\t\tvalue={ searchValue }\n\t\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ hasTemplateParts && (\n\t\t\t\t<div>\n\t\t\t\t\t<h2>{ __( 'Existing template parts' ) }</h2>\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tblockPatterns={ filteredTemplateParts }\n\t\t\t\t\t\tonClickPattern={ ( pattern ) => {\n\t\t\t\t\t\t\tonTemplatePartSelect( pattern.templatePart );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! hasTemplateParts && ! hasBlockPatterns && (\n\t\t\t\t<HStack alignment=\"center\">\n\t\t\t\t\t<p>{ __( 'No results found.' ) }</p>\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"], "mappings": ";AAGA,SAAS,SAAS,gBAAgB;AAClC,SAAS,IAAI,eAAe;AAC5B,SAAS,SAAS,oBAAoB;AACtC,SAAS,mBAAmB;AAC5B,SAAS,mCAAmC,yBAAyB;AACrE;AAAA,EACC;AAAA,EACA,wBAAwB;AAAA,OAClB;AAKP;AAAA,EACC;AAAA,EACA;AAAA,OACM;AACP,SAAS,qCAAqC;AAC9C,SAAS,sBAAsB;AAuD3B,cAQA,YARA;AArDW,SAAR,2BAA6C;AAAA,EACnD;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA;AACD,GAAI;AACH,QAAM,CAAE,aAAa,cAAe,IAAI,SAAU,EAAG;AACrD,QAAM,EAAE,cAAc,IAAI;AAAA,IACzB;AAAA,IACA;AAAA,EACD;AAGA,QAAM,wBAAwB,QAAS,MAAM;AAC5C,UAAM,kBAAkB,cAAc;AAAA,MAAK,CAAE,iBAC5C,8BAA+B,YAAa;AAAA,IAC7C;AAEA,WAAO,eAAgB,iBAAiB,WAAY;AAAA,EACrD,GAAG,CAAE,eAAe,WAAY,CAAE;AAClC,QAAM,gBAAgB,4BAA6B,MAAM,QAAS;AAClE,QAAM,wBAAwB,QAAS,MAAM;AAC5C,WAAO,eAAgB,eAAe,WAAY;AAAA,EACnD,GAAG,CAAE,eAAe,WAAY,CAAE;AAElC,QAAM,EAAE,oBAAoB,IAAI,YAAa,YAAa;AAE1D,QAAM,uBAAuB,CAAE,iBAAkB;AAChD,kBAAe;AAAA,MACd,MAAM,aAAa;AAAA,MACnB,OAAO,aAAa;AAAA,MACpB,MAAM;AAAA,IACP,CAAE;AACF;AAAA,MACC;AAAA;AAAA,QAEC,GAAI,8BAA+B;AAAA,QACnC,aAAa,OAAO,YAAY,aAAa;AAAA,MAC9C;AAAA,MACA;AAAA,QACC,MAAM;AAAA,MACP;AAAA,IACD;AACA,YAAQ;AAAA,EACT;AAEA,QAAM,mBAAmB,CAAC,CAAE,sBAAsB;AAClD,QAAM,mBAAmB,CAAC,CAAE,sBAAsB;AAElD,SACC,qBAAC,SAAI,WAAU,kDACd;AAAA,wBAAC,SAAI,WAAU,iDACd;AAAA,MAAC;AAAA;AAAA,QACA,UAAW;AAAA,QACX,OAAQ;AAAA,QACR,OAAQ,GAAI,QAAS;AAAA,QACrB,aAAc,GAAI,QAAS;AAAA;AAAA,IAC5B,GACD;AAAA,IACE,oBACD,qBAAC,SACA;AAAA,0BAAC,QAAK,aAAI,yBAA0B,GAAG;AAAA,MACvC;AAAA,QAAC;AAAA;AAAA,UACA,eAAgB;AAAA,UAChB,gBAAiB,CAAE,YAAa;AAC/B,iCAAsB,QAAQ,YAAa;AAAA,UAC5C;AAAA;AAAA,MACD;AAAA,OACD;AAAA,IAGC,CAAE,oBAAoB,CAAE,oBACzB,oBAAC,UAAO,WAAU,UACjB,8BAAC,OAAI,aAAI,mBAAoB,GAAG,GACjC;AAAA,KAEF;AAEF;", "names": [] }