From 653c8caecfee01ddd88ee9a3c321645ae1651595 Mon Sep 17 00:00:00 2001 From: Vishesh 'ironeagle' Bangotra Date: Sun, 24 May 2026 01:34:52 +0530 Subject: [PATCH] fixes --- react-openapi/components/EnhancedTable.tsx | 2 +- react-openapi/components/ResourceView.tsx | 8 ++++---- react-openapi/types/config.ts | 6 ++++-- react-openapi/types/overrides.ts | 6 ++++-- react-openapi/utils/openapi_loader.ts | 8 ++++++-- src/openapi-config.ts | 6 ++++-- 6 files changed, 23 insertions(+), 13 deletions(-) diff --git a/react-openapi/components/EnhancedTable.tsx b/react-openapi/components/EnhancedTable.tsx index 434a4cc..55b6286 100644 --- a/react-openapi/components/EnhancedTable.tsx +++ b/react-openapi/components/EnhancedTable.tsx @@ -61,7 +61,7 @@ export default function EnhancedTable({ const isMobile = useMediaQuery(theme.breakpoints.down('md')); const navigate = useNavigate(); - const isServer = config.mode !== "client"; + const isServer = config.filterOptions?.mode !== "client"; const [internalPaginationModel, setInternalPaginationModel] = React.useState({ page: 0, pageSize: 10, diff --git a/react-openapi/components/ResourceView.tsx b/react-openapi/components/ResourceView.tsx index b239be4..a70e628 100644 --- a/react-openapi/components/ResourceView.tsx +++ b/react-openapi/components/ResourceView.tsx @@ -102,7 +102,7 @@ export default function ResourceView({ config, onNavigateToResource }: ResourceV const isView = !!id && !isEdit; const isList = !id && !isCreate; - const isServer = config.mode !== "client"; + const isServer = config.filterOptions?.mode !== "client"; const [paginationModel, setPaginationModel] = React.useState({ page: 0, @@ -170,11 +170,11 @@ export default function ResourceView({ config, onNavigateToResource }: ResourceV {isList ? ( - {!isServer && config.filterableFields && config.filterableFields.length > 0 && ( + {!isServer && config.filterOptions?.fields && config.filterOptions.fields.length > 0 && ( ; pagination?: boolean; hidden?: boolean; - mode: ResourceMode; - filterableFields?: string[]; + filterOptions?: { + mode?: ResourceMode; + fields?: string[]; + }; } export interface AppConfig { diff --git a/react-openapi/types/overrides.ts b/react-openapi/types/overrides.ts index 56c6a8a..6200308 100644 --- a/react-openapi/types/overrides.ts +++ b/react-openapi/types/overrides.ts @@ -14,6 +14,8 @@ export interface ResourceOverride { fields?: Record; pagination?: boolean; hidden?: boolean; - mode?: "server" | "client"; - filterableFields?: string[]; + filterOptions?: { + mode?: "server" | "client"; + fields?: string[]; + }; } diff --git a/react-openapi/utils/openapi_loader.ts b/react-openapi/utils/openapi_loader.ts index cd91a1d..ac472f4 100644 --- a/react-openapi/utils/openapi_loader.ts +++ b/react-openapi/utils/openapi_loader.ts @@ -154,6 +154,8 @@ export async function loadConfigFromOpenApi(baseUrl: string, configuration: Reco const resourceOverride = configuration[name] || {}; + const fo = resourceOverride.filterOptions || {}; + resources.push({ name, label: schema.title || label, @@ -163,8 +165,10 @@ export async function loadConfigFromOpenApi(baseUrl: string, configuration: Reco fields, pagination: resourceOverride.pagination, hidden: resourceOverride.hidden, - mode: resourceOverride.mode || "server", - filterableFields: resourceOverride.filterableFields, + filterOptions: { + mode: fo.mode || "server", + fields: fo.fields, + }, }); } diff --git a/src/openapi-config.ts b/src/openapi-config.ts index 3269912..3227a37 100644 --- a/src/openapi-config.ts +++ b/src/openapi-config.ts @@ -2,8 +2,10 @@ import { ResourceOverride } from "../react-openapi/types/overrides"; export const configuration: Record = { expenses: { - mode: "client", - filterableFields: ["payee", "account", "tags", "occurred_at", "amount"], + filterOptions: { + mode: "client", + fields: ["payee", "account", "tags", "occurred_at", "amount"], + }, fields: { payee: { displayField: "name",