@wordpress/block-editor
Version:
8 lines (7 loc) • 5.67 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/components/block-switcher/pattern-transformations-menu.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useInstanceId, useViewportMatch } from '@wordpress/compose';\nimport { chevronRight } from '@wordpress/icons';\n\nimport {\n\tComposite,\n\tMenuGroup,\n\tMenuItem,\n\tPopover,\n\tVisuallyHidden,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockPreview from '../block-preview';\nimport useTransformedPatterns from './use-transformed-patterns';\n\nfunction PatternTransformationsMenu( {\n\tblocks,\n\tpatterns: statePatterns,\n\tonSelect,\n} ) {\n\tconst [ showTransforms, setShowTransforms ] = useState( false );\n\tconst patterns = useTransformedPatterns( statePatterns, blocks );\n\n\tif ( ! patterns.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<MenuGroup className=\"block-editor-block-switcher__pattern__transforms__menugroup\">\n\t\t\t{ showTransforms && (\n\t\t\t\t<PreviewPatternsPopover\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<MenuItem\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tsetShowTransforms( ! showTransforms );\n\t\t\t\t} }\n\t\t\t\ticon={ chevronRight }\n\t\t\t>\n\t\t\t\t{ __( 'Patterns' ) }\n\t\t\t</MenuItem>\n\t\t</MenuGroup>\n\t);\n}\n\nfunction PreviewPatternsPopover( { patterns, onSelect } ) {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__popover-preview-container\">\n\t\t\t<Popover\n\t\t\t\tclassName=\"block-editor-block-switcher__popover-preview\"\n\t\t\t\tplacement={ isMobile ? 'bottom' : 'right-start' }\n\t\t\t\toffset={ 16 }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-switcher__preview is-pattern-list-preview\">\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</Popover>\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternsList( { patterns, onSelect } ) {\n\treturn (\n\t\t<Composite\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-block-switcher__preview-patterns-container\"\n\t\t\taria-label={ __( 'Patterns list' ) }\n\t\t>\n\t\t\t{ patterns.map( ( pattern ) => (\n\t\t\t\t<BlockPattern\n\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n\nfunction BlockPattern( { pattern, onSelect } ) {\n\t// TODO check pattern/preview width...\n\tconst baseClassName =\n\t\t'block-editor-block-switcher__preview-patterns-container';\n\tconst descriptionId = useInstanceId(\n\t\tBlockPattern,\n\t\t`${ baseClassName }-list__item-description`\n\t);\n\treturn (\n\t\t<div className={ `${ baseClassName }-list__list-item` }>\n\t\t\t<Composite.Item\n\t\t\t\trender={\n\t\t\t\t\t<div\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\taria-label={ pattern.title }\n\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\tpattern.description ? descriptionId : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclassName={ `${ baseClassName }-list__item` }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tonClick={ () => onSelect( pattern.transformedBlocks ) }\n\t\t\t>\n\t\t\t\t<BlockPreview\n\t\t\t\t\tblocks={ pattern.transformedBlocks }\n\t\t\t\t\tviewportWidth={ pattern.viewportWidth || 500 }\n\t\t\t\t/>\n\t\t\t\t<div className={ `${ baseClassName }-list__item-title` }>\n\t\t\t\t\t{ pattern.title }\n\t\t\t\t</div>\n\t\t\t</Composite.Item>\n\t\t\t{ !! pattern.description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ pattern.description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default PatternTransformationsMenu;\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,qBAAyB;AACzB,qBAAgD;AAChD,mBAA6B;AAE7B,wBAMO;AAKP,2BAAyB;AACzB,sCAAmC;AAejC;AAbF,SAAS,2BAA4B;AAAA,EACpC;AAAA,EACA,UAAU;AAAA,EACV;AACD,GAAI;AACH,QAAM,CAAE,gBAAgB,iBAAkB,QAAI,yBAAU,KAAM;AAC9D,QAAM,eAAW,gCAAAA,SAAwB,eAAe,MAAO;AAE/D,MAAK,CAAE,SAAS,QAAS;AACxB,WAAO;AAAA,EACR;AAEA,SACC,6CAAC,+BAAU,WAAU,+DAClB;AAAA,sBACD;AAAA,MAAC;AAAA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACD;AAAA,IAED;AAAA,MAAC;AAAA;AAAA,QACA,SAAU,CAAE,UAAW;AACtB,gBAAM,eAAe;AACrB,4BAAmB,CAAE,cAAe;AAAA,QACrC;AAAA,QACA,MAAO;AAAA,QAEL,8BAAI,UAAW;AAAA;AAAA,IAClB;AAAA,KACD;AAEF;AAEA,SAAS,uBAAwB,EAAE,UAAU,SAAS,GAAI;AACzD,QAAM,eAAW,iCAAkB,UAAU,GAAI;AAEjD,SACC,4CAAC,SAAI,WAAU,0DACd;AAAA,IAAC;AAAA;AAAA,MACA,WAAU;AAAA,MACV,WAAY,WAAW,WAAW;AAAA,MAClC,QAAS;AAAA,MAET,sDAAC,SAAI,WAAU,gEACd;AAAA,QAAC;AAAA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACD,GACD;AAAA;AAAA,EACD,GACD;AAEF;AAEA,SAAS,kBAAmB,EAAE,UAAU,SAAS,GAAI;AACpD,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAK;AAAA,MACL,WAAU;AAAA,MACV,kBAAa,gBAAI,eAAgB;AAAA,MAE/B,mBAAS,IAAK,CAAE,YACjB;AAAA,QAAC;AAAA;AAAA,UAEA;AAAA,UACA;AAAA;AAAA,QAFM,QAAQ;AAAA,MAGf,CACC;AAAA;AAAA,EACH;AAEF;AAEA,SAAS,aAAc,EAAE,SAAS,SAAS,GAAI;AAE9C,QAAM,gBACL;AACD,QAAM,oBAAgB;AAAA,IACrB;AAAA,IACA,GAAI,aAAc;AAAA,EACnB;AACA,SACC,6CAAC,SAAI,WAAY,GAAI,aAAc,oBAClC;AAAA;AAAA,MAAC,4BAAU;AAAA,MAAV;AAAA,QACA,QACC;AAAA,UAAC;AAAA;AAAA,YACA,MAAK;AAAA,YACL,cAAa,QAAQ;AAAA,YACrB,oBACC,QAAQ,cAAc,gBAAgB;AAAA,YAEvC,WAAY,GAAI,aAAc;AAAA;AAAA,QAC/B;AAAA,QAED,SAAU,MAAM,SAAU,QAAQ,iBAAkB;AAAA,QAEpD;AAAA;AAAA,YAAC,qBAAAC;AAAA,YAAA;AAAA,cACA,QAAS,QAAQ;AAAA,cACjB,eAAgB,QAAQ,iBAAiB;AAAA;AAAA,UAC1C;AAAA,UACA,4CAAC,SAAI,WAAY,GAAI,aAAc,qBAChC,kBAAQ,OACX;AAAA;AAAA;AAAA,IACD;AAAA,IACE,CAAC,CAAE,QAAQ,eACZ,4CAAC,oCAAe,IAAK,eAClB,kBAAQ,aACX;AAAA,KAEF;AAEF;AAEA,IAAO,uCAAQ;",
"names": ["useTransformedPatterns", "BlockPreview"]
}