enumOptions and enum reader used everywhere

This commit is contained in:
2026-06-04 03:49:35 +05:30
parent 7c33bd9c7c
commit d6506e854a
7 changed files with 31 additions and 19 deletions

View File

@@ -3,6 +3,7 @@ import { Box, Paper, CircularProgress } from '@mui/material';
import { ResourceConfig } from '../types/config';
import type { ResourceField } from '../types/config';
import { useResource } from '../hooks/useResource';
import { resolveTemplate } from '../utils/options';
import GenericForm from './GenericForm';
import EnhancedTable from './EnhancedTable';
import FilterBar from './FilterBar';
@@ -61,6 +62,7 @@ function applyClientFilters(
if (field.type === "array" && Array.isArray(itemValue)) {
return itemValue.some((el: any) => {
if (el != null && typeof el === "object") {
if (field.enumOption?.value) return filterValue.includes(resolveTemplate(field.enumOption.value, el));
const dispFields = getFilterDisplayFields(field);
return dispFields.some((df) => filterValue.includes(String(el[df])));
}
@@ -68,6 +70,7 @@ function applyClientFilters(
});
}
if (itemValue && typeof itemValue === "object") {
if (field.enumOption?.value) return filterValue.includes(resolveTemplate(field.enumOption.value, itemValue));
const dispFields = getFilterDisplayFields(field);
const itemDisplay = dispFields.map((df) => itemValue[df]).filter((v) => v != null).join(" ");
return filterValue.includes(itemDisplay);
@@ -84,6 +87,7 @@ function applyClientFilters(
if (field.type === "array" && Array.isArray(itemValue)) {
return itemValue.some((el: any) => {
if (el != null && typeof el === "object") {
if (field.enumOption?.value) return resolveTemplate(field.enumOption.value, el) === String(filterValue);
const dispFields = getFilterDisplayFields(field);
return dispFields.some((df) => String(el[df]) === String(filterValue));
}
@@ -92,6 +96,7 @@ function applyClientFilters(
}
if (itemValue && typeof itemValue === "object") {
if (field.enumOption?.value) return resolveTemplate(field.enumOption.value, itemValue) === String(filterValue);
const dispFields = getFilterDisplayFields(field);
return dispFields.some((df) => String(itemValue[df]) === String(filterValue));
}