localgreenchain/components/node.tsx
2023-08-09 21:34:23 +00:00

32 lines
763 B
TypeScript

import { DrupalNode } from "next-drupal"
import { NodePage } from "components/node--page"
import { NodeArticle } from "components/node--article"
import { NodeLandingPage } from "components/node--landing-page"
import { NodeProperty } from "components/node--property"
const nodeTypes = {
"node--page": NodePage,
"node--article": NodeArticle,
"node--landing_page": NodeLandingPage,
"node--property_listing": NodeProperty,
}
export interface NodeProps {
node: DrupalNode
viewMode?: string
}
export function Node({ node, viewMode = "full", ...props }: NodeProps) {
if (!node) {
return null
}
const Component = nodeTypes[node.type]
if (!Component) {
return null
}
return <Component node={node} viewMode={viewMode} {...props} />
}