Quiz_dashboard/src/Pages/Admin/Notifications/AddNotification/Add/Page.tsx
2024-11-12 15:13:59 +03:00

77 lines
2.5 KiB
TypeScript

import { useTranslation } from "react-i18next";
import useSetPageTitle from "../../../../../Hooks/useSetPageTitle";
import PageHeader from "../../../../../Layout/Dashboard/PageHeader";
import { Suspense, useEffect } from "react";
import { Spin } from "antd";
import { ModalEnum } from "../../../../../enums/Model";
import PersonalDetailsForm from "../Form/PersonalDetailsForm";
import { Formik, Form } from "formik";
import { getInitialValues, getValidationSchema } from "../Form/formUtils";
import TitleDetailsForm from "../Form/TitleDetailsForm";
import AttachmentForm from "../Form/AttachmentForm";
import { useNavigate } from "react-router-dom";
import { QueryStatusEnum } from "../../../../../enums/QueryStatus";
import { useAddNotification } from "../../../../../api/notification";
const TableHeader = () => {
const [t] = useTranslation();
const Navigate = useNavigate();
const { mutate, isSuccess, status } = useAddNotification();
useSetPageTitle(t(`page_header.add_notification`));
const handleSubmit = (values: any) => {
const DataToSend = {
...values,
location: {
lat: values.lat,
lng: values.lng,
},
};
mutate(DataToSend);
};
useEffect(() => {
if (isSuccess === true) {
console.log(1);
Navigate('/add_Notifications')
}
}, [isSuccess])
return (
<div className="TableWithHeader">
<Suspense fallback={<Spin />}>
<PageHeader
pageTitle="manage_notification"
ModelAbility={ModalEnum?.NOTIFICATION_ADD}
canAdd={false}
/>
<div>
<Formik
initialValues={getInitialValues({})}
validationSchema={getValidationSchema}
onSubmit={handleSubmit}
>
{({ dirty }) => (
<Form className="Form_details_container">
<TitleDetailsForm />
<PersonalDetailsForm />
<div className="resellerButton">
<button type="button" onClick={() => Navigate('/add_Notifications')}>{t("practical.cancel")}</button>
<button type="submit" disabled={!dirty}>
{t("practical.send")} {t("models.notifications")}
{status === QueryStatusEnum.LOADING && (
<span className="Spinier_Div">
<Spin />
</span>
)}
</button>
</div>
</Form>
)}
</Formik>
</div>
</Suspense>
</div>
);
};
export default TableHeader;