| import React from 'react' | |
| import { HeadingLink } from '@/frame/components/article/HeadingLink' | |
| import type { GraphqlT } from './types' | |
| import { Notice } from './Notice' | |
| type Props = { | |
| item: GraphqlT | |
| heading?: string | |
| headingLevel?: number | |
| children?: React.ReactNode | |
| } | |
| export function GraphqlItem({ item, heading, children, headingLevel = 2 }: Props) { | |
| const lowerCaseName = item.name.toLowerCase() | |
| return ( | |
| <div> | |
| <HeadingLink | |
| as={headingLevel === 2 ? 'h2' : headingLevel === 3 ? 'h3' : 'h6'} | |
| slug={lowerCaseName} | |
| > | |
| {item.name} | |
| </HeadingLink> | |
| <div | |
| dangerouslySetInnerHTML={{ | |
| __html: item.description, | |
| }} | |
| /> | |
| <div> | |
| {item.preview && <Notice item={item} variant="preview" />} | |
| {item.isDeprecated && <Notice item={item} variant="deprecation" />} | |
| </div> | |
| <div> | |
| {heading && <h4 dangerouslySetInnerHTML={{ __html: heading }} />} | |
| {children} | |
| </div> | |
| </div> | |
| ) | |
| } | |