diff --git a/react-openapi/components/EnhancedTable.tsx b/react-openapi/components/EnhancedTable.tsx
index 55b6286..10dc971 100644
--- a/react-openapi/components/EnhancedTable.tsx
+++ b/react-openapi/components/EnhancedTable.tsx
@@ -130,6 +130,15 @@ export default function EnhancedTable({
return cols;
}, [config, onDelete, navigate, onNavigateToResource]);
+ const mobilePageSize = 10;
+ const [mobilePage, setMobilePage] = React.useState(0);
+ const mobileTotalPages = Math.ceil(data.length / mobilePageSize) || 1;
+ const mobileData = data.slice(mobilePage * mobilePageSize, (mobilePage + 1) * mobilePageSize);
+
+ React.useEffect(() => {
+ if (mobilePage >= mobileTotalPages) setMobilePage(0);
+ }, [data.length, mobilePage, mobileTotalPages]);
+
if (isMobile) {
return (
@@ -140,7 +149,7 @@ export default function EnhancedTable({
- {data.map((row) => (
+ {mobileData.map((row) => (
))}
+
+
+
+ Page {mobilePage + 1} of {mobileTotalPages}
+
+
+
);
}
@@ -240,7 +260,7 @@ function MobileCardRow({ row, config, onDelete, onNavigate, navigate }: any) {
{field.label}
-
+
diff --git a/react-openapi/components/FilterBar.tsx b/react-openapi/components/FilterBar.tsx
index d9f226d..8455741 100644
--- a/react-openapi/components/FilterBar.tsx
+++ b/react-openapi/components/FilterBar.tsx
@@ -5,10 +5,6 @@ import {
Paper,
TextField,
Autocomplete,
- Select,
- MenuItem,
- FormControl,
- InputLabel,
Typography,
} from "@mui/material";
import FilterListIcon from "@mui/icons-material/FilterList";
@@ -59,7 +55,7 @@ function extractOptions(
}
}
- console.log('extracted', fieldName, Array.from(values).sort())
+ // console.log('extracted', fieldName, Array.from(values).sort())
return Array.from(values).sort();
}
@@ -245,7 +241,8 @@ export default function FilterBar({
const field = fields[fieldName];
if (!field) return null;
- const options = extractOptions(fieldName, field, data ?? []);
+ const needsOptions = !field.filterType || field.filterType === "autocomplete" || field.filterType === "multiselect";
+ const options = needsOptions ? extractOptions(fieldName, field, data ?? []) : [];
const raw = draft[fieldName];
return (