import {useSize} from '../../lib/ui' import {useTSDoc} from '../useTSDoc' import {MemberLink} from './MemberLink' import {TreeItemFocus} from './TreeItemFocus' import {TSDocNavExportData} from './TSDocNav' export function GroupedMembersTree(props: { exp: TSDocNavExportData expandSubPackages?: boolean }): React.ReactNode { const {exp, expandSubPackages} = props const {params} = useTSDoc() const fontSize = useSize() return ( <> {exp.reactComponents.length > 0 && ( m.name === params.memberName) } fontSize={fontSize} padding={2} text="Components" weight="semibold" > {exp.reactComponents.map((member) => ( ))} )} {exp.reactHooks.length > 0 && ( m.name === params.memberName) } fontSize={fontSize} padding={2} text="Hooks" weight="semibold" > {exp.reactHooks.map((member) => ( ))} )} {exp.classes.length > 0 && ( m.name === params.memberName) } fontSize={fontSize} padding={2} text="Classes" weight="semibold" > {exp.classes.map((member) => ( ))} )} {exp.functions.length > 0 && ( m.name === params.memberName) } fontSize={fontSize} padding={2} text="Functions" weight="semibold" > {exp.functions.map((member) => ( ))} )} {exp.variables.length > 0 && ( m.name === params.memberName) } fontSize={fontSize} padding={2} text="Variables" weight="semibold" > {exp.variables.map((member) => ( ))} )} {exp.enums.length > 0 && ( m.name === params.memberName) } fontSize={fontSize} padding={2} text="Enumerations" weight="semibold" > {exp.enums.map((member) => ( ))} )} {exp.interfaces.length > 0 && ( m.name === params.memberName) } fontSize={fontSize} padding={2} text="Interfaces" weight="semibold" > {exp.interfaces.map((member) => ( ))} )} {exp.namespaces.length > 0 && ( m.name === params.memberName) } fontSize={fontSize} padding={2} text="Namespaces" weight="semibold" > {exp.namespaces.map((member) => ( ))} )} {exp.typeAliases.length > 0 && ( m.name === params.memberName) } fontSize={fontSize} padding={2} text="Type aliases" weight="semibold" > {exp.typeAliases.map((member) => ( ))} )} ) }