/* 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;