Feature/update datatable filter

This commit is contained in:
2024-12-09 07:43:18 +00:00
committed by AmirHossein Mahmoodi
parent 2c2ebe3b97
commit 2a9f4d73bd
4 changed files with 37 additions and 12 deletions

View File

@@ -1,7 +1,7 @@
"use client";
import { Box, Button, Drawer, styled } from "@mui/material";
import { Form, Formik } from "formik";
import { Form, Formik, getIn } from "formik";
import useTableSetting from "@/lib/hooks/useTableSetting";
import { useEffect, useState } from "react";
import FilterHeader from "@/core/components/DataTable/filter/FilterHeader";
@@ -110,6 +110,9 @@ function FilterBody({ columns, drawerState, setDrawerState, user_id, page_name,
filterParameters={values[column.id]}
handleChange={handleChange}
handleBlur={handleBlur}
dependencyFieldValue={
column.dependencyId ? getIn(values, column.dependencyId) : null
}
setFieldValue={setFieldValue}
resetForm={resetForm}
errors={errors}

View File

@@ -22,6 +22,7 @@ function FilterBodyField({
filterParameters,
handleChange,
handleBlur,
dependencyFieldValue,
setFieldValue,
errors,
touched,
@@ -33,7 +34,6 @@ function FilterBodyField({
const handleOpenFilterBox = (event) => {
setAnchorEl(event.currentTarget);
};
return (
<>
{filterParameters.datatype === "numeric" && filterParameters.filterFn === "between" ? (
@@ -47,12 +47,11 @@ function FilterBodyField({
errors={errors}
touched={touched}
/>
) : filterParameters.datatype === "numeric" &&
filterParameters.filterFn === "equals" &&
Array.isArray(column.columnSelectOption) ? (
) : filterParameters.datatype === "numeric" && filterParameters.filterFn === "equals" ? (
<CustomSelect
column={column}
filterParameters={filterParameters}
dependencyFieldValue={dependencyFieldValue}
setFieldValue={setFieldValue}
defaultFilterTranslation={defaultFilterTranslation}
handleOpenFilterBox={handleOpenFilterBox}

View File

@@ -2,8 +2,8 @@
import { FormControl, FormHelperText, InputLabel, MenuItem, OutlinedInput, Select, Typography } from "@mui/material";
function CustomSelect({ column, filterParameters, defaultFilterTranslation, setFieldValue }) {
const columnSelectOption = column.columnSelectOption;
function CustomSelect({ column, dependencyFieldValue, filterParameters, defaultFilterTranslation, setFieldValue }) {
const columnSelectOption = column.columnSelectOption(dependencyFieldValue);
return (
<FormControl fullWidth sx={{ marginY: 1 }}>