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 (
    <>
      
        
      
    >
  )
}
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 (
      
        
      
    )
  }
  return null
})
Panel.displayName = 'Panel'
export default memo(CustomNode)