import { isDefined } from "./others"; export interface Wrapper { children: React.ReactNode; } interface ConditionalWrapperProps { isWrapping: boolean; children: React.ReactNode; wrapper: (wrapperProps: T & Wrapper) => JSX.Element; wrapperProps: T; wrapperFalse?: (wrapperProps: U & Wrapper) => JSX.Element; wrapperFalseProps?: U; } export const ConditionalWrapper = ({ isWrapping, children, wrapper: Wrapper, wrapperFalse: WrapperFalse, wrapperProps, wrapperFalseProps, }: ConditionalWrapperProps): JSX.Element => isWrapping ? ( {children} ) : isDefined(WrapperFalse) && isDefined(wrapperFalseProps) ? ( {children} ) : ( <>{children} );