import { Fragment, type ReactNode } from "react"; import { TermDetail } from "@/components/public/term-detail"; import type { CatalogTextNode } from "@/lib/catalog/lunaris"; function renderNodes(nodes: CatalogTextNode[]): ReactNode { return nodes.map((node, index) => { if (node.type === "text") return {node.value}; const children = renderNodes(node.children); if (node.type === "color") { return {children}; } if (!node.detail) return {children}; return ( ); }); } export function LunarisText({ nodes, fallback, }: { nodes?: CatalogTextNode[]; fallback: string; }) { return <>{nodes?.length ? renderNodes(nodes) : fallback}; }