12345678910111213141516171819202122232425262728293031323334353637 |
- import { memo } from 'react'
- import type { NodeProps } from 'reactflow'
- import type { Node } from '../types'
- import {
- NodeComponentMap,
- PanelComponentMap,
- } from './constants'
- import BaseNode from './_base/node'
- import BasePanel from './_base/panel'
- const CustomNode = memo((props: NodeProps) => {
- const nodeData = props.data
- const NodeComponent = NodeComponentMap[nodeData.type]
- return (
- <BaseNode { ...props }>
- <NodeComponent />
- </BaseNode>
- )
- })
- CustomNode.displayName = 'CustomNode'
- export const Panel = memo((props: Node) => {
- const nodeData = props.data
- const PanelComponent = PanelComponentMap[nodeData.type]
- return (
- <BasePanel key={props.id} {...props}>
- <PanelComponent />
- </BasePanel>
- )
- })
- Panel.displayName = 'Panel'
- export default memo(CustomNode)
|