WIP: Adding entity crud to front

This commit is contained in:
2025-04-18 16:00:44 +02:00
parent fc5c63fe87
commit 155a5edd7d
5 changed files with 88 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
import { Route, Routes } from "react-router";
import React, { useContext } from "react";
import { FirmContext } from "../../contexts/FirmContext";
import List from "./base-page/List";
export const EntityRoutes = () => {
const { currentFirm } = useContext(FirmContext);
return (
<>
<Routes>
<Route index element={ <List resource={`${currentFirm.instance}/${currentFirm.firm}/entities/`} /> } />
</Routes>
</>
);
}

View File

@@ -0,0 +1,25 @@
import { CrudForm } from "../../../lib/crud/components/crud-form";
import { UiSchema } from "@rjsf/utils";
import { useParams } from "react-router";
type CardProps = {
resource: string,
schemaName: string,
uiSchema?: UiSchema,
}
const Card = (props: CardProps) => {
const { schemaName, resource, uiSchema } = props;
const { record_id } = useParams();
return (
<CrudForm
schemaName={schemaName}
uiSchema={uiSchema}
resource={resource}
id={record_id}
/>
)
}
export default Card;

View File

@@ -0,0 +1,23 @@
import { UiSchema } from "@rjsf/utils";
import { List as RefineList } from "@refinedev/mui";
import { DataGrid } from "@mui/x-data-grid";
type ListProps = {
resource: string,
schemaName?: string,
uiSchema?: UiSchema,
}
const List = (props: ListProps) => {
const { schemaName, resource, uiSchema } = props;
return (
<RefineList
resource={resource}
>
<DataGrid columns={} />
</RefineList>
)
}
export default List;

View File

@@ -0,0 +1,22 @@
import { CrudForm } from "../../../lib/crud/components/crud-form";
import { UiSchema } from "@rjsf/utils";
type NewProps = {
resource: string,
schemaName: string,
uiSchema?: UiSchema,
}
const New = (props: NewProps) => {
const { schemaName, resource, uiSchema } = props;
return (
<CrudForm
schemaName={schemaName}
uiSchema={uiSchema}
resource={resource}
/>
)
}
export default New;

View File

@@ -5,6 +5,7 @@ import { Header } from "../../components";
import { useOne } from "@refinedev/core"; import { useOne } from "@refinedev/core";
import { CrudForm } from "../../lib/crud/components/crud-form"; import { CrudForm } from "../../lib/crud/components/crud-form";
import { IFirm } from "../../interfaces"; import { IFirm } from "../../interfaces";
import { EntityRoutes } from "./EntityRoutes";
export const FirmRoutes = () => { export const FirmRoutes = () => {
return ( return (
@@ -15,6 +16,7 @@ export const FirmRoutes = () => {
<Header /> <Header />
<Routes> <Routes>
<Route index element={ <FirmHome /> } /> <Route index element={ <FirmHome /> } />
<Route path="/entities/*" element={ <EntityRoutes /> } />
</Routes> </Routes>
</FirmContextProvider> </FirmContextProvider>
} /> } />