From 15005d89bd0fb2d0e9ae3bf5dff10c83b65c02d5 Mon Sep 17 00:00:00 2001 From: JAVI <95052561+javidan-io@users.noreply.github.com> Date: Fri, 27 Mar 2026 10:14:59 +0100 Subject: [PATCH] fix(auth): implement proper debounce ref for forgot password requests (#28490) * fix(auth): implement proper debounce ref for forgot password requests * Add cleanup for debounced submit function Cancel debounced function on component unmount. --------- Co-authored-by: javidan Co-authored-by: Sahitya Chandra --- .../auth/forgot-password/forgot-password-view.tsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/apps/web/modules/auth/forgot-password/forgot-password-view.tsx b/apps/web/modules/auth/forgot-password/forgot-password-view.tsx index d7dfd80cc5..4dd46520b8 100644 --- a/apps/web/modules/auth/forgot-password/forgot-password-view.tsx +++ b/apps/web/modules/auth/forgot-password/forgot-password-view.tsx @@ -54,9 +54,18 @@ export default function ForgotPassword(props: PageProps) { } }; - const debouncedHandleSubmitPasswordRequest = debounce(submitForgotPasswordRequest, 250); + const submitRef = React.useRef(submitForgotPasswordRequest); + submitRef.current = submitForgotPasswordRequest; - const handleSubmit = async (e: SyntheticEvent) => { + const debouncedHandleSubmitPasswordRequest = React.useRef( + debounce((args: { email: string }) => submitRef.current(args), 250) + ).current; + + React.useEffect(() => { + return () => debouncedHandleSubmitPasswordRequest.cancel(); + }, []); + + const handleSubmit = (e: SyntheticEvent) => { e.preventDefault(); if (!email) { @@ -71,7 +80,7 @@ export default function ForgotPassword(props: PageProps) { setError(null); setSuccess(false); - await debouncedHandleSubmitPasswordRequest({ email }); + debouncedHandleSubmitPasswordRequest({ email }); }; const Success = () => {