import React, { createElement, ReactElement, ElementType, ComponentType } from 'react'; import { UR } from 'getstream'; export type ElementOrComponentOrLiteralType

= | string | number | boolean | null | ReactElement

| ElementType

| ComponentType

; export function smartRender( ElementOrComponentOrLiteral?: ElementOrComponentOrLiteralType, props?: T, fallback?: ElementOrComponentOrLiteralType, ) { const RenderComponent = ElementOrComponentOrLiteral === undefined ? fallback : ElementOrComponentOrLiteral; if (React.isValidElement(RenderComponent)) return RenderComponent; if ( typeof RenderComponent === 'string' || typeof RenderComponent === 'number' || typeof RenderComponent === 'boolean' || RenderComponent == null ) { return RenderComponent; } return createElement(RenderComponent, props); }