UNPKG

easy-dialogs

Version:

Function based dialogs manager for React

3 lines (2 loc) 4.06 kB
import{atom as n,getDefaultStore as t,useSetAtom as e,useAtom as r}from"jotai";import o from"react";var i=function(){return i=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var o in t=arguments[e])Object.prototype.hasOwnProperty.call(t,o)&&(n[o]=t[o]);return n},i.apply(this,arguments)};function u(n,t,e,r){return new(e||(e=Promise))((function(o,i){function u(n){try{l(r.next(n))}catch(n){i(n)}}function a(n){try{l(r.throw(n))}catch(n){i(n)}}function l(n){var t;n.done?o(n.value):(t=n.value,t instanceof e?t:new e((function(n){n(t)}))).then(u,a)}l((r=r.apply(n,t||[])).next())}))}function a(n,t){var e,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return u.next=a(0),u.throw=a(1),u.return=a(2),"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function a(a){return function(l){return function(a){if(e)throw new TypeError("Generator is already executing.");for(;u&&(u=0,a[0]&&(i=0)),i;)try{if(e=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(n,i)}catch(n){a=[6,n],r=0}finally{e=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,l])}}}function l(n,t,e){if(e||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return n.concat(r||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var c=n(0),f=n((function(n){return n(c)}),(function(n,t){var e=n(c);return t(c,e+1),e})),p=n([]),s=function(){return t().get(p)},y=function(n){var t=e(p),r=e(f),o=function(n,e){return new Promise((function(o){var u,a=r(),c=e||{};c.dialogKeyId;var f=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(null!=n&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(n);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(n,r[o])&&(e[r[o]]=n[r[o]])}return e}(c,["dialogKeyId"]),p={key:a,component:n,visualState:"open",useExitAnimation:null!==(u=null==e?void 0:e.useExitAnimation)&&void 0!==u&&u,dialogKeyId:e.dialogKeyId,props:i(i({},f),{onClose:function(n){var e,r,u=null!==(r=null===(e=s().find((function(n){return n.key===a})))||void 0===e?void 0:e.useExitAnimation)&&void 0!==r&&r;t((function(n){return n.map((function(n){return n.key===a?i(i({},n),{visualState:"closed",props:i({},n.props)}):n}))})),u||t((function(n){return n.filter((function(n){return n.key!==a}))})),o(n)},onAnimationEnd:function(){t((function(n){return n.filter((function(n){return n.key!==a||"closed"!==n.visualState}))}))}})};t((function(n){return l(l([],n,!0),[p],!1)}))}))};return{callDialog:function(t,e){return u(void 0,void 0,void 0,(function(){var r,u,l,c;return a(this,(function(a){if(!(r=n.find((function(n){return n.id===t}))))throw new Error('Dialog with id "'.concat(t,'" not found in definitions'));return u=r.component,l=r.props,c=i(i({},l||{}),{useExitAnimation:r.useExitAnimation,additionalProps:e||{},dialogKeyId:t}),[2,o(u,c)]}))}))},closeAllDialogs:function(){t([])}}},d=function(){var n=r(p)[0];return n&&0!==n.length?o.createElement(o.Fragment,null,n.map((function(n){var t,e=n.key,r=n.component,u=n.visualState,a=n.props,l="closed"===u;return o.createElement(r,i({key:e},a,((t={})["data-state"]=l?"closed":void 0,t)))}))):null};export{d as Dialog,s as getActiveDialogs,y as useDialogManager}; //# sourceMappingURL=index.esm.js.map