| | |
| | | import type { FC } from 'react' |
| | | import { memo } from 'react' |
| | | import { useAllBuiltInTools, useAllCustomTools, useAllWorkflowTools } from '@/service/use-tools' |
| | | import type { BlockEnum } from '../types' |
| | | import { useTabs } from './hooks' |
| | | import type { ToolDefaultValue } from './types' |
| | |
| | | activeTab: TabsEnum |
| | | onActiveTabChange: (activeTab: TabsEnum) => void |
| | | searchText: string |
| | | tags: string[] |
| | | onSelect: (type: BlockEnum, tool?: ToolDefaultValue) => void |
| | | availableBlocksTypes?: BlockEnum[] |
| | | noBlocks?: boolean |
| | |
| | | const Tabs: FC<TabsProps> = ({ |
| | | activeTab, |
| | | onActiveTabChange, |
| | | tags, |
| | | searchText, |
| | | onSelect, |
| | | availableBlocksTypes, |
| | | noBlocks, |
| | | }) => { |
| | | const tabs = useTabs() |
| | | const { data: buildInTools } = useAllBuiltInTools() |
| | | const { data: customTools } = useAllCustomTools() |
| | | const { data: workflowTools } = useAllWorkflowTools() |
| | | |
| | | return ( |
| | | <div onClick={e => e.stopPropagation()}> |
| | | { |
| | | !noBlocks && ( |
| | | <div className='flex items-center border-b-[0.5px] border-divider-subtle px-3'> |
| | | <div className='flex items-center px-3 border-b-[0.5px] border-divider-subtle'> |
| | | { |
| | | tabs.map(tab => ( |
| | | <div |
| | | key={tab.key} |
| | | className={cn( |
| | | 'system-sm-medium relative mr-4 cursor-pointer pb-2 pt-1', |
| | | 'relative mr-4 pt-1 pb-2 system-sm-medium cursor-pointer', |
| | | activeTab === tab.key |
| | | ? 'text-text-primary after:absolute after:bottom-0 after:left-0 after:h-0.5 after:w-full after:bg-util-colors-blue-brand-blue-brand-600' |
| | | : 'text-text-tertiary', |
| | |
| | | { |
| | | activeTab === TabsEnum.Tools && ( |
| | | <AllTools |
| | | className='w-[315px]' |
| | | searchText={searchText} |
| | | onSelect={onSelect} |
| | | tags={tags} |
| | | buildInTools={buildInTools || []} |
| | | customTools={customTools || []} |
| | | workflowTools={workflowTools || []} |
| | | /> |
| | | ) |
| | | } |