36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
import React from "react";
|
|
import { Formik } from "formik";
|
|
import useAuthState from "../../zustand/AuthState";
|
|
import useNavigateOnSuccess from "../../Hooks/useNavigateOnSuccess";
|
|
import { useLoginAdmin } from "../../api/auth";
|
|
import FormField from "./FormField";
|
|
import { initialValues } from "./formutils";
|
|
import { FormValues } from "../../types/Auth";
|
|
import { toast } from "react-toastify";
|
|
import { useTranslation } from "react-i18next";
|
|
|
|
const LoginForm = () => {
|
|
const { mutate, isLoading, isSuccess, data } = useLoginAdmin();
|
|
const [t] = useTranslation();
|
|
const handelSubmit = (values: FormValues) => {
|
|
|
|
mutate(values );
|
|
};
|
|
|
|
const { login } = useAuthState();
|
|
const LoginData = {
|
|
...data,
|
|
} as any;
|
|
useNavigateOnSuccess(isSuccess, "/", () => login(LoginData?.data as any));
|
|
|
|
return (
|
|
<div className="LoginForm">
|
|
<Formik initialValues={initialValues} onSubmit={handelSubmit}>
|
|
{(formikProps) => <FormField isLoading={isLoading} />}
|
|
</Formik>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default LoginForm;
|