feat(ui): disable nodes during workflow running

This commit is contained in:
Fu Diwei
2025-01-04 12:58:45 +08:00
parent 52dfa5e8c3
commit 2213399f5e
8 changed files with 38 additions and 26 deletions

View File

@@ -15,9 +15,10 @@ import { useWorkflowStore } from "@/stores/workflow";
export type AddNodeProps = {
node: WorkflowNode;
disabled?: boolean;
};
const AddNode = ({ node }: AddNodeProps) => {
const AddNode = ({ node, disabled }: AddNodeProps) => {
const { t } = useTranslation();
const { addNode } = useWorkflowStore(useZustandShallowSelector(["addNode"]));
@@ -31,20 +32,19 @@ const AddNode = ({ node }: AddNodeProps) => {
].map(([type, label, icon]) => {
return {
key: type as string,
disabled: true,
label: t(label as string),
icon: icon,
onClick: () => {
handleNodeTypeSelect(type as WorkflowNodeType);
if (disabled) return;
const nextNode = newNode(type as WorkflowNodeType);
addNode(nextNode, node.id);
},
};
});
}, []);
const handleNodeTypeSelect = (type: WorkflowNodeType) => {
const nextNode = newNode(type);
addNode(nextNode, node.id);
};
return (
<div className="relative py-6 before:absolute before:left-1/2 before:top-0 before:h-full before:w-[2px] before:-translate-x-1/2 before:bg-stone-200 before:content-['']">
<Dropdown menu={{ items: dropdownMenus }} trigger={["click"]}>