diff --git a/src/Components/Utils/Filter/FilterState.ts b/src/Components/Utils/Filter/FilterState.ts index be93ae1..e3c8c72 100644 --- a/src/Components/Utils/Filter/FilterState.ts +++ b/src/Components/Utils/Filter/FilterState.ts @@ -1,7 +1,8 @@ import { create } from "zustand"; interface FilterState { - filterState: any[]; + filterState: {}; + InitialValue: {}; setFilterState: (data: any) => void; clearFilterState: () => void; setWithOldValue: (data: any) => void; @@ -9,15 +10,14 @@ interface FilterState { } export const useFilterState = create((set, get) => ({ - filterState: [], + filterState: {}, + InitialValue:{name:""}, setFilterState: (data) => set(() => ({ filterState: data })), clearFilterState: () => set(() => ({ filterState: [] })), setWithOldValue: (data) => - set((state) => ({ filterState: [...state.filterState, data] })), + set((state) => ({ filterState: {...state.filterState, data} })), setInitialValue: (data) => { - if (get().filterState.length < 1) { - set(() => ({ filterState: data })); - } + set(() => ({ InitialValue: data })); }, })); diff --git a/src/Components/Utils/Filter/useFilter.tsx b/src/Components/Utils/Filter/useFilter.tsx index d25b91a..55f151f 100644 --- a/src/Components/Utils/Filter/useFilter.tsx +++ b/src/Components/Utils/Filter/useFilter.tsx @@ -1,6 +1,6 @@ import React, { ReactNode, useEffect, useState } from "react"; import { FaFilter } from "react-icons/fa"; -import { Form, Formik, FormikConfig, FormikHelpers } from "formik"; +import { Form, Formik, FormikConfig, FormikHelpers, useFormikContext } from "formik"; import { Button, ButtonProps, Divider, Modal } from "antd"; import { useTranslation } from "react-i18next"; import { useModalState } from "./Modal"; @@ -8,7 +8,6 @@ import { useFilterState } from "./FilterState"; import { ModalEnum } from "../../../enums/Model"; import { QueryStatusEnum } from "../../../enums/QueryStatus"; import { useObjectToEdit } from "../../../zustand/ObjectToEditState"; -import FormikForm from "../../../Layout/Dashboard/FormikForm"; import SpinContainer from "../../Layout/SpinContainer"; import { TbFlagCancel } from "react-icons/tb"; import { XFilled } from "@ant-design/icons"; @@ -36,13 +35,15 @@ interface SubmitButtonProps extends Omit {} const useFilter = () => { const { setIsOpen, isOpen } = useModalState((state) => state); - const { filterState, setFilterState, clearFilterState } = useFilterState(); + const { filterState, setFilterState, clearFilterState ,InitialValue} = useFilterState(); const [t] = useTranslation(); const [formValues, setFormValues] = useState({}); - + const formik = useFormikContext() // Define the type for the callback type SubmitCallback = () => void; - + // console.log(formik?.values); + // console.log(InitialValue); + const FilterButton = () => { const handleState = () => { if (isOpen === ModalEnum?.FILTER) { @@ -66,6 +67,9 @@ const useFilter = () => { setFilterState({}) }, []) + + + const FilterBody = ({ onSubmit, children, @@ -100,6 +104,7 @@ const useFilter = () => { setFormValues({}); }; + const handleOpen = () => { setIsOpen(true); // setObjectToEdit({}); @@ -122,20 +127,27 @@ const useFilter = () => { -
-
-
{t("models.filter")} handleCancel(true)} />
- -
- {isLoading ? : children} - -
-
-
+ {(formik) => { + + return ( +
+ +
+
{t("models.filter")} handleCancel(true)} />
+ +
+ {isLoading ? : children} + +
+
+
+ ) + }} +
diff --git a/src/Components/ValidationField/View/Default.tsx b/src/Components/ValidationField/View/Default.tsx index 9ea3beb..6708b52 100644 --- a/src/Components/ValidationField/View/Default.tsx +++ b/src/Components/ValidationField/View/Default.tsx @@ -4,7 +4,6 @@ import useFormField from "../../../Hooks/useFormField"; import { Field } from "formik"; import { ValidationFieldLabel } from "../components/ValidationFieldLabel"; import { ValidationFieldContainer } from "../components/ValidationFieldContainer"; -import { FieldProps } from "../utils/types"; const Default = ({ name, diff --git a/src/Layout/Dashboard/FilterLayout.tsx b/src/Layout/Dashboard/FilterLayout.tsx index 4331642..51c47cf 100644 --- a/src/Layout/Dashboard/FilterLayout.tsx +++ b/src/Layout/Dashboard/FilterLayout.tsx @@ -6,7 +6,6 @@ import { translateOptions } from "../../utils/translatedOptions"; import { search_array } from "../../Routes"; import PaginationColumn from "../../Components/Filter/PaginationColumn"; import OrderBySelect from "../../Components/Filter/OrderBySelect"; -import LayoutFilterModal from "./LayoutFilterModal"; import { BiFilterAlt } from "react-icons/bi"; import { MdKeyboardArrowDown } from "react-icons/md"; import SearchField from "../../Components/DataTable/SearchField"; diff --git a/src/Layout/Dashboard/FormikForm.tsx b/src/Layout/Dashboard/FormikForm.tsx index 191163f..2b3c028 100644 --- a/src/Layout/Dashboard/FormikForm.tsx +++ b/src/Layout/Dashboard/FormikForm.tsx @@ -7,7 +7,7 @@ interface FormValues { interface FormikFormProps { handleSubmit: (values: any) => void; initialValues: FormValues; - validationSchema: any; + validationSchema?: any; title?: string; children: ReactNode; ButtonName?: string; diff --git a/src/Pages/Admin/Grade/Model/FilterForm.tsx b/src/Pages/Admin/Grade/Model/FilterForm.tsx index 6d0583f..7e39168 100644 --- a/src/Pages/Admin/Grade/Model/FilterForm.tsx +++ b/src/Pages/Admin/Grade/Model/FilterForm.tsx @@ -1,8 +1,11 @@ import React from "react"; import ValidationField from "../../../../Components/ValidationField/ValidationField"; import { Col, Row } from "reactstrap"; +import { useFormikContext } from "formik"; const FilterForm = () => { + const formik = useFormikContext(); + return (
@@ -14,4 +17,4 @@ const FilterForm = () => { ); }; -export default FilterForm; +export default FilterForm; \ No newline at end of file diff --git a/src/zustand/ObjectToEditState.ts b/src/zustand/ObjectToEditState.ts index b0c56c6..d973c95 100644 --- a/src/zustand/ObjectToEditState.ts +++ b/src/zustand/ObjectToEditState.ts @@ -27,7 +27,7 @@ interface ModelState { } export const useObjectToEdit = create((set) => ({ - objectToEdit: null, + c: null, setObjectToEdit: (data) => set(() => ({ objectToEdit: data })), OldObjectToEdit: null, setOldObjectToEdit: (data) => set(() => ({ OldObjectToEdit: data })),