| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | import type { FC } from 'react'import { memo } from 'react'import type { BlockEnum } from '../types'import { useTabs } from './hooks'import type { ToolDefaultValue } from './types'import { TabsEnum } from './types'import Blocks from './blocks'import AllTools from './all-tools'import cn from '@/utils/classnames'export type TabsProps = {  activeTab: TabsEnum  onActiveTabChange: (activeTab: TabsEnum) => void  searchText: string  onSelect: (type: BlockEnum, tool?: ToolDefaultValue) => void  availableBlocksTypes?: BlockEnum[]  noBlocks?: boolean}const Tabs: FC<TabsProps> = ({  activeTab,  onActiveTabChange,  searchText,  onSelect,  availableBlocksTypes,  noBlocks,}) => {  const tabs = useTabs()  return (    <div onClick={e => e.stopPropagation()}>      {        !noBlocks && (          <div className='flex items-center px-3 border-b-[0.5px] border-b-black/5'>            {              tabs.map(tab => (                <div                  key={tab.key}                  className={cn(                    'relative mr-4 h-[34px] text-[13px] leading-[34px] font-medium cursor-pointer',                    activeTab === tab.key                      ? 'text-gray-700 after:absolute after:bottom-0 after:left-0 after:h-0.5 after:w-full after:bg-primary-600'                      : 'text-gray-500',                  )}                  onClick={() => onActiveTabChange(tab.key)}                >                  {tab.name}                </div>              ))            }          </div>        )      }      {        activeTab === TabsEnum.Blocks && !noBlocks && (          <Blocks            searchText={searchText}            onSelect={onSelect}            availableBlocksTypes={availableBlocksTypes}          />        )      }      {        activeTab === TabsEnum.Tools && (          <AllTools            searchText={searchText}            onSelect={onSelect}          />        )      }    </div>  )}export default memo(Tabs)
 |