diff --git a/src/core/components/DataTable/filter/FilterBody.jsx b/src/core/components/DataTable/filter/FilterBody.jsx index 7f221fd..fbaed68 100644 --- a/src/core/components/DataTable/filter/FilterBody.jsx +++ b/src/core/components/DataTable/filter/FilterBody.jsx @@ -4,9 +4,9 @@ import {Box, Button, Drawer, styled} from "@mui/material"; import {Form, Formik} from "formik"; import useTableSetting from "@/lib/hooks/useTableSetting"; import {useEffect, useState} from "react"; -import FilterBodyField from "@/core/components/DataTable/filter/FilterBodyField"; import FilterHeader from "@/core/components/DataTable/filter/FilterHeader"; import * as Yup from "yup"; +import FilterBodyField from "@/core/components/DataTable/filter/FilterBodyField"; const ScrollBox = styled(Box)({ flexGrow: 1, @@ -38,11 +38,23 @@ function FilterBody({columns, drawerState, setDrawerState}) { if (!column.enableColumnFilter) return acc; const filter = settingStore?.[userId]?.[pageName]?.[tableName]?.['filters']?.find((filter) => filter.id === column.id); if (column.datatype === 'array') { - acc[column.id] = filter?.value || []; + acc[column.id] = { + value: filter?.value || [], + filterFn: filter?.fn || column._filterFn, + datatype: column.datatype + }; } else if (column._filterFn === "between") { - acc[column.id] = filter?.value || ["", ""]; + acc[column.id] = { + value: filter?.value || ["", ""], + filterFn: filter?.fn || column._filterFn, + datatype: column.datatype + }; } else { - acc[column.id] = filter?.value || ''; + acc[column.id] = { + value: filter?.value || '', + filterFn: filter?.fn || column._filterFn, + datatype: column.datatype + }; } return acc; }, {}); @@ -54,7 +66,8 @@ function FilterBody({columns, drawerState, setDrawerState}) { if (column._filterFn === "between" && column.datatype === "numeric") { acc[column.id] = Yup.array().of(Yup.string()).test({ test(value, ctx) { - const [start, end] = value || ["", ""]; + console.log("vavavava", value) + const [start, end] = value.value || ["", ""]; const startInt = parseInt(start, 10); const endInt = parseInt(end, 10); if (start && end && endInt <= startInt) { @@ -99,24 +112,28 @@ function FilterBody({columns, drawerState, setDrawerState}) { touched, isSubmitting, isValid, - dirty + dirty, + resetForm }) => (