|
|
@ -28,6 +28,7 @@ const loginSchema = z.object({ |
|
|
|
type LoginFormValues = z.infer<typeof loginSchema>; |
|
|
|
|
|
|
|
export default function LoginPage() { |
|
|
|
const [loader, setLoader] = useState(false); |
|
|
|
const router = useRouter() |
|
|
|
const { register, handleSubmit, formState: { errors }, control } = useForm<LoginFormValues>({ |
|
|
|
resolver: zodResolver(loginSchema), |
|
|
@ -36,14 +37,16 @@ export default function LoginPage() { |
|
|
|
const dispatch = useDispatch(); |
|
|
|
const onSubmit = async (data: LoginFormValues) => { |
|
|
|
try { |
|
|
|
setLoader(true) |
|
|
|
const response = await loginApi(data); |
|
|
|
localStorage.setItem('token', response.token); |
|
|
|
localStorage.setItem('refreshToken', response.refreshToken); |
|
|
|
dispatch(setAuthTokens({ token: response.token, refreshToken: response.refreshToken })); |
|
|
|
dispatch(setUserDetails(response)); |
|
|
|
|
|
|
|
setLoader(false) |
|
|
|
router.push('/home'); |
|
|
|
} catch (err) { |
|
|
|
setLoader(false) |
|
|
|
setError('Invalid credentials'); |
|
|
|
} |
|
|
|
}; |
|
|
@ -107,7 +110,7 @@ export default function LoginPage() { |
|
|
|
/> |
|
|
|
</Box> |
|
|
|
<Box width={"100%"} marginBlockStart={"20px"}> |
|
|
|
<CustomizedButtons btnType="submit" label={"Sign In"} /> |
|
|
|
<CustomizedButtons btnType="submit" label={!loader ? "Login" : "Login..."} /> |
|
|
|
</Box> |
|
|
|
</form> |
|
|
|
<Box |
|
|
|