import React from 'react';
import NodeControls from '../../common/NodeControls';
import { useEditorStore } from '@/stores/editor-store';
import { useNodesStore } from '@/stores/nodes-store';
import { EventNode } from '@eventcatalog/visualizer';

interface BaseNodeProps extends EventNode {
    children: React.ReactNode;
}

const BaseNode = (props: any) => {
    const { id, selected, type = 'base', children } = props;

    const { setSelectedNode } = useEditorStore();
    const { getNodeConfiguration } = useNodesStore();
    const config = getNodeConfiguration(type);

    const isEditable = !!config?.editor?.schema;

    return (
        <div className="relative">
            {selected && isEditable && <NodeControls onEdit={() => setSelectedNode(id)} />}
            {children}
        </div>
    );
};

export default BaseNode;