import { useMemo, useState, } from 'react' import { useTranslation } from 'react-i18next' import { TabsEnum, ToolTypeEnum, } from './types' export const useTabs = (noBlocks?: boolean, noSources?: boolean, noTools?: boolean) => { const { t } = useTranslation() const tabs = useMemo(() => { return [ ...( noBlocks ? [] : [ { key: TabsEnum.Blocks, name: t('workflow.tabs.blocks'), }, ] ), ...( noSources ? [] : [ { key: TabsEnum.Sources, name: t('workflow.tabs.sources'), }, ] ), ...( noTools ? [] : [ { key: TabsEnum.Tools, name: t('workflow.tabs.tools'), }, ] ), ] }, [t, noBlocks, noSources, noTools]) const initialTab = useMemo(() => { if (noBlocks) return noTools ? TabsEnum.Sources : TabsEnum.Tools if (noTools) return noBlocks ? TabsEnum.Sources : TabsEnum.Blocks return TabsEnum.Blocks }, [noBlocks, noSources, noTools]) const [activeTab, setActiveTab] = useState(initialTab) return { tabs, activeTab, setActiveTab, } } export const useToolTabs = (isHideMCPTools?: boolean) => { const { t } = useTranslation() const tabs = [ { key: ToolTypeEnum.All, name: t('workflow.tabs.allTool'), }, { key: ToolTypeEnum.BuiltIn, name: t('workflow.tabs.plugin'), }, { key: ToolTypeEnum.Custom, name: t('workflow.tabs.customTool'), }, { key: ToolTypeEnum.Workflow, name: t('workflow.tabs.workflowTool'), }, ] if (!isHideMCPTools) { tabs.push({ key: ToolTypeEnum.MCP, name: 'MCP', }) } return tabs }