UNPKG

@bigfishtv/cockpit

Version:

38 lines (32 loc) 1.03 kB
import React from 'react' /** * Helper method to render a component with props. Will accept * a regular React class, a stateless functional component, or * a React element. * * Note: if element is passed, props will be ignored. * * @param {Component|Element|Function} Component to render or element to display * @param {object} props * @return {Element|null} */ export function renderComponent(Component, props) { if (!Component) return null // intentional... we don't spread props over react element if (React.isValidElement(Component)) return Component if (Component.prototype && isStatelessFunctionalComponent(Component)) { return Component(props) } return <Component {...props} /> } /** * Returns true if we think Component is a stateless function. * * Note: Naive implementation, looks for setState method on prototype. * * @param {Function} Component * @return {Boolean} */ export function isStatelessFunctionalComponent(Component) { return Component.prototype.setState === undefined }