diff --git a/src/main/views/viewManager.ts b/src/main/views/viewManager.ts index 2b609859..04b38f7e 100644 --- a/src/main/views/viewManager.ts +++ b/src/main/views/viewManager.ts @@ -100,13 +100,23 @@ export class ViewManager { if (ServerManager.hasServers()) { // TODO: This init should be happening elsewhere, future refactor will fix this ServerViewState.init(); - await updateServerInfos(ServerManager.getAllServers()); LoadingScreen.show(); - ServerManager.getAllServers().forEach((server) => this.loadServer(server)); + + // We need to wait for the current server to be initialized before showing anything + // But we can initialize other servers in parallel + const otherServers = ServerManager.getAllServers().filter((server) => server.id !== ServerViewState.getCurrentServer().id); + const currentServer = ServerViewState.getCurrentServer(); + otherServers.forEach((server) => this.initServer(server)); + await this.initServer(currentServer); this.showInitial(); } }; + private initServer = async (server: MattermostServer) => { + await updateServerInfos([server]); + this.loadServer(server); + }; + private handleDeveloperModeUpdated = (json: DeveloperSettings) => { log.debug('handleDeveloperModeUpdated', json);