| 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)
 
 
  |