UNPKG

@wordpress/block-library

Version:
8 lines (7 loc) 2.56 kB
{ "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,SAAS,UAAU;AACnB;AAAA,EACC;AAAA,EACA,SAAS;AAAA,OACH;AACP,SAAS,cAAc,qBAAqB;AAC5C,SAAS,iBAAiB;AAC1B,OAAO,mBAAmB;AA4BvB,SACC,KADD;AAjBY,SAAR,mBAAqC,EAAE,aAAa,GAAI;AAC9D,QAAM,EAAE,WAAW,UAAU,IAAI,cAAe,YAAa;AAC7D,QAAM,mBAAmB;AAAA,IACxB,CAAE,WAAY;AACb,UAAK,CAAE,cAAe;AACrB,eAAO;AAAA,MACR;AACA,YAAM,YAAY,OAAQ,gBAAiB,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,oBAAC,iBAAc,OAAM,SACpB,+BAAC,gBACA;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,WAAU;AAAA,QACV,SAAU,MAAM,UAAU;AAAA,QAC1B,MAAO,GAAI,SAAU;AAAA;AAAA,IACtB;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACA,WAAU;AAAA,QACV,SAAU,MAAM,UAAU;AAAA,QAC1B,MAAO,GAAI,YAAa;AAAA,QACxB,UAAW;AAAA;AAAA,IACZ;AAAA,KACD,GACD;AAEF;", "names": [] }