Listing entities

This commit is contained in:
2025-04-18 23:57:51 +02:00
parent 155a5edd7d
commit 4b612fa7fe
3 changed files with 40 additions and 15 deletions

View File

@@ -3,14 +3,26 @@ import React, { useContext } from "react";
import { FirmContext } from "../../contexts/FirmContext"; import { FirmContext } from "../../contexts/FirmContext";
import List from "./base-page/List"; import List from "./base-page/List";
type Entity = {
id: string,
label: string,
entity_data: { type: string },
}
export const EntityRoutes = () => { export const EntityRoutes = () => {
const { currentFirm } = useContext(FirmContext);
return ( return (
<> <Routes>
<Routes> <Route index element={ <ListEntity /> } />
<Route index element={ <List resource={`${currentFirm.instance}/${currentFirm.firm}/entities/`} /> } /> </Routes>
</Routes>
</>
); );
} }
const ListEntity = () => {
const { currentFirm } = useContext(FirmContext);
const columns = [
{ field: "label", headerName: "Label", flex: 1 },
{ field: "entity_data", headerName: "Type", flex: 1, valueFormatter: ({ type }: {type: string}) => type }
];
return <List<Entity> resource={`firm/${currentFirm.instance}/${currentFirm.firm}/entities/`} columns={columns} />
}

View File

@@ -1,21 +1,28 @@
import { UiSchema } from "@rjsf/utils"; import { UiSchema } from "@rjsf/utils";
import { List as RefineList } from "@refinedev/mui"; import { List as RefineList, useDataGrid } from "@refinedev/mui";
import { DataGrid } from "@mui/x-data-grid"; import { DataGrid, GridColDef, GridValidRowModel } from "@mui/x-data-grid";
import React from "react";
type ListProps = { type ListProps<T extends GridValidRowModel> = {
resource: string, resource: string,
columns: GridColDef<T>[],
schemaName?: string, schemaName?: string,
uiSchema?: UiSchema, uiSchema?: UiSchema,
} }
const List = (props: ListProps) => { const List = <T extends GridValidRowModel>(props: ListProps<T>) => {
const { schemaName, resource, uiSchema } = props; const { schemaName, resource, uiSchema, columns } = props;
const { dataGridProps } = useDataGrid<T>({resource: resource});
const cols = React.useMemo<GridColDef<T>[]>(
() => columns,
[],
);
return ( return (
<RefineList <RefineList
resource={resource} canCreate={true}
> >
<DataGrid columns={} /> <DataGrid {...dataGridProps} columns={cols} />
</RefineList> </RefineList>
) )
} }

View File

@@ -1,4 +1,4 @@
import {Route, Routes} from "react-router"; import { Route, Routes, Link } from "react-router";
import React, { useContext } from "react"; import React, { useContext } from "react";
import { FirmContext, FirmContextProvider } from "../../contexts/FirmContext"; import { FirmContext, FirmContextProvider } from "../../contexts/FirmContext";
import { Header } from "../../components"; import { Header } from "../../components";
@@ -38,7 +38,13 @@ const FirmHome = () => {
} }
return ( return (
<h1>This is la firme {currentFirm.instance} / {currentFirm.firm}</h1> <>
<h1>This is la firme {currentFirm.instance} / {currentFirm.firm}</h1>
<ul>
<li><Link to="entities">Entitées</Link></li>
</ul>
</>
); );
} }