@wordpress/block-editor
Version:
8 lines (7 loc) • 6.03 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/components/inserter-list-item/index.js"],
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useRef, memo } from '@wordpress/element';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { __experimentalTruncate as Truncate } from '@wordpress/components';\nimport { ENTER, isAppleOS } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport { InserterListboxItem } from '../inserter-listbox';\nimport InserterDraggableBlocks from '../inserter-draggable-blocks';\n\nfunction InserterListItem( {\n\tclassName,\n\tisFirst,\n\titem,\n\tonSelect,\n\tonHover,\n\tisDraggable,\n\t...props\n} ) {\n\tconst isDraggingRef = useRef( false );\n\tconst itemIconStyle = item.icon\n\t\t? {\n\t\t\t\tbackgroundColor: item.icon.background,\n\t\t\t\tcolor: item.icon.foreground,\n\t\t }\n\t\t: {};\n\tconst blocks = useMemo(\n\t\t() => [\n\t\t\tcreateBlock(\n\t\t\t\titem.name,\n\t\t\t\titem.initialAttributes,\n\t\t\t\tcreateBlocksFromInnerBlocksTemplate( item.innerBlocks )\n\t\t\t),\n\t\t],\n\t\t[ item.name, item.initialAttributes, item.innerBlocks ]\n\t);\n\n\tconst isSynced =\n\t\t( isReusableBlock( item ) && item.syncStatus !== 'unsynced' ) ||\n\t\tisTemplatePart( item );\n\n\treturn (\n\t\t<InserterDraggableBlocks\n\t\t\tisEnabled={ isDraggable && ! item.isDisabled }\n\t\t\tblocks={ blocks }\n\t\t\ticon={ item.icon }\n\t\t>\n\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'block-editor-block-types-list__list-item',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-synced': isSynced,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\tonDragStart={ ( event ) => {\n\t\t\t\t\t\tisDraggingRef.current = true;\n\t\t\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\t\t\tonHover( null );\n\t\t\t\t\t\t\tonDragStart( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tonDragEnd={ ( event ) => {\n\t\t\t\t\t\tisDraggingRef.current = false;\n\t\t\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\t\t\tonDragEnd( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<InserterListboxItem\n\t\t\t\t\t\tisFirst={ isFirst }\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-block-types-list__item',\n\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdisabled={ item.isDisabled }\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\tisAppleOS() ? event.metaKey : event.ctrlKey\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\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tconst { keyCode } = event;\n\t\t\t\t\t\t\tif ( keyCode === ENTER ) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\t\tisAppleOS() ? event.metaKey : event.ctrlKey\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tonHover( null );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonMouseEnter={ () => {\n\t\t\t\t\t\t\tif ( isDraggingRef.current ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonHover( item );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonMouseLeave={ () => onHover( null ) }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-block-types-list__item-icon\"\n\t\t\t\t\t\t\tstyle={ itemIconStyle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockIcon icon={ item.icon } showColors />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span className=\"block-editor-block-types-list__item-title\">\n\t\t\t\t\t\t\t<Truncate numberOfLines={ 3 }>\n\t\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</InserterListboxItem>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</InserterDraggableBlocks>\n\t);\n}\n\nexport default memo( InserterListItem );\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,qBAAsC;AACtC,oBAKO;AACP,wBAAmD;AACnD,sBAAiC;AAKjC,wBAAsB;AACtB,8BAAoC;AACpC,uCAAoC;AA8D/B;AA5DL,SAAS,iBAAkB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAAI;AACH,QAAM,oBAAgB,uBAAQ,KAAM;AACpC,QAAM,gBAAgB,KAAK,OACxB;AAAA,IACA,iBAAiB,KAAK,KAAK;AAAA,IAC3B,OAAO,KAAK,KAAK;AAAA,EACjB,IACA,CAAC;AACJ,QAAM,aAAS;AAAA,IACd,MAAM;AAAA,UACL;AAAA,QACC,KAAK;AAAA,QACL,KAAK;AAAA,YACL,mDAAqC,KAAK,WAAY;AAAA,MACvD;AAAA,IACD;AAAA,IACA,CAAE,KAAK,MAAM,KAAK,mBAAmB,KAAK,WAAY;AAAA,EACvD;AAEA,QAAM,eACH,+BAAiB,IAAK,KAAK,KAAK,eAAe,kBACjD,8BAAgB,IAAK;AAEtB,SACC;AAAA,IAAC,iCAAAA;AAAA,IAAA;AAAA,MACA,WAAY,eAAe,CAAE,KAAK;AAAA,MAClC;AAAA,MACA,MAAO,KAAK;AAAA,MAEV,WAAE,EAAE,WAAW,aAAa,UAAU,MACvC;AAAA,QAAC;AAAA;AAAA,UACA,eAAY,YAAAC;AAAA,YACX;AAAA,YACA;AAAA,cACC,aAAa;AAAA,YACd;AAAA,UACD;AAAA,UACA;AAAA,UACA,aAAc,CAAE,UAAW;AAC1B,0BAAc,UAAU;AACxB,gBAAK,aAAc;AAClB,sBAAS,IAAK;AACd,0BAAa,KAAM;AAAA,YACpB;AAAA,UACD;AAAA,UACA,WAAY,CAAE,UAAW;AACxB,0BAAc,UAAU;AACxB,gBAAK,WAAY;AAChB,wBAAW,KAAM;AAAA,YAClB;AAAA,UACD;AAAA,UAEA;AAAA,YAAC;AAAA;AAAA,cACA;AAAA,cACA,eAAY,YAAAA;AAAA,gBACX;AAAA,gBACA;AAAA,cACD;AAAA,cACA,UAAW,KAAK;AAAA,cAChB,SAAU,CAAE,UAAW;AACtB,sBAAM,eAAe;AACrB;AAAA,kBACC;AAAA,sBACA,2BAAU,IAAI,MAAM,UAAU,MAAM;AAAA,gBACrC;AACA,wBAAS,IAAK;AAAA,cACf;AAAA,cACA,WAAY,CAAE,UAAW;AACxB,sBAAM,EAAE,QAAQ,IAAI;AACpB,oBAAK,YAAY,uBAAQ;AACxB,wBAAM,eAAe;AACrB;AAAA,oBACC;AAAA,wBACA,2BAAU,IAAI,MAAM,UAAU,MAAM;AAAA,kBACrC;AACA,0BAAS,IAAK;AAAA,gBACf;AAAA,cACD;AAAA,cACA,cAAe,MAAM;AACpB,oBAAK,cAAc,SAAU;AAC5B;AAAA,gBACD;AACA,wBAAS,IAAK;AAAA,cACf;AAAA,cACA,cAAe,MAAM,QAAS,IAAK;AAAA,cACjC,GAAG;AAAA,cAEL;AAAA;AAAA,kBAAC;AAAA;AAAA,oBACA,WAAU;AAAA,oBACV,OAAQ;AAAA,oBAER,sDAAC,kBAAAC,SAAA,EAAU,MAAO,KAAK,MAAO,YAAU,MAAC;AAAA;AAAA,gBAC1C;AAAA,gBACA,4CAAC,UAAK,WAAU,6CACf,sDAAC,kBAAAC,wBAAA,EAAS,eAAgB,GACvB,eAAK,OACR,GACD;AAAA;AAAA;AAAA,UACD;AAAA;AAAA,MACD;AAAA;AAAA,EAEF;AAEF;AAEA,IAAO,iCAAQ,qBAAM,gBAAiB;",
"names": ["InserterDraggableBlocks", "clsx", "BlockIcon", "Truncate"]
}