modal bar ref

This commit is contained in:
Yuri Kuznetsov
2025-03-20 20:59:04 +02:00
parent 9fec3a57b2
commit 22d50aee21
4 changed files with 110 additions and 24 deletions
+29 -13
View File
@@ -30,6 +30,8 @@
import Exceptions from 'exceptions';
import {Events, View as BullView} from 'bullbone';
import {inject} from 'di';
import ModalBarProvider from 'helpers/site/modal-bar-provider';
/**
* @callback module:controller~viewCallback
@@ -126,6 +128,13 @@ class Controller {
*/
masterView = null
/**
* @private
* @type {ModalBarProvider}
*/
@inject(ModalBarProvider)
modalBarProvider
/**
* Set the router.
*
@@ -431,21 +440,24 @@ class Controller {
const viewName = this.masterView || 'views/site/master';
this.viewFactory.create(viewName, {fullSelector: 'body'}, async /** module:view */masterView => {
this.setMasterView(masterView);
this.viewFactory.create(viewName, {fullSelector: 'body'},
async /** import('views/site/master').default */masterView => {
this.setMasterView(masterView);
if (this.isMasterRendered()) {
callback.call(this, masterView);
return;
}
this.modalBarProvider.set(masterView.collapsedModalBarView || null)
await masterView.render();
this.setMasterRendered(true);
if (this.isMasterRendered()) {
callback.call(this, masterView);
return;
}
await masterView.render();
this.setMasterRendered(true);
callback.call(this, masterView);
});
});
}
/**
@@ -477,6 +489,10 @@ class Controller {
* @param {import('view').default|null} view
*/
setMasterView(view) {
if (!view) {
this.modalBarProvider.set(null);
}
this.set('master', view);
}