bitmax-dialog
Advanced tools
Comparing version 0.1.7 to 0.1.8
@@ -65,2 +65,5 @@ 'use strict'; | ||
} | ||
function handleOpenModal(data) { | ||
addModal(data.element, data.data, data.options, data.id); | ||
} | ||
function removeModal(id) { | ||
@@ -84,9 +87,7 @@ setModals(modals.filter(function (m) { | ||
React.useEffect(function () { | ||
eventEmitter.on('open-modal', function (data) { | ||
addModal(data.element, data.data, data.options, data.id); | ||
}); | ||
eventEmitter.on('open-modal', handleOpenModal); | ||
return function () { | ||
eventEmitter.remove('add-modal'); | ||
}; | ||
}, []); | ||
}, [modals]); | ||
return React__default.createElement(ModalRootContext.Provider, { | ||
@@ -93,0 +94,0 @@ value: { |
@@ -1,2 +0,2 @@ | ||
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),n=e(t),o=e(require("lodash"));function a(){return(a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}var i=new(function(){function e(){this.listeners=new Map}var t=e.prototype;return t.emit=function(e,t){var n=this.listeners.get(e);n&&n(t)},t.on=function(e,t){this.listeners.set(e,t)},t.remove=function(e){this.listeners.delete(e)},e}()),r=n.createContext({}),l=n.createContext({});function s(e){var o=t.useState(a({},{size:"sm",title:"",closable:!1},e.options)),i=o[0],r=o[1];return n.createElement(l.Provider,{value:{id:e.id,data:e.data,updateOptions:function(e){r((function(t){return a({},t,e)}))}}},n.createElement(m,{element:e.element,id:e.id,data:e.data,title:i.title,size:i.size,closed:e.closed}))}function u(){var e=t.useContext(l),n=t.useContext(r);return function(t){n.closeModal(e.id,t)}}function c(){var e=t.useContext(l),n=t.useContext(r);return function(){n.removeModal(e.id)}}var d={xs:480,sm:640,md:768,lg:1024,xl:1280,"2xl":1536};function m(e){var t=u(),o=c();return n.createElement("div",{className:"dialog"},n.createElement("div",{onClick:function(){return t()},className:"dialog-backdrop"}),n.createElement("div",{onAnimationEnd:function(e){"exit"==e.animationName&&o()},style:{maxWidth:d[e.size||"md"]},className:"dialog-content "+(e.closed?"closed":"")},e.title&&n.createElement("div",{className:"dialog-header"},n.createElement("h1",{className:"dialog-title"},e.title),n.createElement("button",{className:"dialog-close",onClick:function(){return t()}},n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"currentColor",viewBox:"0 0 16 16"},n.createElement("path",{d:"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"})))),n.createElement("div",{className:"dialog-body"},n.createElement(e.element,null))))}exports.Dialog=m,exports.ModalItemContext=l,exports.ModalItemProvider=s,exports.ModalOptions=function(e){var n=e.size,o=e.title,a=t.useContext(l);return t.useEffect((function(){a.updateOptions({size:n})}),[n]),t.useEffect((function(){a.updateOptions({title:o})}),[o]),null},exports.ModalProvider=function(e){var o=t.useState([]),l=o[0],u=o[1];function c(e,t,n,o){return new Promise((function(a){u([].concat(l,[{id:o||(new Date).getTime().toString(),data:t,element:e,onClose:a,closed:!1,options:n}]))}))}return t.useEffect((function(){return i.on("open-modal",(function(e){c(e.element,e.data,e.options,e.id)})),function(){i.remove("add-modal")}}),[]),n.createElement(r.Provider,{value:{removeModal:function(e){u(l.filter((function(t){return t.id!==e})))},addModal:c,closeModal:function(e,t){var n=l.find((function(t){return t.id==e}));null==n||n.onClose(t),i.emit("close-modal:"+e,t),u(l.map((function(t){return a({},t,{closed:t.id==e})})))}}},e.children,l.map((function(e){return n.createElement(s,Object.assign({key:e.id},e))})))},exports.ModalRootContext=r,exports.modal=function(e,t,n){return new Promise((function(a){var r=o.uniqueId("modal_");i.emit("open-modal",{element:e,data:t,options:n,id:r}),i.on("close-modal:"+r,a)}))},exports.useModalClose=u,exports.useModalData=function(){return t.useContext(l).data},exports.useModalRemove=c,exports.useOpenModal=function(e){var n=t.useContext(r);return function(t,o){return n.addModal(e,t,o)}}; | ||
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),n=e(t),o=e(require("lodash"));function a(){return(a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}var i=new(function(){function e(){this.listeners=new Map}var t=e.prototype;return t.emit=function(e,t){var n=this.listeners.get(e);n&&n(t)},t.on=function(e,t){this.listeners.set(e,t)},t.remove=function(e){this.listeners.delete(e)},e}()),r=n.createContext({}),l=n.createContext({});function s(e){var o=t.useState(a({},{size:"sm",title:"",closable:!1},e.options)),i=o[0],r=o[1];return n.createElement(l.Provider,{value:{id:e.id,data:e.data,updateOptions:function(e){r((function(t){return a({},t,e)}))}}},n.createElement(m,{element:e.element,id:e.id,data:e.data,title:i.title,size:i.size,closed:e.closed}))}function u(){var e=t.useContext(l),n=t.useContext(r);return function(t){n.closeModal(e.id,t)}}function c(){var e=t.useContext(l),n=t.useContext(r);return function(){n.removeModal(e.id)}}var d={xs:480,sm:640,md:768,lg:1024,xl:1280,"2xl":1536};function m(e){var t=u(),o=c();return n.createElement("div",{className:"dialog"},n.createElement("div",{onClick:function(){return t()},className:"dialog-backdrop"}),n.createElement("div",{onAnimationEnd:function(e){"exit"==e.animationName&&o()},style:{maxWidth:d[e.size||"md"]},className:"dialog-content "+(e.closed?"closed":"")},e.title&&n.createElement("div",{className:"dialog-header"},n.createElement("h1",{className:"dialog-title"},e.title),n.createElement("button",{className:"dialog-close",onClick:function(){return t()}},n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"currentColor",viewBox:"0 0 16 16"},n.createElement("path",{d:"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"})))),n.createElement("div",{className:"dialog-body"},n.createElement(e.element,null))))}exports.Dialog=m,exports.ModalItemContext=l,exports.ModalItemProvider=s,exports.ModalOptions=function(e){var n=e.size,o=e.title,a=t.useContext(l);return t.useEffect((function(){a.updateOptions({size:n})}),[n]),t.useEffect((function(){a.updateOptions({title:o})}),[o]),null},exports.ModalProvider=function(e){var o=t.useState([]),l=o[0],u=o[1];function c(e,t,n,o){return new Promise((function(a){u([].concat(l,[{id:o||(new Date).getTime().toString(),data:t,element:e,onClose:a,closed:!1,options:n}]))}))}function d(e){c(e.element,e.data,e.options,e.id)}return t.useEffect((function(){return i.on("open-modal",d),function(){i.remove("add-modal")}}),[l]),n.createElement(r.Provider,{value:{removeModal:function(e){u(l.filter((function(t){return t.id!==e})))},addModal:c,closeModal:function(e,t){var n=l.find((function(t){return t.id==e}));null==n||n.onClose(t),i.emit("close-modal:"+e,t),u(l.map((function(t){return a({},t,{closed:t.id==e})})))}}},e.children,l.map((function(e){return n.createElement(s,Object.assign({key:e.id},e))})))},exports.ModalRootContext=r,exports.modal=function(e,t,n){return new Promise((function(a){var r=o.uniqueId("modal_");i.emit("open-modal",{element:e,data:t,options:n,id:r}),i.on("close-modal:"+r,a)}))},exports.useModalClose=u,exports.useModalData=function(){return t.useContext(l).data},exports.useModalRemove=c,exports.useOpenModal=function(e){var n=t.useContext(r);return function(t,o){return n.addModal(e,t,o)}}; | ||
//# sourceMappingURL=bitmax-dialog.cjs.production.min.js.map |
@@ -58,2 +58,5 @@ import React, { useState, useEffect, useContext } from 'react'; | ||
} | ||
function handleOpenModal(data) { | ||
addModal(data.element, data.data, data.options, data.id); | ||
} | ||
function removeModal(id) { | ||
@@ -77,9 +80,7 @@ setModals(modals.filter(function (m) { | ||
useEffect(function () { | ||
eventEmitter.on('open-modal', function (data) { | ||
addModal(data.element, data.data, data.options, data.id); | ||
}); | ||
eventEmitter.on('open-modal', handleOpenModal); | ||
return function () { | ||
eventEmitter.remove('add-modal'); | ||
}; | ||
}, []); | ||
}, [modals]); | ||
return React.createElement(ModalRootContext.Provider, { | ||
@@ -86,0 +87,0 @@ value: { |
/// <reference types="react" /> | ||
import { ModalOptionsType } from "./types"; | ||
export declare function modal<T = any>(element: () => JSX.Element, data?: any, options?: Partial<ModalOptionsType>): Promise<T>; | ||
import { ModalOptionsType } from './types'; | ||
export declare function modal<T = any>(element: () => JSX.Element, data?: any, options?: Partial<ModalOptionsType>): Promise<T | null>; |
{ | ||
"version": "0.1.7", | ||
"version": "0.1.8", | ||
"license": "MIT", | ||
@@ -4,0 +4,0 @@ "main": "dist/index.js", |
@@ -1,13 +0,16 @@ | ||
import eventEmitter from "./eventEmitter" | ||
import _ from 'lodash' | ||
import { ModalOptionsType } from "./types" | ||
import eventEmitter from './eventEmitter'; | ||
import _ from 'lodash'; | ||
import { ModalOptionsType } from './types'; | ||
export function modal<T = any>(element: () => JSX.Element, data?: any, options?: Partial<ModalOptionsType>): Promise<T> { | ||
return new Promise(accept => { | ||
const id = _.uniqueId('modal_') | ||
eventEmitter.emit('open-modal', ({element, data, options, id})) | ||
export function modal<T = any>( | ||
element: () => JSX.Element, | ||
data?: any, | ||
options?: Partial<ModalOptionsType> | ||
): Promise<T|null> { | ||
return new Promise(accept => { | ||
const id = _.uniqueId('modal_'); | ||
eventEmitter.emit('open-modal', { element, data, options, id }); | ||
eventEmitter.on(`close-modal:${id}`, accept) | ||
}) | ||
} | ||
eventEmitter.on(`close-modal:${id}`, accept); | ||
}); | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
84727
894