Files
+10
-LAN-GitHubtwwucrazywoolajyongWu TianweiQuantumGhostlyzno1quicksandJyonglyzno1zxhlyhYongtao Huangautofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>JoelCopilotnite-kniteHanqing Zhaogemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>Harry
85cda47c70 feat: knowledge pipeline (#25360)
Signed-off-by: -LAN- <[email protected]>
Co-authored-by: twwu <[email protected]>
Co-authored-by: crazywoola <[email protected]>
Co-authored-by: jyong <[email protected]>
Co-authored-by: Wu Tianwei <[email protected]>
Co-authored-by: QuantumGhost <[email protected]>
Co-authored-by: lyzno1 <[email protected]>
Co-authored-by: quicksand <[email protected]>
Co-authored-by: Jyong <[email protected]>
Co-authored-by: lyzno1 <[email protected]>
Co-authored-by: zxhlyh <[email protected]>
Co-authored-by: Yongtao Huang <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Joel <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: nite-knite <[email protected]>
Co-authored-by: Hanqing Zhao <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Harry <[email protected]>
2025-09-18 12:49:10 +08:00

94 lines
1.8 KiB
TypeScript

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
}