diff --git a/src/Components/ValidationField/View/Default.tsx b/src/Components/ValidationField/View/Default.tsx index 79f62f6..5bc200b 100644 --- a/src/Components/ValidationField/View/Default.tsx +++ b/src/Components/ValidationField/View/Default.tsx @@ -37,6 +37,7 @@ const Default = ({ name={name} id={name} disabled={isDisabled} + value={formik?.values?.[name]} size="large" {...(type === "number" && { min: 0 })} {...props} diff --git a/src/Pages/ReSeller/Sales/Model/AddModel.tsx b/src/Pages/ReSeller/Sales/Model/AddModel.tsx index 86161d6..c8cf0e1 100644 --- a/src/Pages/ReSeller/Sales/Model/AddModel.tsx +++ b/src/Pages/ReSeller/Sales/Model/AddModel.tsx @@ -5,54 +5,33 @@ import { QueryStatusEnum } from "../../../../enums/QueryStatus"; import ValidationModelForm from "./ValidationModelForm"; import SalesModelForm from "./SalesModelForm"; import SubmitModelForm from "./SubmitModelForm"; - -import { useAddSales } from "../../../../api/sales"; import LayoutModel from "./LayoutModel"; import { useObjectToEdit } from "../../../../zustand/ObjectToEditState"; +import { salesModelEnum } from "../../../../enums/salesForms"; const AddModel: React.FC = () => { - // const { mutate, status } = useAddSales(); - - const handleSubmit = (values: any) => { - // mutate({ - // ...values, - // }); - }; - enum modal { - Number= 0, - Package= 1, - Sure= 2 - } + const { objectToEdit } = useObjectToEdit(); + const handleSubmit = () => {}; const Forms = { - [modal.Number]: , - [modal.Package] : , - [modal.Sure]: + [salesModelEnum.Number]: , + [salesModelEnum.Package] : , + [salesModelEnum.Submit]: } - // const modelTitle = Forms.[modal.Number] ? "sale" : Forms.Package ? "adcs" : "Ascas"; - const { objectToEdit,setObjectToEdit } = useObjectToEdit(); console.log(objectToEdit); - return ( <> - {/* {Forms["Number"]} */} - <> - - - - - + {Forms[salesModelEnum.Number]} + {Forms[salesModelEnum.Package]} + {Forms[salesModelEnum.Submit]} ); diff --git a/src/Pages/ReSeller/Sales/Model/FilterForm.tsx b/src/Pages/ReSeller/Sales/Model/FilterForm.tsx index 6689ba0..92b41b0 100644 --- a/src/Pages/ReSeller/Sales/Model/FilterForm.tsx +++ b/src/Pages/ReSeller/Sales/Model/FilterForm.tsx @@ -1,4 +1,3 @@ -import React from "react"; import ValidationField from "../../../../Components/ValidationField/ValidationField"; import { Col, Row } from "reactstrap"; diff --git a/src/Pages/ReSeller/Sales/Model/LayoutModel.tsx b/src/Pages/ReSeller/Sales/Model/LayoutModel.tsx index 16aa4c1..8511ac7 100644 --- a/src/Pages/ReSeller/Sales/Model/LayoutModel.tsx +++ b/src/Pages/ReSeller/Sales/Model/LayoutModel.tsx @@ -6,12 +6,12 @@ import { useTranslation } from "react-i18next"; import { QueryStatusEnum } from "../../../../enums/QueryStatus"; import SpinContainer from "../../../../Components/Layout/SpinContainer"; import { MdCancel } from "react-icons/md"; -import { Form, Formik } from "formik"; +import { Form, Formik, useFormikContext } from "formik"; interface LayoutModalProps { isAddModal?: boolean; - modelTitle: string; handleSubmit: (values: any) => void; + handleReset?: (values: any) => void; getInitialValues: any; getValidationSchema: any; children: React.ReactNode; @@ -20,42 +20,41 @@ interface LayoutModalProps { ModelClassName?: string; width?: string; isLoading?: boolean; - buttonTitle?:string; - initialButtonName?:boolean } const LayoutModel = ({ isAddModal = true, children, handleSubmit = () => {}, + handleReset = () => {}, getInitialValues, getValidationSchema, status, - modelTitle, ModelEnum, ModelClassName, width = "800px", isLoading = false, - buttonTitle, - initialButtonName = true, }: LayoutModalProps) => { const { isOpen, setIsOpen } = useModalState((state) => state); const { setObjectToEdit } = useObjectToEdit(); + const formik = useFormikContext(); useEffect(() => { if (isAddModal && status === QueryStatusEnum.SUCCESS) { setIsOpen("isSuccess"); setObjectToEdit({}); + formik.resetForm(); return; } if (status === QueryStatusEnum.SUCCESS) { setIsOpen(""); - setObjectToEdit({}); } + }, [setIsOpen, status]); const handleCancel = () => { setIsOpen(""); setObjectToEdit({}); + formik.resetForm(); }; const [t] = useTranslation(); @@ -75,6 +74,7 @@ const LayoutModel = ({ initialValues={getInitialValues} validationSchema={getValidationSchema} onSubmit={handleSubmit} + onReset={handleReset} > {(formik) => { useEffect(() => { diff --git a/src/Pages/ReSeller/Sales/Model/SalesModelForm.tsx b/src/Pages/ReSeller/Sales/Model/SalesModelForm.tsx index a4212e6..5f94aa8 100644 --- a/src/Pages/ReSeller/Sales/Model/SalesModelForm.tsx +++ b/src/Pages/ReSeller/Sales/Model/SalesModelForm.tsx @@ -1,6 +1,4 @@ -import { Col, Row } from "reactstrap"; import ValidationField from "../../../../Components/ValidationField/ValidationField"; -import useFormatDataToSelect from "../../../../utils/useFormatDataToSelect"; import { useFormikContext } from "formik"; import { useModalState } from "../../../../zustand/Modal"; import { useObjectToEdit } from "../../../../zustand/ObjectToEditState"; @@ -11,21 +9,22 @@ import { MdCancel } from "react-icons/md"; const Form = () => { - const {values,setFieldValue} = useFormikContext() - console.log(values?.currentModalIndex); - const { isOpen, setIsOpen } = useModalState((state) => state); const { objectToEdit,setObjectToEdit } = useObjectToEdit(); + const { setIsOpen } = useModalState((state) => state); const {t} = useTranslation(); + const formik = useFormikContext(); + const { values, setFieldValue } = useFormikContext() + const handleNext = ()=>{ setFieldValue( "currentModalIndex" , values?.currentModalIndex + 1 ) } + const handleCancel = () => { setIsOpen(""); - setObjectToEdit({}); + formik.resetForm(); }; -console.log(objectToEdit); const student_info = objectToEdit?.data?.data const PackagesInfo = student_info?.packages.map((info:any) => ({ id: info?.id, @@ -35,15 +34,15 @@ console.log(objectToEdit); return ( values?.currentModalIndex == 1 && -
-
- - {t(`models.add_sales`)}{" "} - - -
- + +
+ + {t(`models.add_sales`)}{" "} + + +
+
@@ -60,7 +59,6 @@ console.log(objectToEdit); option={PackagesInfo} />
- {/* {values?.currentModalIndex} */}
- -
+
+ + {t(`models.add_sales`)}{" "} + + +
+ + + + + + + +
+ + +
+
); }; diff --git a/src/Pages/ReSeller/Sales/Model/formUtil.ts b/src/Pages/ReSeller/Sales/Model/formUtil.ts index f10799d..188fba5 100644 --- a/src/Pages/ReSeller/Sales/Model/formUtil.ts +++ b/src/Pages/ReSeller/Sales/Model/formUtil.ts @@ -1,16 +1,16 @@ import * as Yup from "yup"; -import { formatDate } from "../../../../utils/formatDate"; // Function to get the initial values export const getInitialValues = (objectToEdit: any): any => { - + console.log(objectToEdit); + return { id: objectToEdit?.id ?? null, phone_number: objectToEdit?.phone_number ?? null, currentModalIndex: 0, package_id: objectToEdit?.package_id ?? null, - student_id: objectToEdit?.student_id ?? 0, - coupon_id: objectToEdit?.coupon_id ?? 1, + student_id: objectToEdit?.student_id ?? null, + coupon_id: objectToEdit?.coupon_id ?? null, }; }; diff --git a/src/Pages/ReSeller/Sales/Page.tsx b/src/Pages/ReSeller/Sales/Page.tsx index cec13a9..6fe6b09 100644 --- a/src/Pages/ReSeller/Sales/Page.tsx +++ b/src/Pages/ReSeller/Sales/Page.tsx @@ -11,11 +11,14 @@ const Table = lazy(() => import("./Table")); const AddModalForm = lazy(() => import("./Model/AddModel")); const TableHeader = () => { + const [t] = useTranslation(); useSetPageTitle([ {name:`${t(`page_header.home`)}`, path:"/"}, {name:`${t(`page_header.sales`)}`, path:"sales"} - ]); return ( + ]); + + return (
}> { + const [searchQuery] = useSearchQuery("name"); const { filterState }:any = useFilterState(); diff --git a/src/Pages/ReSeller/Sales/index.tsx b/src/Pages/ReSeller/Sales/index.tsx index 447f22d..f9646fc 100644 --- a/src/Pages/ReSeller/Sales/index.tsx +++ b/src/Pages/ReSeller/Sales/index.tsx @@ -4,14 +4,10 @@ import Table from "./Table"; import { FaPlus } from "react-icons/fa"; import AddModalForm from "./Model/AddModel"; -import EditModalForm from "./Model/EditModel"; -// import DeleteModalForm from "../../"; export { Table, useColumns, AddModalForm, - EditModalForm, - // DeleteModalForm, FaPlus, }; diff --git a/src/Pages/ReSeller/Sales/useTableColumns.tsx b/src/Pages/ReSeller/Sales/useTableColumns.tsx index 3895a09..62930d4 100644 --- a/src/Pages/ReSeller/Sales/useTableColumns.tsx +++ b/src/Pages/ReSeller/Sales/useTableColumns.tsx @@ -5,7 +5,6 @@ import { useTranslation } from "react-i18next"; export const useColumns = () => { const [t] = useTranslation(); - const columns: TableColumnsType = [ { title: t("columns.id"), diff --git a/src/enums/salesForms.ts b/src/enums/salesForms.ts new file mode 100644 index 0000000..e52b861 --- /dev/null +++ b/src/enums/salesForms.ts @@ -0,0 +1,5 @@ +export enum salesModelEnum { + Number= 0, + Package= 1, + Submit= 2 + } \ No newline at end of file diff --git a/src/translate/ar.json b/src/translate/ar.json index 5477e93..d723b73 100644 --- a/src/translate/ar.json +++ b/src/translate/ar.json @@ -1018,6 +1018,12 @@ "reseller_profit":"نسبة الأرباح (10%)", "total_sells":"إجمالي المبيعات" }, + "toast" : { + "phone_number_not_found":"رقم الهاتف غير موجود", + "error_while_trying_please_try_again":"حدث خطأ أثناء المحاولة، يرجى المحاولة مرة أخرى", + "Student Already Have this Package":"الطالب لديه هذه الحزمة بالفعل", + "The combination of student_id and package_id already exists.":"مجموعة الطالب والحزمة موجودة بالفعل." + }, "alphabet": { "A": "A", "B": "B",