import React, { useMemo } from 'react'; import { Box, Flex } from '@chakra-ui/react'; import type { GridProps } from '@chakra-ui/react'; import MyIcon from '@fastgpt/web/components/common/Icon'; import type { IconNameType } from '@fastgpt/web/components/common/Icon/type.d'; export type Props = Omit & { list: { value: ValueType; label: string; icon: string }[]; value: ValueType; size?: 'sm' | 'md' | 'lg'; onChange: (value: ValueType) => void; }; const SideTabs = ({ list, size = 'md', value, onChange, ...props }: Props) => { const sizeMap = useMemo(() => { switch (size) { case 'sm': return { fontSize: 'xs', inlineP: 1 }; case 'md': return { fontSize: 'sm', inlineP: 2 }; case 'lg': return { fontSize: 'md', inlineP: 3 }; } }, [size]); return ( {list.map((item) => ( { if (value === item.value) return; onChange(item.value); }} > {item.label} ))} ); }; export default SideTabs;