Listing entities
This commit is contained in:
@@ -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} />
|
||||||
|
}
|
||||||
@@ -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>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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>
|
||||||
|
</>
|
||||||
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user