fixes
This commit is contained in:
@@ -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<GridPaginationModel>({
|
||||
page: 0,
|
||||
pageSize: 10,
|
||||
|
||||
@@ -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<GridPaginationModel>({
|
||||
page: 0,
|
||||
@@ -170,11 +170,11 @@ export default function ResourceView({ config, onNavigateToResource }: ResourceV
|
||||
<Box>
|
||||
{isList ? (
|
||||
<Box>
|
||||
{!isServer && config.filterableFields && config.filterableFields.length > 0 && (
|
||||
{!isServer && config.filterOptions?.fields && config.filterOptions.fields.length > 0 && (
|
||||
<FilterBar
|
||||
fields={config.fields}
|
||||
filterableFields={config.filterableFields!}
|
||||
mode={config.mode}
|
||||
filterableFields={config.filterOptions.fields}
|
||||
mode={config.filterOptions?.mode || "server"}
|
||||
data={rawData}
|
||||
appliedValues={appliedFilters}
|
||||
onApply={setAppliedFilters}
|
||||
|
||||
@@ -34,8 +34,10 @@ export interface ResourceConfig {
|
||||
fields: Record<string, ResourceField>;
|
||||
pagination?: boolean;
|
||||
hidden?: boolean;
|
||||
mode: ResourceMode;
|
||||
filterableFields?: string[];
|
||||
filterOptions?: {
|
||||
mode?: ResourceMode;
|
||||
fields?: string[];
|
||||
};
|
||||
}
|
||||
|
||||
export interface AppConfig {
|
||||
|
||||
@@ -14,6 +14,8 @@ export interface ResourceOverride {
|
||||
fields?: Record<string, FieldOverride>;
|
||||
pagination?: boolean;
|
||||
hidden?: boolean;
|
||||
mode?: "server" | "client";
|
||||
filterableFields?: string[];
|
||||
filterOptions?: {
|
||||
mode?: "server" | "client";
|
||||
fields?: string[];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -2,8 +2,10 @@ import { ResourceOverride } from "../react-openapi/types/overrides";
|
||||
|
||||
export const configuration: Record<string, ResourceOverride> = {
|
||||
expenses: {
|
||||
mode: "client",
|
||||
filterableFields: ["payee", "account", "tags", "occurred_at", "amount"],
|
||||
filterOptions: {
|
||||
mode: "client",
|
||||
fields: ["payee", "account", "tags", "occurred_at", "amount"],
|
||||
},
|
||||
fields: {
|
||||
payee: {
|
||||
displayField: "name",
|
||||
|
||||
Reference in New Issue
Block a user