import {APIMember} from '@sanity/tsdoc' import {Box, Card, CardProps, Text} from '@sanity/ui' import {useMemo} from 'react' import {TSDocAppParams} from '../../store' import {UnformattedCode} from '../components/UnformattedCode' import {_fontSize} from '../helpers' import {ReferenceTooltipContent} from '../tooltip' import {TSDocMemberTitle} from './TSDocMemberTitle' import {useMemberLink} from './useMemberLink' import {useSymbol} from './useSymbol' /** @beta */ export function TSDocSymbolPreview( props: Omit & { fontSize?: number member?: APIMember name: string packageName?: string packageScope?: string | null }, ): React.ReactNode { const {fontSize = 2, member, name, packageName, packageScope, ...restProps} = props const {data} = useSymbol({ member, name, packageName, packageScope, }) const symbolMembers = data?.members const content = useMemo(() => { if (!symbolMembers || symbolMembers.length === 0) return null return }, [symbolMembers]) const params: TSDocAppParams | null = useMemo(() => { if (!symbolMembers || symbolMembers.length === 0) return null const member = symbolMembers[0]! return { exportPath: member.export.path, memberName: member.name, packageName: member.package.name, packageScope: member.package.scope || null, releaseVersion: member.release.version, } }, [symbolMembers]) const title = useMemo(() => { if (!symbolMembers || symbolMembers.length === 0) return … const member = symbolMembers[0]! return }, [symbolMembers]) const linkProps = useMemberLink({params}) return ( {title} {content} View full article → ) }