import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"; import End from "@/components/workflow/End"; import NodeRender from "@/components/workflow/NodeRender"; import WorkflowProvider from "@/components/workflow/WorkflowProvider"; import { WorkflowNode } from "@/domain/workflow"; import { useWorkflowStore, WorkflowState } from "@/providers/workflow"; import { useMemo } from "react"; import { useShallow } from "zustand/shallow"; const selectState = (state: WorkflowState) => ({ root: state.root, }); const Workflow = () => { // 3. 使用正确的选择器和 shallow 比较 const { root } = useWorkflowStore(useShallow(selectState)); const elements = useMemo(() => { let current = root; const elements: JSX.Element[] = []; while (current) { // 处理普通节点 elements.push(); current = current.next as WorkflowNode; } elements.push(); return elements; }, [root]); return ( <>
{elements}
); }; export default Workflow;