Improving props drilling for resources and resources path

This commit is contained in:
2025-04-21 15:43:53 +02:00
parent 484246bd5d
commit ee9eb97262
10 changed files with 58 additions and 56 deletions

View File

@@ -1,6 +1,8 @@
import { CrudForm } from "../../../lib/crud/components/crud-form";
import { UiSchema } from "@rjsf/utils";
import { useParams } from "react-router";
import { useContext } from "react";
import { FirmContext } from "../../../contexts/FirmContext";
type EditProps = {
resource: string,
@@ -10,12 +12,15 @@ type EditProps = {
const Edit = <T,>(props: EditProps) => {
const { schemaName, resource, uiSchema } = props;
const { currentFirm } = useContext(FirmContext);
const resourceBasePath = `firm/${currentFirm.instance}/${currentFirm.firm}`
const { record_id } = useParams();
return (
<CrudForm
schemaName={schemaName}
uiSchema={uiSchema}
resourceBasePath={resourceBasePath}
resource={resource}
id={record_id}
/>

View File

@@ -2,8 +2,9 @@ import { UiSchema } from "@rjsf/utils";
import { List as RefineList, useDataGrid } from "@refinedev/mui";
import { DataGrid, GridColDef, GridValidRowModel } from "@mui/x-data-grid";
import { Link, useNavigate } from "react-router"
import React from "react";
import React, { useContext } from "react";
import { Button } from "@mui/material";
import { FirmContext } from "../../../contexts/FirmContext";
type ListProps<T extends GridValidRowModel> = {
resource: string,
@@ -13,8 +14,11 @@ type ListProps<T extends GridValidRowModel> = {
}
const List = <T extends GridValidRowModel>(props: ListProps<T>) => {
const { schemaName, resource, uiSchema, columns } = props;
const { dataGridProps } = useDataGrid<T>({resource: resource});
const { resource, columns } = props;
const { currentFirm } = useContext(FirmContext);
const resourceBasePath = `firm/${currentFirm.instance}/${currentFirm.firm}`
const { dataGridProps } = useDataGrid<T>({resource: `${resourceBasePath}/${resource}`});
const navigate = useNavigate();
const cols = React.useMemo<GridColDef<T>[]>(

View File

@@ -1,5 +1,7 @@
import { CrudForm } from "../../../lib/crud/components/crud-form";
import { UiSchema } from "@rjsf/utils";
import { useContext } from "react";
import { FirmContext } from "../../../contexts/FirmContext";
type NewProps = {
resource: string,
@@ -9,11 +11,14 @@ type NewProps = {
const New = <T,>(props: NewProps) => {
const { schemaName, resource, uiSchema } = props;
const { currentFirm } = useContext(FirmContext);
const resourceBasePath = `firm/${currentFirm.instance}/${currentFirm.firm}`
return (
<CrudForm
schemaName={schemaName}
uiSchema={uiSchema}
resourceBasePath={resourceBasePath}
resource={resource}
/>
)