From 4b9fe09813c5d55686f13ee1b61cb957ea72b898 Mon Sep 17 00:00:00 2001 From: Raul Ranete Date: Wed, 29 Jan 2025 15:30:39 +0200 Subject: [PATCH] extract submitForm rename enum --- .../wallet/frontend/src/pages/auth/login.tsx | 56 +++++++++++-------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/packages/wallet/frontend/src/pages/auth/login.tsx b/packages/wallet/frontend/src/pages/auth/login.tsx index 6bcb61eb7..08957455f 100644 --- a/packages/wallet/frontend/src/pages/auth/login.tsx +++ b/packages/wallet/frontend/src/pages/auth/login.tsx @@ -23,7 +23,8 @@ const LoginPage: NextPageWithLayout = () => { const [isPasswordVisible, setPasswordVisible] = useState(false) const [callbackPath, setCallbackPath] = useState('/') const router = useRouter() - const callbackUrl = router.asPath.indexOf('callbackUrl') !== -1 + const callbackUrl = + router.asPath.indexOf('callbackUrl') !== -1 ? `${router.query?.callbackUrl}` : '/' const loginForm = useZodForm({ @@ -55,16 +56,41 @@ const LoginPage: NextPageWithLayout = () => { ) } } - const togglePasswordVisibility = () => { + + async function submitForm(data: { email: string; password: string }) { + const response = await userService.login(data) + if (response.success) { + handleNavigation() + sessionStorage.removeItem(SessionStorageKeys.CallbackUrl) + } else { + const { errors, message } = response + loginForm.setError('root', { message }) + + if (errors && errors.email) { + loginForm.setError('email', { message: errors.email }) + } + } + } + + function handleNavigation() { + const isIncorrectCallbackUrl = !callbackPath.startsWith('/') && + !callbackPath.startsWith(window.location.origin) + isIncorrectCallbackUrl + ? router.push('/') + : router.push(callbackPath) + .catch(() => router.push('/')) + } + + function togglePasswordVisibility() { setPasswordVisible(!isPasswordVisible) } useEffect(() => { if (callbackUrl === '/') { - const urlFromStorage = sessionStorage.getItem(LocalStorageKeys.CallbackUrl) + const urlFromStorage = sessionStorage.getItem(SessionStorageKeys.CallbackUrl) setCallbackPath(urlFromStorage ?? '/'); } else { - sessionStorage.setItem(LocalStorageKeys.CallbackUrl, callbackUrl) + sessionStorage.setItem(SessionStorageKeys.CallbackUrl, callbackUrl) } }, [callbackUrl]) @@ -82,25 +108,7 @@ const LoginPage: NextPageWithLayout = () => {
{ - const response = await userService.login(data) - if (response.success) { - const isIncorrectCallbackUrl = - !callbackPath.startsWith('/') && - !callbackPath.startsWith(window.location.origin) - isIncorrectCallbackUrl - ? router.push('/') - : router.push(callbackPath).catch(() => router.push('/')); - sessionStorage.removeItem(LocalStorageKeys.CallbackUrl); - } else { - const { errors, message } = response - loginForm.setError('root', { message }) - - if (errors && errors.email) { - loginForm.setError('email', { message: errors.email }) - } - } - }} + onSubmit={(data) => submitForm(data)} > {loginForm.formState.errors.email ? (