123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- const closedValue = null;
- window.Modal = new (class {
- constructor() {
- this._currentModal = new ReactiveVar(closedValue);
- this._onCloseGoTo = '';
- this._isWideModal = false;
- }
- getHeaderName() {
- const currentModal = this._currentModal.get();
- return currentModal && currentModal.header;
- }
- getTemplateName() {
- const currentModal = this._currentModal.get();
- return currentModal && currentModal.modalName;
- }
- isOpen() {
- return this.getTemplateName() !== closedValue;
- }
- isWide() {
- return this._isWideModal;
- }
- close() {
- this._currentModal.set(closedValue);
- if (this._onCloseGoTo) {
- FlowRouter.go(this._onCloseGoTo);
- }
- }
- openWide(modalName, { header = '', onCloseGoTo = '' } = {}) {
- this._currentModal.set({ header, modalName });
- this._onCloseGoTo = onCloseGoTo;
- this._isWideModal = true;
- }
- open(modalName, { header = '', onCloseGoTo = '' } = {}) {
- this._currentModal.set({ header, modalName });
- this._onCloseGoTo = onCloseGoTo;
- }
- })();
- Blaze.registerHelper('Modal', Modal);
- EscapeActions.register(
- 'modalWindow',
- () => Modal.close(),
- () => Modal.isOpen(),
- { noClickEscapeOn: '.modal-container,.model-content' },
- );
|