import React from 'react'; import { Navigate, useParams } from 'react-router'; import BetaNotice from '../components/BetaNotice.js'; import DeprecationNotice from '../components/DeprecationNotice.js'; import OverviewTable from '../components/overviewTable/OverviewTable.js'; import SymbolHeader from '../components/SymbolHeader.js'; import Card from '../containers/Card.js'; import PageContent from '../containers/PageContent.js'; import type { PackageContainerRouteParams } from '../containers/ReferencePackageContainer.js'; import type { EnumMemberReferenceNode, EnumReferenceNode } from '../reference/index.js'; import { getPageType, getTag, hasTag } from '../tools/CodeTools.js'; import MarkdownParser from '../tools/markdown/MarkdownParser.js'; import { defaultNodeSort } from '../tools/NodeTools.js'; import { filterChildrenByMember, findSymbolByMember } from '../tools/ReferenceTools.js'; import { getPackagePath } from '../tools/StringTools.js'; interface EnumPageRouteParams extends PackageContainerRouteParams { name: string; } const EnumPage: React.FC = () => { const { name, packageName } = useParams() as unknown as EnumPageRouteParams; const symbolDef = findSymbolByMember('name', name, packageName); if (!symbolDef) { // TODO return null; } const symbol = symbolDef.symbol as EnumReferenceNode; const correctPageType = getPageType(symbol); if (correctPageType !== 'enums') { return ; } const members: EnumMemberReferenceNode[] = filterChildrenByMember(symbol, 'kind', 'enumMember'); return ( <> {hasTag(symbol, 'deprecated') && ( )} {hasTag(symbol, 'beta') && } {symbol.comment?.text && } {members.length ? ( <> Overview {members.length === 1 ? 'Member' : 'Members'} {members.sort(defaultNodeSort).map(member => ( {member.name} {member.comment?.shortText ? {member.comment.shortText} : null} ))} > ) : null} > ); }; export default EnumPage;
{member.comment.shortText}