From d2f2f9074dbc8aee5b997290b46922211006f94b Mon Sep 17 00:00:00 2001 From: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com> Date: Wed, 14 May 2025 16:34:04 -0300 Subject: [PATCH] fix: made ctrl and shift state reset when switching windows to solve bulk editing issues (#8051) * Fixed Ctrl Pressing when window is blurred * Fixed Recent Files behavior with shift and ctrl --- .../components/recentFilesComponent/index.tsx | 11 ++++++++++ .../pages/MainPage/pages/homePage/index.tsx | 21 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/frontend/src/modals/fileManagerModal/components/recentFilesComponent/index.tsx b/src/frontend/src/modals/fileManagerModal/components/recentFilesComponent/index.tsx index 03645ac32..5385d9608 100644 --- a/src/frontend/src/modals/fileManagerModal/components/recentFilesComponent/index.tsx +++ b/src/frontend/src/modals/fileManagerModal/components/recentFilesComponent/index.tsx @@ -79,12 +79,23 @@ export default function RecentFilesComponent({ } }; + // Reset key states when window loses focus + const handleBlur = () => { + setIsShiftPressed(false); + }; + document.addEventListener("keydown", handleKeyDown); document.addEventListener("keyup", handleKeyUp); + window.addEventListener("blur", handleBlur); + // Clean up event listeners when component unmounts return () => { document.removeEventListener("keydown", handleKeyDown); document.removeEventListener("keyup", handleKeyUp); + window.removeEventListener("blur", handleBlur); + + // Reset key state on unmount + setIsShiftPressed(false); }; }, []); diff --git a/src/frontend/src/pages/MainPage/pages/homePage/index.tsx b/src/frontend/src/pages/MainPage/pages/homePage/index.tsx index 3dacb523b..db1efaee1 100644 --- a/src/frontend/src/pages/MainPage/pages/homePage/index.tsx +++ b/src/frontend/src/pages/MainPage/pages/homePage/index.tsx @@ -119,12 +119,25 @@ const HomePage = ({ type }: { type: "flows" | "components" | "mcp" }) => { } }; + // Reset key states when window loses focus + const handleBlur = () => { + setIsShiftPressed(false); + setIsCtrlPressed(false); + }; + document.addEventListener("keydown", handleKeyDown); document.addEventListener("keyup", handleKeyUp); + window.addEventListener("blur", handleBlur); + // Clean up event listeners when component unmounts return () => { document.removeEventListener("keydown", handleKeyDown); document.removeEventListener("keyup", handleKeyUp); + window.removeEventListener("blur", handleBlur); + + // Reset key states on unmount + setIsShiftPressed(false); + setIsCtrlPressed(false); }; }, []); @@ -170,6 +183,14 @@ const HomePage = ({ type }: { type: "flows" | "components" | "mcp" }) => { ); }, [data.flows]); + // Reset key states when navigating away + useEffect(() => { + return () => { + setIsShiftPressed(false); + setIsCtrlPressed(false); + }; + }, [folderId]); + return (