react-semantic-render
Version:
Semantic helper components for rendering content with React.
2 lines (1 loc) • 1.21 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("prop-types"),n=require("react");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=r(e),u=r(n);function l(e){return"function"==typeof e}function i(e,n){return e||(n&&l(n)?n:null)}function d(e){var n=i(e.children,e.render);return n?e.items.map(n):null}function a(e){return l(e)?e.call():(n=e,0!==u.default.Children.count(n)&&u.default.isValidElement(e)?u.default.Children.only(e):"string"==typeof e?e:null);var n}function f(e){return a(i(e.children,e.render))}function o(e){return e.when?f(e):null}function c(e){var n,r=!1;return u.default.Children.forEach(e.children,(function(t){if(!1===r&&u.default.isValidElement(t)){var l=t.props.value;n=t,r=l===e.value}})),r||void 0!==n.props.value?r?u.default.cloneElement(n):null:u.default.cloneElement(n)}d.propTypes={children:t.default.func,items:t.default.arrayOf(t.default.any).isRequired,render:t.default.func},o.propTypes={when:t.default.bool.isRequired,children:t.default.node,render:t.default.func},c.Case=f,c.Default=f,c.propTypes={children:t.default.node.isRequired,value:t.default.any.isRequired},exports.List=d,exports.Show=o,exports.Switch=c;