fixes
This commit is contained in:
@@ -61,7 +61,7 @@ export default function EnhancedTable({
|
|||||||
const isMobile = useMediaQuery(theme.breakpoints.down('md'));
|
const isMobile = useMediaQuery(theme.breakpoints.down('md'));
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
const isServer = config.mode !== "client";
|
const isServer = config.filterOptions?.mode !== "client";
|
||||||
const [internalPaginationModel, setInternalPaginationModel] = React.useState<GridPaginationModel>({
|
const [internalPaginationModel, setInternalPaginationModel] = React.useState<GridPaginationModel>({
|
||||||
page: 0,
|
page: 0,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ export default function ResourceView({ config, onNavigateToResource }: ResourceV
|
|||||||
const isView = !!id && !isEdit;
|
const isView = !!id && !isEdit;
|
||||||
const isList = !id && !isCreate;
|
const isList = !id && !isCreate;
|
||||||
|
|
||||||
const isServer = config.mode !== "client";
|
const isServer = config.filterOptions?.mode !== "client";
|
||||||
|
|
||||||
const [paginationModel, setPaginationModel] = React.useState<GridPaginationModel>({
|
const [paginationModel, setPaginationModel] = React.useState<GridPaginationModel>({
|
||||||
page: 0,
|
page: 0,
|
||||||
@@ -170,11 +170,11 @@ export default function ResourceView({ config, onNavigateToResource }: ResourceV
|
|||||||
<Box>
|
<Box>
|
||||||
{isList ? (
|
{isList ? (
|
||||||
<Box>
|
<Box>
|
||||||
{!isServer && config.filterableFields && config.filterableFields.length > 0 && (
|
{!isServer && config.filterOptions?.fields && config.filterOptions.fields.length > 0 && (
|
||||||
<FilterBar
|
<FilterBar
|
||||||
fields={config.fields}
|
fields={config.fields}
|
||||||
filterableFields={config.filterableFields!}
|
filterableFields={config.filterOptions.fields}
|
||||||
mode={config.mode}
|
mode={config.filterOptions?.mode || "server"}
|
||||||
data={rawData}
|
data={rawData}
|
||||||
appliedValues={appliedFilters}
|
appliedValues={appliedFilters}
|
||||||
onApply={setAppliedFilters}
|
onApply={setAppliedFilters}
|
||||||
|
|||||||
@@ -34,8 +34,10 @@ export interface ResourceConfig {
|
|||||||
fields: Record<string, ResourceField>;
|
fields: Record<string, ResourceField>;
|
||||||
pagination?: boolean;
|
pagination?: boolean;
|
||||||
hidden?: boolean;
|
hidden?: boolean;
|
||||||
mode: ResourceMode;
|
filterOptions?: {
|
||||||
filterableFields?: string[];
|
mode?: ResourceMode;
|
||||||
|
fields?: string[];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface AppConfig {
|
export interface AppConfig {
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ export interface ResourceOverride {
|
|||||||
fields?: Record<string, FieldOverride>;
|
fields?: Record<string, FieldOverride>;
|
||||||
pagination?: boolean;
|
pagination?: boolean;
|
||||||
hidden?: boolean;
|
hidden?: boolean;
|
||||||
|
filterOptions?: {
|
||||||
mode?: "server" | "client";
|
mode?: "server" | "client";
|
||||||
filterableFields?: string[];
|
fields?: string[];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -154,6 +154,8 @@ export async function loadConfigFromOpenApi(baseUrl: string, configuration: Reco
|
|||||||
|
|
||||||
const resourceOverride = configuration[name] || {};
|
const resourceOverride = configuration[name] || {};
|
||||||
|
|
||||||
|
const fo = resourceOverride.filterOptions || {};
|
||||||
|
|
||||||
resources.push({
|
resources.push({
|
||||||
name,
|
name,
|
||||||
label: schema.title || label,
|
label: schema.title || label,
|
||||||
@@ -163,8 +165,10 @@ export async function loadConfigFromOpenApi(baseUrl: string, configuration: Reco
|
|||||||
fields,
|
fields,
|
||||||
pagination: resourceOverride.pagination,
|
pagination: resourceOverride.pagination,
|
||||||
hidden: resourceOverride.hidden,
|
hidden: resourceOverride.hidden,
|
||||||
mode: resourceOverride.mode || "server",
|
filterOptions: {
|
||||||
filterableFields: resourceOverride.filterableFields,
|
mode: fo.mode || "server",
|
||||||
|
fields: fo.fields,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ import { ResourceOverride } from "../react-openapi/types/overrides";
|
|||||||
|
|
||||||
export const configuration: Record<string, ResourceOverride> = {
|
export const configuration: Record<string, ResourceOverride> = {
|
||||||
expenses: {
|
expenses: {
|
||||||
|
filterOptions: {
|
||||||
mode: "client",
|
mode: "client",
|
||||||
filterableFields: ["payee", "account", "tags", "occurred_at", "amount"],
|
fields: ["payee", "account", "tags", "occurred_at", "amount"],
|
||||||
|
},
|
||||||
fields: {
|
fields: {
|
||||||
payee: {
|
payee: {
|
||||||
displayField: "name",
|
displayField: "name",
|
||||||
|
|||||||
Reference in New Issue
Block a user