import { useMemo } from "react"; import NodeRender from "@/components/workflow/NodeRender"; import WorkflowProvider from "@/components/workflow/WorkflowProvider"; import EndNode from "@/components/workflow/node/EndNode"; import { type WorkflowNode } from "@/domain/workflow"; import { useZustandShallowSelector } from "@/hooks"; import { useWorkflowStore } from "@/stores/workflow"; export type WorkflowElementsProps = { className?: string; style?: React.CSSProperties; }; const WorkflowElements = ({ className, style }: WorkflowElementsProps) => { const { workflow } = useWorkflowStore(useZustandShallowSelector(["workflow"])); const elements = useMemo(() => { const nodes: JSX.Element[] = []; let current = workflow.draft as WorkflowNode; while (current) { nodes.push(); current = current.next as WorkflowNode; } nodes.push(); return nodes; }, [workflow]); return (
{elements}
); }; export default WorkflowElements;