import React, { isValidElement } from 'react'; import { Route, Routes } from 'react-router-dom'; import { ResourceContextProvider } from '../context/resource'; export interface ResourceProps extends React.PropsWithChildren { name: string; label?: string; icon?: React.ReactElement; list?: React.ComponentType | React.ReactElement; create?: React.ComponentType | React.ReactElement; edit?: React.ComponentType | React.ReactElement; detail?: React.ComponentType | React.ReactElement; } export const Resource: React.FC = React.memo((props) => { const { create: Create, detail: Detail, list: List, edit: Edit } = props; return ( {List && ( // @ts-ignore } /> )} {Create && ( } /> )} {Detail && ( } /> )} {Edit && ( } /> )} {props.children} ); }); Resource.displayName = 'Resource';