react-smart-conditional
Version:
Manage conditional rendering in react js and it's frameworks like a pro
3 lines (2 loc) • 1.34 kB
JavaScript
import n,{forwardRef as r,Fragment as e,Children as i,isValidElement as a}from"react";function t(){return t=Object.assign?Object.assign.bind():function(n){for(var r=1;r<arguments.length;r++){var e=arguments[r];for(var i in e)({}).hasOwnProperty.call(e,i)&&(n[i]=e[i])}return n},t.apply(null,arguments)}function o(n,r){if(null==n)return{};var e={};for(var i in n)if({}.hasOwnProperty.call(n,i)){if(-1!==r.indexOf(i))continue;e[i]=n[i]}return e}var l=r,c=function(n){return n===e},f=["as","condition"],s=l(function(r,e){var i=r.as,a=void 0===i?"div":i,l=r.condition,s=o(r,f);return l?c(a)?s.children:n.createElement(a,t({ref:e},s)):null});s.displayName="If";var u=["as"],v=l(function(r,e){var i=r.as,a=void 0===i?"div":i,l=o(r,u);return c(a)?l.children:n.createElement(a,t({ref:e},l))});v.displayName="Else";var d=["as","children","multiple"],p=l(function(r,e){var l=r.as,f=void 0===l?"div":l,u=r.children,p=r.multiple,h=void 0!==p&&p,m=o(r,d),y=[],w=null;i.toArray(u).forEach(function(n){if(a(n)){var r=n.type;if(r===s&&n.props.condition){if(y.push(n),!h)return}else r!==v||w||(w=n)}else console.warn("Invalid child type in Show component")});var E=y.length>0?h?y:y[0]:w;return c(f)?E:n.createElement(f,t({ref:e},m),E)});p.displayName="Show";var h=Object.assign(p,{If:s,Else:v});export{h as Show};
//# sourceMappingURL=index.module.js.map