/* eslint-disable react/display-name */ import React from "react"; import { ErrorComponent, LayoutWrapper, useResource, useRefineContext, useRouterContext, ResourceRouterParams, CanAccess, } from "@pankod/refine-core"; export const ResourceComponentWrapper: React.FC<{ route: string }> = ({ route, }) => { const { catchAll } = useRefineContext(); const { useParams } = useRouterContext(); const { resources } = useResource(); const { action, id } = useParams(); const resource = resources.find((res) => res.route === route); if (resource) { const { list, create, edit, show, name, canCreate, canEdit, canShow, canDelete, options, } = resource; const List = list ?? (() => null); const Create = create ?? (() => null); const Edit = edit ?? (() => null); const Show = show ?? (() => null); const renderCrud = () => { switch (action) { default: return ( } params={{ resource, }} > {!list ? ( catchAll ?? ) : ( )} ); case "create": case "clone": return ( } params={{ id: id ? decodeURIComponent(id) : undefined, resource, }} > {!create ? ( catchAll ?? ) : ( )} ); case "edit": return ( } > {!edit ? ( catchAll ?? ) : ( )} ); case "show": return ( } > {!show ? ( catchAll ?? ) : ( )} ); } }; return renderCrud(); } return catchAll ? ( <>{catchAll} ) : ( ); };