@wordpress/block-library
Version:
Block library for the WordPress editor.
8 lines (7 loc) • 2.6 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../src/tabs/tab-toolbar-controls.js"],
"sourcesContent": ["import { __ } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { ToolbarGroup, ToolbarButton } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport useTabActions from './use-tab-actions';\n\n/**\n * \"Add tab\" and \"Remove tab\" buttons in the block toolbar for the tabs block.\n * Inserts or removes a core/tab-panel. The tab-list items attribute is kept\n * in sync automatically via useTabListItemsSync.\n *\n * @param {Object} props\n * @param {string} props.tabsClientId The client ID of the parent tabs block.\n * @return {React.JSX.Element} The toolbar control element.\n */\nexport default function TabToolbarControls( { tabsClientId } ) {\n\tconst { insertTab, removeTab } = useTabActions( tabsClientId );\n\tconst isRemoveDisabled = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! tabsClientId ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tconst tabPanels = select( blockEditorStore )\n\t\t\t\t.getBlocks( tabsClientId )\n\t\t\t\t.find( ( block ) => block.name === 'core/tab-panels' );\n\t\t\treturn ( tabPanels?.innerBlocks.length ?? 0 ) <= 1;\n\t\t},\n\t\t[ tabsClientId ]\n\t);\n\n\treturn (\n\t\t<BlockControls group=\"other\">\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\tonClick={ () => insertTab() }\n\t\t\t\t\ttext={ __( 'Add tab' ) }\n\t\t\t\t/>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\tonClick={ () => removeTab() }\n\t\t\t\t\ttext={ __( 'Remove tab' ) }\n\t\t\t\t\tdisabled={ isRemoveDisabled }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n}\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAmB;AACnB,0BAGO;AACP,wBAA4C;AAC5C,kBAA0B;AAC1B,6BAA0B;AA4BvB;AAjBY,SAAR,mBAAqC,EAAE,aAAa,GAAI;AAC9D,QAAM,EAAE,WAAW,UAAU,QAAI,uBAAAA,SAAe,YAAa;AAC7D,QAAM,uBAAmB;AAAA,IACxB,CAAE,WAAY;AACb,UAAK,CAAE,cAAe;AACrB,eAAO;AAAA,MACR;AACA,YAAM,YAAY,OAAQ,oBAAAC,KAAiB,EACzC,UAAW,YAAa,EACxB,KAAM,CAAE,UAAW,MAAM,SAAS,iBAAkB;AACtD,cAAS,WAAW,YAAY,UAAU,MAAO;AAAA,IAClD;AAAA,IACA,CAAE,YAAa;AAAA,EAChB;AAEA,SACC,4CAAC,qCAAc,OAAM,SACpB,uDAAC,kCACA;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,WAAU;AAAA,QACV,SAAU,MAAM,UAAU;AAAA,QAC1B,UAAO,gBAAI,SAAU;AAAA;AAAA,IACtB;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACA,WAAU;AAAA,QACV,SAAU,MAAM,UAAU;AAAA,QAC1B,UAAO,gBAAI,YAAa;AAAA,QACxB,UAAW;AAAA;AAAA,IACZ;AAAA,KACD,GACD;AAEF;",
"names": ["useTabActions", "blockEditorStore"]
}