import { Box, HStack, VStack } from '@chakra-ui/react'; import type { OrgType } from '@fastgpt/global/support/user/team/org/type'; import Avatar from '@fastgpt/web/components/common/Avatar'; import { useToggle } from 'ahooks'; import { useMemo } from 'react'; import IconButton from './IconButton'; import { getOrgChildrenPath } from '@fastgpt/global/support/user/team/org/constant'; function OrgTreeNode({ org, list, selectedOrg, setSelectedOrg, index = 0 }: { org: OrgType; list: OrgType[]; selectedOrg?: OrgType; setSelectedOrg: (org?: OrgType) => void; index?: number; }) { const children = useMemo( () => list.filter((item) => item.path === getOrgChildrenPath(org)), [org, list] ); const [isExpanded, toggleIsExpanded] = useToggle(index === 0); return ( setSelectedOrg(undefined) } : { onClick: () => setSelectedOrg(org) })} > {index > 0 && ( 0 ? 'visible' : 'hidden'} onClick={(e) => { e.stopPropagation(); toggleIsExpanded.toggle(); }} /> )} setSelectedOrg(org)} cursor={'pointer'} borderRadius={'xs'} > {org.name} {isExpanded && children.length > 0 && children.map((child) => ( ))} ); } function OrgTree({ orgs, selectedOrg, setSelectedOrg }: { orgs: OrgType[]; selectedOrg?: OrgType; setSelectedOrg: (org?: OrgType) => void; }) { const root = orgs[0]; if (!root) return; return ( ); } export default OrgTree;