| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | 
							- import {
 -   memo,
 -   useMemo,
 - } from 'react'
 - import type { NodeProps } from 'reactflow'
 - import type { Node } from '../types'
 - import { CUSTOM_NODE } from '../constants'
 - import {
 -   NodeComponentMap,
 -   PanelComponentMap,
 - } from './constants'
 - import BaseNode from './_base/node'
 - import BasePanel from './_base/panel'
 - 
 - const CustomNode = (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 nodeClass = props.type
 -   const nodeData = props.data
 -   const PanelComponent = useMemo(() => {
 -     if (nodeClass === CUSTOM_NODE)
 -       return PanelComponentMap[nodeData.type]
 - 
 -     return () => null
 -   }, [nodeClass, nodeData.type])
 - 
 -   if (nodeClass === CUSTOM_NODE) {
 -     return (
 -       <BasePanel key={props.id} {...props}>
 -         <PanelComponent />
 -       </BasePanel>
 -     )
 -   }
 - 
 -   return null
 - })
 - 
 - Panel.displayName = 'Panel'
 - 
 - export default memo(CustomNode)
 
 
  |