UNPKG

react-semantic-render

Version:

Semantic helper components for rendering content with React.

2 lines (1 loc) 914 B
import e from"prop-types";import n from"react";function r(e){return"function"==typeof e}function i(e,n){return e||(n&&r(n)?n:null)}function l(e){var n=i(e.children,e.render);return n?e.items.map(n):null}function u(e){return r(e)?e.call():(i=e,0!==n.Children.count(i)&&n.isValidElement(e)?n.Children.only(e):"string"==typeof e?e:null);var i}function o(e){return u(i(e.children,e.render))}function t(e){return e.when?o(e):null}function c(e){var r,i=!1;return n.Children.forEach(e.children,(function(l){if(!1===i&&n.isValidElement(l)){var u=l.props.value;r=l,i=u===e.value}})),i||void 0!==r.props.value?i?n.cloneElement(r):null:n.cloneElement(r)}l.propTypes={children:e.func,items:e.arrayOf(e.any).isRequired,render:e.func},t.propTypes={when:e.bool.isRequired,children:e.node,render:e.func},c.Case=o,c.Default=o,c.propTypes={children:e.node.isRequired,value:e.any.isRequired};export{l as List,t as Show,c as Switch};