From 479e141e8fe1612fab52ccd14fc182360b00b4d2 Mon Sep 17 00:00:00 2001 From: ClawdBot Date: Sat, 4 Apr 2026 04:59:36 +0300 Subject: [PATCH] fix: clear setTimeout on useEffect cleanup (issue #1095) - Fixed setTimeout cleanup for copy-feedback timer - Ensures timer is properly cleared when component unmounts - Moves cleanup return outside conditional to guarantee cleanup runs --- surfsense_web/hooks/use-api-key.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/surfsense_web/hooks/use-api-key.ts b/surfsense_web/hooks/use-api-key.ts index 873eebe24..ce8bbf1ef 100644 --- a/surfsense_web/hooks/use-api-key.ts +++ b/surfsense_web/hooks/use-api-key.ts @@ -17,10 +17,10 @@ export function useApiKey(): UseApiKeyReturn { // Clear copied state after 2 seconds useEffect(() => { - if (copied) { - const timer = setTimeout(() => setCopied(false), 2000); - return () => clearTimeout(timer); - } + if (!copied) return; + + const timer = setTimeout(() => setCopied(false), 2000); + return () => clearTimeout(timer); }, [copied]); useEffect(() => {