diff options
Diffstat (limited to 'client/lib')
-rw-r--r-- | client/lib/escapeActions.js | 1 | ||||
-rw-r--r-- | client/lib/modal.js | 31 |
2 files changed, 32 insertions, 0 deletions
diff --git a/client/lib/escapeActions.js b/client/lib/escapeActions.js index 04e7f3f3..b3d4efe0 100644 --- a/client/lib/escapeActions.js +++ b/client/lib/escapeActions.js @@ -13,6 +13,7 @@ EscapeActions = { 'popup-close', 'inlinedForm', 'detailsPane', + 'modalWindow', 'multiselection', 'sidebarView' ], diff --git a/client/lib/modal.js b/client/lib/modal.js new file mode 100644 index 00000000..04a9b8b2 --- /dev/null +++ b/client/lib/modal.js @@ -0,0 +1,31 @@ +const closedValue = null + +Modal = new class { + constructor() { + this._currentModal = new ReactiveVar(closedValue) + } + + getTemplateName() { + return this._currentModal.get() + } + + isOpen() { + return this.getTemplateName() !== closedValue + } + + close() { + this._currentModal.set(closedValue) + } + + open(modalName) { + this._currentModal.set(modalName) + } +}; + +Blaze.registerHelper('Modal', Modal) + +EscapeActions.register('modalWindow', + () => Modal.close(), + () => Modal.isOpen(), + { noClickEscapeOn: '.modal-content' } +); |