import { NodeTreeContext, provide, useNodeTree } from '@kubb/fabric-core' import type { FabricReactElement, FabricReactNode, JSDoc, Key } from '../types.ts' import { createJSDoc } from '../utils/createJSDoc.ts' export type ConstProps = { key?: Key /** * Name of the const */ name: string /** * Does this type need to be exported. */ export?: boolean /** * Type to make the const being typed */ type?: string /** * Options for JSdocs. */ JSDoc?: JSDoc /** * Use of `const` assertions */ asConst?: boolean /** * Children nodes. */ children?: FabricReactNode } /** * Generates a TypeScript constant declaration. */ export function Const({ children, ...props }: ConstProps): FabricReactElement { const { name, export: canExport, type, JSDoc, asConst } = props const nodeTree = useNodeTree() if (nodeTree) { const childTree = nodeTree.addChild({ type: 'Const', props }) provide(NodeTreeContext, childTree) } return ( <> {JSDoc?.comments && ( <> {createJSDoc({ comments: JSDoc?.comments })}
)} {children} ) } Const.displayName = 'Const'