2025-05-07 11:30:13 +08:00
|
|
|
import { useCallback, useMemo, useState } from 'react'
|
2025-05-03 17:16:00 +08:00
|
|
|
import Tab from './tab'
|
|
|
|
import BuiltInPipelineList from './built-in-pipeline-list'
|
|
|
|
import CustomizedList from './customized-list'
|
2025-05-07 11:30:13 +08:00
|
|
|
import { useTranslation } from 'react-i18next'
|
2025-05-03 17:16:00 +08:00
|
|
|
|
|
|
|
const List = () => {
|
2025-05-07 11:30:13 +08:00
|
|
|
const { t } = useTranslation()
|
2025-05-03 17:16:00 +08:00
|
|
|
const [activeTab, setActiveTab] = useState('built-in')
|
|
|
|
|
2025-05-07 11:30:13 +08:00
|
|
|
const options = useMemo(() => {
|
|
|
|
return [
|
|
|
|
{ value: 'built-in', label: t('datasetPipeline.tabs.builtInPipeline') },
|
|
|
|
{ value: 'customized', label: t('datasetPipeline.tabs.customized') },
|
|
|
|
]
|
|
|
|
}, [t])
|
|
|
|
|
2025-05-03 17:16:00 +08:00
|
|
|
const handleTabChange = useCallback((tab: string) => {
|
|
|
|
setActiveTab(tab)
|
|
|
|
}, [])
|
|
|
|
|
|
|
|
return (
|
2025-07-01 17:46:41 +08:00
|
|
|
<div className='flex grow flex-col overflow-hidden'>
|
2025-05-03 17:16:00 +08:00
|
|
|
<Tab
|
|
|
|
activeTab={activeTab}
|
|
|
|
handleTabChange={handleTabChange}
|
2025-05-07 11:30:13 +08:00
|
|
|
options={options}
|
2025-05-03 17:16:00 +08:00
|
|
|
/>
|
2025-07-01 17:46:41 +08:00
|
|
|
<div className='grow overflow-y-auto px-16'>
|
|
|
|
{
|
|
|
|
activeTab === 'built-in' && <BuiltInPipelineList />
|
|
|
|
}
|
|
|
|
{
|
|
|
|
activeTab === 'customized' && <CustomizedList />
|
|
|
|
}
|
|
|
|
</div>
|
2025-05-03 17:16:00 +08:00
|
|
|
</div>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
export default List
|