react-shorthand
Version:
React Component library that have some conditional operations and array method as components
2 lines (1 loc) • 2.16 kB
JavaScript
import n from"react";import{nanoid as e}from"nanoid";function r(e){var r=e.condition,t=e.children;return t=n.Children.toArray(t),r?t.find((function(n){return n.type&&"If"==n.type.displayName}))||null:t.find((function(n){return n.type&&"Else"==n.type.displayName}))||null}function t(e){var r=e.children;return n.createElement(n.Fragment,null,r)}function a(e){var r=e.children;return n.createElement(n.Fragment,null,r)}function i(e){var r=e.expression,t=e.children;return(t=n.Children.toArray(t)).find((function(n){return n.type&&"case"===n.type.displayName&&n.props.match===r}))||t.find((function(n){return n.type&&"default"===n.type.displayName}))||null}function l(e){e.match;var r=e.children;return n.createElement(n.Fragment,null,r)}function u(e){var r=e.children;return n.createElement(n.Fragment,null,r)}function c(n){var e=n.condition,r=n.children;return e?r:null}function d(n){for(var e=n.array,r=n.children,t=0;t<e.length;t++)if(!e[t])return null;return void 0===r?e[e.length-1]:r}function o(n){var e=n.array,r=n.children,t=e.find((function(n){return n}));if(t)return void 0===r?t:r}function f(e){var r=function(r){var t=r.array,a=r.handler,i=r.children;return i=n.Children.toArray(i),t[e](a)?i.find((function(n){return n.type&&"True"===n.type.displayName}))||i||null:i.find((function(n){return n.type&&"False"===n.type.displayName}))||null};function t(e){var r=e.children;return n.createElement(n.Fragment,null,r)}function a(e){var r=e.children;return n.createElement(n.Fragment,null,r)}return t.displayName="True",a.displayName="False",r.True=t,r.False=a,r}function y(n){return function(e){var r=e.array,t=e.handler,a=e.children,i=r[n](t)||null;return"function"==typeof a?a(i):i}}t.displayName="If",a.displayName="Else",r.If=t,r.Else=a,l.displayName="case",u.displayName="default",i.Case=l,i.Default=u;var p=y("find"),m=y("filter"),s=y("at"),h=f("every"),v=f("some"),N=Object.freeze({__proto__:null,At:s,Every:h,Filter:m,Find:p,Map:function(r){var t=r.array,a=r.Wrapper;return t.map((function(r,t){return n.createElement(a,{item:r,index:t,key:r.key||r.id||r._id||e()})}))},Some:v});export{d as And,c as If,r as IfElse,o as Or,i as Switch,N as array};