diff --git a/src/components/nodes/ControlPanel.tsx b/src/components/nodes/ControlPanel.tsx index 4331a073..a5176ed8 100644 --- a/src/components/nodes/ControlPanel.tsx +++ b/src/components/nodes/ControlPanel.tsx @@ -864,9 +864,24 @@ function EaseCurveControls({ node }: { node: Node }) { const updateNodeData = useWorkflowStore((state) => state.updateNodeData); const regenerateNode = useWorkflowStore((state) => state.regenerateNode); const isRunning = useWorkflowStore((state) => state.isRunning); + const edges = useWorkflowStore((state) => state.edges); + const removeEdge = useWorkflowStore((state) => state.removeEdge); const [showPresets, setShowPresets] = useState(false); const presetsButtonRef = useRef(null); + const inheritedEdge = useMemo(() => { + return edges.find((e) => e.target === node.id && e.targetHandle === "easeCurve") || null; + }, [edges, node.id]); + + const isInherited = !!inheritedEdge; + + const handleBreakInheritance = useCallback(() => { + if (inheritedEdge) { + removeEdge(inheritedEdge.id); + updateNodeData(node.id, { inheritedFrom: null }); + } + }, [inheritedEdge, removeEdge, node.id, updateNodeData]); + const handleBezierChange = useCallback( (value: [number, number, number, number]) => { updateNodeData(node.id, { bezierHandles: value, easingPreset: null }); @@ -907,7 +922,19 @@ function EaseCurveControls({ node }: { node: Node }) { }, []); return ( -
+
+ {isInherited && ( +
+

Settings inherited

+

Break connection to edit manually

+ +
+ )}