diff --git a/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx index bbdd166cb..39bc6b75e 100644 --- a/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx @@ -24,6 +24,7 @@ import { createFlowComponent, downloadNode, expandGroupNode, + unselectAllNodes, updateFlowPosition, } from "../../../../utils/reactflowUtils"; import { classNames, cn } from "../../../../utils/utils"; @@ -68,7 +69,7 @@ export default function NodeToolbarComponent({ const edges = useFlowStore((state) => state.edges); const setNodes = useFlowStore((state) => state.setNodes); const setEdges = useFlowStore((state) => state.setEdges); - + const unselectAll = useFlowStore(state => state.unselectAll); const saveComponent = useFlowsManagerStore((state) => state.saveComponent); const flows = useFlowsManagerStore((state) => state.flows); const version = useDarkStore((state) => state.version); @@ -216,6 +217,25 @@ export default function NodeToolbarComponent({ event.preventDefault(); setShowModalAdvanced(state => !state); } + if ( + selected && + (event.ctrlKey || event.metaKey) && + event.key === "s" && + isSaved + ) { + event.preventDefault(); + return setShowOverrideModal(state => !state); + } + if ( + selected && + (event.ctrlKey || event.metaKey) && + event.key === "s" && + hasCode + ) { + event.preventDefault(); + saveComponent(cloneDeep(data), false); + unselectAll() + } } document.addEventListener("keydown", onKeyDown); @@ -371,24 +391,34 @@ export default function NodeToolbarComponent({ {isSaved ? ( - - {" "} - Save{" "} - {" "} + + {" "} + Save{" "} + + S + ) : ( hasCode && ( - - {" "} - Save{" "} - {" "} + + {" "} + Save{" "} + + S + ) )}