import React, { createContext, PropsWithChildren } from 'react'; import { IFirm } from "../interfaces"; import { useParams } from "react-router"; import { useOne } from "@refinedev/core"; import { CircularProgress } from "@mui/material"; type FirmContextType = { currentFirm: IFirm, partnerMap?: Map } export const FirmContext = createContext( {} as FirmContextType ); export const FirmContextProvider: React.FC = ({ children }: PropsWithChildren) => { const { instance, firm } = useParams(); const { data, isError, error, isLoading } = useOne({resource: 'firm', id: `${instance}/${firm}/`, errorNotification: false}); if (instance === undefined || firm === undefined) { return "Error" } if (isLoading) { return } let value: FirmContextType = { currentFirm: {instance, firm} } if (!isError || error?.statusCode != 405) { value.currentFirm.entity = data?.data.entity; value.partnerMap = new Map(data?.data.partner_list.map((item: any) => [item.id, item.label])); } return ( { children } ); }