rename urlRouter option in view models to urlCreator

This commit is contained in:
Bruno Windels 2020-10-16 13:02:21 +02:00
parent 0d622164df
commit 5a30855227
8 changed files with 19 additions and 13 deletions

View File

@ -70,7 +70,7 @@ export class LoginViewModel extends ViewModel {
} }
get cancelUrl() { get cancelUrl() {
return this.urlRouter.urlForSegment("session"); return this.urlCreator.urlForSegment("session");
} }
dispose() { dispose() {

View File

@ -38,7 +38,7 @@ export class RootViewModel extends ViewModel {
async load() { async load() {
this.track(this.navigation.observe("login").subscribe(() => this._applyNavigation())); this.track(this.navigation.observe("login").subscribe(() => this._applyNavigation()));
this.track(this.navigation.observe("session").subscribe(() => this._applyNavigation())); this.track(this.navigation.observe("session").subscribe(() => this._applyNavigation()));
this._applyNavigation(this.urlRouter.getLastUrl()); this._applyNavigation(this.urlCreator.getLastUrl());
} }
async _applyNavigation(restoreUrlIfAtDefault) { async _applyNavigation(restoreUrlIfAtDefault) {
@ -59,7 +59,7 @@ export class RootViewModel extends ViewModel {
} else { } else {
try { try {
if (restoreUrlIfAtDefault) { if (restoreUrlIfAtDefault) {
this.urlRouter.pushUrl(restoreUrlIfAtDefault); this.urlCreator.pushUrl(restoreUrlIfAtDefault);
} else { } else {
const sessionInfos = await this._sessionInfoStorage.getAll(); const sessionInfos = await this._sessionInfoStorage.getAll();
if (sessionInfos.length === 0) { if (sessionInfos.length === 0) {

View File

@ -76,7 +76,7 @@ class SessionItemViewModel extends ViewModel {
} }
get openUrl() { get openUrl() {
return this.urlRouter.urlForSegment("session", this.id); return this.urlCreator.urlForSegment("session", this.id);
} }
get label() { get label() {
@ -189,6 +189,6 @@ export class SessionPickerViewModel extends ViewModel {
} }
get cancelUrl() { get cancelUrl() {
return this.urlRouter.urlForSegment("login"); return this.urlCreator.urlForSegment("login");
} }
} }

View File

@ -30,8 +30,8 @@ export class ViewModel extends EventEmitter {
} }
childOptions(explicitOptions) { childOptions(explicitOptions) {
const {navigation, urlRouter, clock} = this._options; const {navigation, urlCreator, clock} = this._options;
return Object.assign({navigation, urlRouter, clock}, explicitOptions); return Object.assign({navigation, urlCreator, clock}, explicitOptions);
} }
track(disposable) { track(disposable) {
@ -99,8 +99,12 @@ export class ViewModel extends EventEmitter {
return this._options.clock; return this._options.clock;
} }
get urlRouter() { /**
return this._options.urlRouter; * The url router, only meant to be used to create urls with from view models.
* @return {URLRouter}
*/
get urlCreator() {
return this._options.urlCreator;
} }
get navigation() { get navigation() {

View File

@ -44,7 +44,7 @@ export class LeftPanelViewModel extends ViewModel {
this._roomList = this._roomListFilterMap.sortValues((a, b) => a.compare(b)); this._roomList = this._roomListFilterMap.sortValues((a, b) => a.compare(b));
this._currentTileVM = null; this._currentTileVM = null;
this._setupNavigation(); this._setupNavigation();
this._closeUrl = this.urlRouter.urlForSegment("session"); this._closeUrl = this.urlCreator.urlForSegment("session");
} }
get closeUrl() { get closeUrl() {

View File

@ -30,7 +30,7 @@ export class RoomTileViewModel extends ViewModel {
this._isOpen = false; this._isOpen = false;
this._wasUnreadWhenOpening = false; this._wasUnreadWhenOpening = false;
this._hidden = false; this._hidden = false;
this._url = this.urlRouter.openRoomActionUrl(this._room.id); this._url = this.urlCreator.openRoomActionUrl(this._room.id);
if (options.isOpen) { if (options.isOpen) {
this.open(); this.open();
} }

View File

@ -32,7 +32,7 @@ export class RoomViewModel extends ViewModel {
this._sendError = null; this._sendError = null;
this._composerVM = new ComposerViewModel(this); this._composerVM = new ComposerViewModel(this);
this._clearUnreadTimout = null; this._clearUnreadTimout = null;
this._closeUrl = this.urlRouter.urlUntilSegment("session"); this._closeUrl = this.urlCreator.urlUntilSegment("session");
} }
get closeUrl() { get closeUrl() {

View File

@ -143,7 +143,9 @@ export async function main(container, paths, legacyExtras) {
sessionInfoStorage, sessionInfoStorage,
storageFactory, storageFactory,
clock, clock,
urlRouter, // the only public interface of the router is to create urls,
// so we call it that in the view models
urlCreator: urlRouter,
navigation, navigation,
updateService: serviceWorkerHandler updateService: serviceWorkerHandler
}); });