import React, { memo, ElementType, PropsWithChildren, ReactNode } from 'react' import { RouteComponentProps } from 'react-router-dom'; interface LayoutWrapper { layout: ElementType; component?: ElementType; render?: (props: RouteComponentProps) => ReactNode; } export const LayoutWrapper = memo((props: PropsWithChildren) => { const { layout: Layout, children, component: Component, render, ...rcps } = props; return ( { children || (Component && ) || (typeof render === 'function' && render(rcps as RouteComponentProps)) || null } ); });