UNPKG

react-smart-conditional

Version:

Manage conditional rendering in react js and it's frameworks like a pro

3 lines (2 loc) 1.43 kB
var e=require("react");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=/*#__PURE__*/n(e);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var i in r)({}).hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e},i.apply(null,arguments)}function t(e,n){if(null==e)return{};var r={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(-1!==n.indexOf(i))continue;r[i]=e[i]}return r}var a=e.forwardRef,l=function(n){return n===e.Fragment},o=["as","condition"],f=a(function(e,n){var a=e.as,f=void 0===a?"div":a,u=e.condition,c=t(e,o);return u?l(f)?c.children:r.default.createElement(f,i({ref:n},c)):null});f.displayName="If";var u=["as"],c=a(function(e,n){var a=e.as,o=void 0===a?"div":a,f=t(e,u);return l(o)?f.children:r.default.createElement(o,i({ref:n},f))});c.displayName="Else";var d=["as","children","multiple"],s=a(function(n,a){var o=n.as,u=void 0===o?"div":o,s=n.children,v=n.multiple,p=void 0!==v&&v,h=t(n,d),m=[],y=null;e.Children.toArray(s).forEach(function(n){if(e.isValidElement(n)){var r=n.type;if(r===f&&n.props.condition){if(m.push(n),!p)return}else r!==c||y||(y=n)}else console.warn("Invalid child type in Show component")});var w=m.length>0?p?m:m[0]:y;return l(u)?w:r.default.createElement(u,i({ref:a},h),w)});s.displayName="Show";var v=Object.assign(s,{If:f,Else:c});exports.Show=v; //# sourceMappingURL=index.js.map