UNPKG

@wordpress/block-editor

Version:
8 lines (7 loc) 3.89 kB
{ "version": 3, "sources": ["../../../src/components/inserter/preview-panel.js"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tisReusableBlock,\n\tcreateBlock,\n\tgetBlockFromExample,\n} from '@wordpress/blocks';\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockCard from '../block-card';\nimport BlockPreview from '../block-preview';\n\nfunction InserterPreviewPanel( { item } ) {\n\tconst { name, title, icon, description, initialAttributes, example } = item;\n\tconst isReusable = isReusableBlock( item );\n\tconst blocks = useMemo( () => {\n\t\tif ( ! example ) {\n\t\t\treturn createBlock( name, initialAttributes );\n\t\t}\n\t\treturn getBlockFromExample( name, {\n\t\t\tattributes: {\n\t\t\t\t...example.attributes,\n\t\t\t\t...initialAttributes,\n\t\t\t},\n\t\t\tinnerBlocks: example.innerBlocks,\n\t\t} );\n\t}, [ name, example, initialAttributes ] );\n\t// Same as height of BlockPreviewPanel.\n\tconst previewHeight = 144;\n\tconst sidebarWidth = 280;\n\tconst viewportWidth = example?.viewportWidth ?? 500;\n\tconst scale = sidebarWidth / viewportWidth;\n\tconst minHeight =\n\t\tscale !== 0 && scale < 1 && previewHeight\n\t\t\t? previewHeight / scale\n\t\t\t: previewHeight;\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__preview-container\">\n\t\t\t<div className=\"block-editor-inserter__preview\">\n\t\t\t\t{ isReusable || example ? (\n\t\t\t\t\t<div className=\"block-editor-inserter__preview-content\">\n\t\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t\t\t\tminHeight={ previewHeight }\n\t\t\t\t\t\t\tadditionalStyles={\n\t\t\t\t\t\t\t\t//We want this CSS to be in sync with the one in BlockPreviewPanel.\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tcss: `\n\t\t\t\t\t\t\t\t\t\tbody { \n\t\t\t\t\t\t\t\t\t\t\tpadding: 24px;\n\t\t\t\t\t\t\t\t\t\t\tmin-height:${ Math.round( minHeight ) }px;\n\t\t\t\t\t\t\t\t\t\t\tdisplay:flex;\n\t\t\t\t\t\t\t\t\t\t\talign-items:center;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t.is-root-container { width: 100%; }\n\t\t\t\t\t\t\t\t\t`,\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/>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<div className=\"block-editor-inserter__preview-content-missing\">\n\t\t\t\t\t\t{ __( 'No preview available.' ) }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ ! isReusable && (\n\t\t\t\t<BlockCard\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tdescription={ description }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default InserterPreviewPanel;\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,oBAIO;AACP,qBAAwB;AACxB,kBAAmB;AAKnB,wBAAsB;AACtB,2BAAyB;AA4BvB;AA1BF,SAAS,qBAAsB,EAAE,KAAK,GAAI;AACzC,QAAM,EAAE,MAAM,OAAO,MAAM,aAAa,mBAAmB,QAAQ,IAAI;AACvE,QAAM,iBAAa,+BAAiB,IAAK;AACzC,QAAM,aAAS,wBAAS,MAAM;AAC7B,QAAK,CAAE,SAAU;AAChB,iBAAO,2BAAa,MAAM,iBAAkB;AAAA,IAC7C;AACA,eAAO,mCAAqB,MAAM;AAAA,MACjC,YAAY;AAAA,QACX,GAAG,QAAQ;AAAA,QACX,GAAG;AAAA,MACJ;AAAA,MACA,aAAa,QAAQ;AAAA,IACtB,CAAE;AAAA,EACH,GAAG,CAAE,MAAM,SAAS,iBAAkB,CAAE;AAExC,QAAM,gBAAgB;AACtB,QAAM,eAAe;AACrB,QAAM,gBAAgB,SAAS,iBAAiB;AAChD,QAAM,QAAQ,eAAe;AAC7B,QAAM,YACL,UAAU,KAAK,QAAQ,KAAK,gBACzB,gBAAgB,QAChB;AAEJ,SACC,6CAAC,SAAI,WAAU,4CACd;AAAA,gDAAC,SAAI,WAAU,kCACZ,wBAAc,UACf,4CAAC,SAAI,WAAU,0CACd;AAAA,MAAC,qBAAAA;AAAA,MAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAY;AAAA,QACZ;AAAA;AAAA,UAEC;AAAA,YACC;AAAA,cACC,KAAK;AAAA;AAAA;AAAA,wBAGU,KAAK,MAAO,SAAU,CAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMxC;AAAA,UACD;AAAA;AAAA;AAAA,IAEF,GACD,IAEA,4CAAC,SAAI,WAAU,kDACZ,8BAAI,uBAAwB,GAC/B,GAEF;AAAA,IACE,CAAE,cACH;AAAA,MAAC,kBAAAC;AAAA,MAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACD;AAAA,KAEF;AAEF;AAEA,IAAO,wBAAQ;", "names": ["BlockPreview", "BlockCard"] }