import { useMemo } from "react"; import WorkflowElement from "@/components/workflow/WorkflowElement"; import { WorkflowNodeType, newNode } from "@/domain/workflow"; import { useZustandShallowSelector } from "@/hooks"; import { useWorkflowStore } from "@/stores/workflow"; export type WorkflowElementsProps = { className?: string; style?: React.CSSProperties; disabled?: boolean; }; const WorkflowElements = ({ className, style, disabled }: WorkflowElementsProps) => { const { workflow } = useWorkflowStore(useZustandShallowSelector(["workflow"])); const elements = useMemo(() => { const root = workflow.draft; const nodes: JSX.Element[] = []; let current = root as typeof root | undefined; while (current) { nodes.push(); current = current.next; } nodes.push(); return nodes; }, [workflow, disabled]); return (
{elements}
); }; export default WorkflowElements;