/* IMPORT */ import useMemo from '~/hooks/use_memo'; import createElement from '~/methods/create_element'; import resolve from '~/methods/resolve'; import $$ from '~/methods/SS'; import {isFunction} from '~/utils/lang'; import type {Child, Component, FunctionMaybe} from '~/types'; /* MAIN */ const Dynamic =
({ component, props, children }: { component: Component
, props?: FunctionMaybe
, children?: Child }): Child => { if ( isFunction ( component ) || isFunction ( props ) ) { return useMemo ( () => { return resolve ( createElement
( $$(component, false), $$(props), children ) ); }); } else { return createElement
( component, props, children ); } }; /* EXPORT */ export default Dynamic;