@wordpress/block-library
Version:
Block library for the WordPress editor.
8 lines (7 loc) • 5.56 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/navigation/edit/overlay-preview.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport { parse } from '@wordpress/blocks';\nimport { Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { BlockPreview } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { createTemplatePartId } from '../../template-part/edit/utils/create-template-part-id';\n\n/**\n * Component that displays a read-only visual preview of the selected overlay template part.\n *\n * @param {Object} props Component props.\n * @param {string} props.overlay The overlay template part slug.\n * @param {string} props.currentTheme The current theme stylesheet name.\n * @return {JSX.Element|null} The overlay preview component or null if no overlay is selected.\n */\nexport default function OverlayPreview( { overlay, currentTheme } ) {\n\tconst templatePartId = useMemo( () => {\n\t\tif ( ! overlay || ! currentTheme ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn createTemplatePartId( currentTheme, overlay );\n\t}, [ currentTheme, overlay ] );\n\n\tconst { content, editedBlocks, hasResolved, recordExists } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! templatePartId ) {\n\t\t\t\treturn {\n\t\t\t\t\tcontent: null,\n\t\t\t\t\teditedBlocks: null,\n\t\t\t\t\thasResolved: true,\n\t\t\t\t\trecordExists: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\n\t\t\tconst editedRecord = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\ttemplatePartId,\n\t\t\t\t{ context: 'view' }\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcontent: editedRecord?.content,\n\t\t\t\teditedBlocks: editedRecord?.blocks,\n\t\t\t\thasResolved: hasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template_part',\n\t\t\t\t\ttemplatePartId,\n\t\t\t\t\t{ context: 'view' },\n\t\t\t\t] ),\n\t\t\t\trecordExists: !! editedRecord,\n\t\t\t};\n\t\t},\n\t\t[ templatePartId ]\n\t);\n\n\tconst blocks = useMemo( () => {\n\t\tif ( ! templatePartId ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( editedBlocks && editedBlocks.length > 0 ) {\n\t\t\treturn editedBlocks;\n\t\t}\n\n\t\tif ( content && typeof content === 'string' ) {\n\t\t\treturn parse( content );\n\t\t}\n\n\t\treturn [];\n\t}, [ templatePartId, editedBlocks, content ] );\n\n\tif ( ! overlay ) {\n\t\treturn null;\n\t}\n\n\tif ( ! hasResolved ) {\n\t\treturn (\n\t\t\t<div className=\"wp-block-navigation__overlay-preview-loading\">\n\t\t\t\t<Spinner />\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Show message if the overlay template part has been deleted.\n\tif ( hasResolved && ! recordExists ) {\n\t\treturn (\n\t\t\t<div className=\"wp-block-navigation__overlay-preview-empty\">\n\t\t\t\t{ __( 'This overlay template part no longer exists.' ) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( ! blocks || blocks.length === 0 ) {\n\t\treturn (\n\t\t\t<div className=\"wp-block-navigation__overlay-preview-empty\">\n\t\t\t\t{ __( 'This overlay is empty.' ) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"wp-block-navigation__overlay-preview\"\n\t\t\taria-label={ __( 'Navigation Overlay template part preview' ) }\n\t\t\trole=\"region\"\n\t\t>\n\t\t\t<BlockPreview.Async\n\t\t\t\tplaceholder={\n\t\t\t\t\t<div className=\"wp-block-navigation__overlay-preview-placeholder\" />\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<BlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tviewportWidth={ 400 }\n\t\t\t\t\tminHeight={ 200 }\n\t\t\t\t/>\n\t\t\t</BlockPreview.Async>\n\t\t</div>\n\t);\n}\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAA0B;AAC1B,uBAAmC;AACnC,qBAAwB;AACxB,oBAAsB;AACtB,wBAAwB;AACxB,kBAAmB;AACnB,0BAA6B;AAK7B,qCAAqC;AA6EjC;AAnEW,SAAR,eAAiC,EAAE,SAAS,aAAa,GAAI;AACnE,QAAM,qBAAiB,wBAAS,MAAM;AACrC,QAAK,CAAE,WAAW,CAAE,cAAe;AAClC,aAAO;AAAA,IACR;AACA,eAAO,qDAAsB,cAAc,OAAQ;AAAA,EACpD,GAAG,CAAE,cAAc,OAAQ,CAAE;AAE7B,QAAM,EAAE,SAAS,cAAc,aAAa,aAAa,QAAI;AAAA,IAC5D,CAAE,WAAY;AACb,UAAK,CAAE,gBAAiB;AACvB,eAAO;AAAA,UACN,SAAS;AAAA,UACT,cAAc;AAAA,UACd,aAAa;AAAA,UACb,cAAc;AAAA,QACf;AAAA,MACD;AAEA,YAAM,EAAE,uBAAuB,sBAAsB,IACpD,OAAQ,iBAAAA,KAAU;AAEnB,YAAM,eAAe;AAAA,QACpB;AAAA,QACA;AAAA,QACA;AAAA,QACA,EAAE,SAAS,OAAO;AAAA,MACnB;AAEA,aAAO;AAAA,QACN,SAAS,cAAc;AAAA,QACvB,cAAc,cAAc;AAAA,QAC5B,aAAa,sBAAuB,yBAAyB;AAAA,UAC5D;AAAA,UACA;AAAA,UACA;AAAA,UACA,EAAE,SAAS,OAAO;AAAA,QACnB,CAAE;AAAA,QACF,cAAc,CAAC,CAAE;AAAA,MAClB;AAAA,IACD;AAAA,IACA,CAAE,cAAe;AAAA,EAClB;AAEA,QAAM,aAAS,wBAAS,MAAM;AAC7B,QAAK,CAAE,gBAAiB;AACvB,aAAO;AAAA,IACR;AAEA,QAAK,gBAAgB,aAAa,SAAS,GAAI;AAC9C,aAAO;AAAA,IACR;AAEA,QAAK,WAAW,OAAO,YAAY,UAAW;AAC7C,iBAAO,qBAAO,OAAQ;AAAA,IACvB;AAEA,WAAO,CAAC;AAAA,EACT,GAAG,CAAE,gBAAgB,cAAc,OAAQ,CAAE;AAE7C,MAAK,CAAE,SAAU;AAChB,WAAO;AAAA,EACR;AAEA,MAAK,CAAE,aAAc;AACpB,WACC,4CAAC,SAAI,WAAU,gDACd,sDAAC,6BAAQ,GACV;AAAA,EAEF;AAGA,MAAK,eAAe,CAAE,cAAe;AACpC,WACC,4CAAC,SAAI,WAAU,8CACZ,8BAAI,8CAA+C,GACtD;AAAA,EAEF;AAEA,MAAK,CAAE,UAAU,OAAO,WAAW,GAAI;AACtC,WACC,4CAAC,SAAI,WAAU,8CACZ,8BAAI,wBAAyB,GAChC;AAAA,EAEF;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAU;AAAA,MACV,kBAAa,gBAAI,0CAA2C;AAAA,MAC5D,MAAK;AAAA,MAEL;AAAA,QAAC,iCAAa;AAAA,QAAb;AAAA,UACA,aACC,4CAAC,SAAI,WAAU,oDAAmD;AAAA,UAGnE;AAAA,YAAC;AAAA;AAAA,cACA;AAAA,cACA,eAAgB;AAAA,cAChB,WAAY;AAAA;AAAA,UACb;AAAA;AAAA,MACD;AAAA;AAAA,EACD;AAEF;",
"names": ["coreStore"]
}