[MM-52333] Create Server View State module, move into new app module (#2739)

* Create Server View State Module

* Move currentServerId to serverViewState

* Move view state into server view state module

* PR feedback/bug fixes
This commit is contained in:
Devin Binnie
2023-06-12 08:35:14 -04:00
committed by GitHub
parent a7c25ee95e
commit 21e3044ff2
21 changed files with 505 additions and 486 deletions

View File

@@ -26,7 +26,6 @@ export class ServerManager extends EventEmitter {
private servers: Map<string, MattermostServer>;
private remoteInfo: Map<string, RemoteInfo>;
private serverOrder: string[];
private currentServerId?: string;
private views: Map<string, MattermostView>;
private viewOrder: Map<string, string[]>;
@@ -71,19 +70,6 @@ export class ServerManager extends EventEmitter {
}, [] as MattermostServer[]);
}
getCurrentServer = () => {
log.debug('getCurrentServer');
if (!this.currentServerId) {
throw new Error('No server set as current');
}
const server = this.servers.get(this.currentServerId);
if (!server) {
throw new Error('Current server does not exist');
}
return server;
}
getLastActiveTabForServer = (serverId: string) => {
log.withPrefix(serverId).debug('getLastActiveTabForServer');
@@ -187,10 +173,6 @@ export class ServerManager extends EventEmitter {
});
this.viewOrder.set(newServer.id, viewOrder);
if (!this.currentServerId) {
this.currentServerId = newServer.id;
}
// Emit this event whenever we update a server URL to ensure remote info is fetched
this.emit(SERVERS_URL_MODIFIED, [newServer.id]);
this.persistServers();
@@ -234,14 +216,6 @@ export class ServerManager extends EventEmitter {
this.remoteInfo.delete(serverId);
this.servers.delete(serverId);
if (this.currentServerId === serverId && this.hasServers()) {
this.currentServerId = this.serverOrder[0];
}
if (!this.hasServers()) {
delete this.currentServerId;
}
this.persistServers();
}
@@ -262,8 +236,6 @@ export class ServerManager extends EventEmitter {
}
this.lastActiveView.set(view.server.id, viewId);
this.currentServerId = view.server.id;
const serverOrder = this.serverOrder.findIndex((srv) => srv === view.server.id);
if (serverOrder < 0) {
throw new Error('Server order corrupt, ID not found.');
@@ -286,11 +258,6 @@ export class ServerManager extends EventEmitter {
}
this.filterOutDuplicateServers();
this.serverOrder = serverOrder;
if (Config.lastActiveServer && this.serverOrder[Config.lastActiveServer]) {
this.currentServerId = this.serverOrder[Config.lastActiveServer];
} else {
this.currentServerId = this.serverOrder[0];
}
}
private filterOutDuplicateServers = () => {