From 213acd62878b8b4369a4cf6a12ff10b0c68d1bb4 Mon Sep 17 00:00:00 2001 From: Bob Mannino Date: Tue, 12 Aug 2025 18:13:04 +0100 Subject: [PATCH] fix: do not navigate if typing in input/textarea/select fixes #2367 --- apps/dokploy/hooks/use-keyboard-nav.tsx | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/apps/dokploy/hooks/use-keyboard-nav.tsx b/apps/dokploy/hooks/use-keyboard-nav.tsx index d9dc75bd6..768c47b67 100644 --- a/apps/dokploy/hooks/use-keyboard-nav.tsx +++ b/apps/dokploy/hooks/use-keyboard-nav.tsx @@ -100,7 +100,20 @@ export function UseKeyboardNav({ forPage }: { forPage: Page }) { ); useEffect(() => { - const handleKeyDown = ({ key }: KeyboardEvent) => { + const handleKeyDown = ({ key, target }: KeyboardEvent) => { + const active = target as HTMLElement | null; + + if (active) { + const tag = active.tagName; + if ( + active.isContentEditable || + tag === "INPUT" || + tag === "TEXTAREA" || + tag === "SELECT" || + active.getAttribute("role") === "textbox" + ) return; + } + if (isModPressed) { if (timer) clearTimeout(timer); setModPressed(false); @@ -109,11 +122,9 @@ export function UseKeyboardNav({ forPage }: { forPage: Page }) { const tab = shortcuts[key]!; router.push(`${pathname}?${updateSearchParam("tab", tab)}`); } - } else { - if (key === "g") { - setModPressed(true); - setTimer(setTimeout(() => setModPressed(false), 5000)); - } + } else if (key === "g") { + setModPressed(true); + setTimer(setTimeout(() => setModPressed(false), 5000)); } };