diff --git a/app/layouts/news/form-login.tsx b/app/layouts/news/form-login.tsx index f00439f..a9463c1 100644 --- a/app/layouts/news/form-login.tsx +++ b/app/layouts/news/form-login.tsx @@ -1,5 +1,5 @@ import { zodResolver } from '@hookform/resolvers/zod' -import { useEffect } from 'react' +import { useEffect, useState } from 'react' import { useFetcher } from 'react-router' import { RemixFormProvider, useRemixForm } from 'remix-hook-form' import { z } from 'zod' @@ -30,6 +30,8 @@ export const FormLogin = (properties: TProperties) => { setIsInitSubscribeOpen, } = properties const fetcher = useFetcher() + const [error, setError] = useState() + const [disabled, setDisabled] = useState(false) const formMethods = useRemixForm({ mode: 'onSubmit', @@ -39,11 +41,21 @@ export const FormLogin = (properties: TProperties) => { const { handleSubmit } = formMethods + useEffect(() => { + if (fetcher.state !== 'idle' || fetcher.data?.success) { + setDisabled(true) + return + } + setDisabled(false) + }, [fetcher]) + useEffect(() => { if (fetcher.data?.success) { setIsInitSubscribeOpen(true) setIsLoginOpen(false) + return } + setError(fetcher.data?.message) // eslint-disable-next-line react-hooks/exhaustive-deps }, [fetcher]) @@ -72,6 +84,10 @@ export const FormLogin = (properties: TProperties) => { type="password" /> + {error && ( +
{error}
+ )} + {/* Lupa Kata Sandi */}
Lupa Kata Sandi? @@ -89,6 +105,7 @@ export const FormLogin = (properties: TProperties) => { {/* Tombol Masuk */} - {loaderData?.userToken ? ( - - - - ) : ( +
+ + {APP.title} + +
+ {APP.description} +
+
+ + {loaderData?.userToken ? ( + - )} -
+ + ) : ( + + )}
- +
) } diff --git a/app/routes/actions.news.login.ts b/app/routes/actions.news.login.ts index a49b9d7..12ee85e 100644 --- a/app/routes/actions.news.login.ts +++ b/app/routes/actions.news.login.ts @@ -37,7 +37,6 @@ export const action = async ({ request }: Route.ActionArgs) => { return data( { success: true, - accessToken: token, }, { headers,