[MM-38532] Force new server to display when added (#1737)

This commit is contained in:
Devin Binnie
2021-09-20 13:56:12 -04:00
committed by GitHub
parent ac0de01d4b
commit c3963424f1
4 changed files with 16 additions and 6 deletions

View File

@@ -558,6 +558,7 @@ function handleNewServerModal() {
teams.push(newTeam);
config.set('teams', teams);
updateServerInfos([newTeam]);
WindowManager.switchServer(newTeam.name, true);
}).catch((e) => {
// e is undefined for user cancellation
if (e) {

View File

@@ -145,9 +145,9 @@ export class ViewManager {
showInitial = () => {
if (this.configServers.length) {
const element = this.configServers.find((e) => e.order === this.lastActiveServer || 0);
const element = this.configServers.find((e) => e.order === this.lastActiveServer) || this.configServers.find((e) => e.order === 0);
if (element && element.tabs.length) {
let tab = element.tabs.find((tab) => tab.order === element.lastActiveTab || 0);
let tab = element.tabs.find((tab) => tab.order === element.lastActiveTab) || element.tabs.find((tab) => tab.order === 0);
if (!tab?.isOpen) {
const openTabs = element.tabs.filter((tab) => tab.isOpen);
tab = openTabs.find((e) => e.order === 0) || openTabs[0];

View File

@@ -357,7 +357,7 @@ function initializeViewManager() {
}
}
export function switchServer(serverName: string) {
export function switchServer(serverName: string, waitForViewToExist = false) {
showMainWindow();
const server = status.config?.teams.find((team) => team.name === serverName);
if (!server) {
@@ -371,7 +371,16 @@ export function switchServer(serverName: string) {
nextTab = openTabs.find((e) => e.order === 0) || openTabs[0];
}
const tabViewName = getTabViewName(serverName, nextTab.name);
if (waitForViewToExist) {
const timeout = setInterval(() => {
if (status.viewManager?.views.has(tabViewName)) {
status.viewManager?.showByName(tabViewName);
clearTimeout(timeout);
}
}, 100);
} else {
status.viewManager?.showByName(tabViewName);
}
ipcMain.emit(UPDATE_SHORTCUT_MENU);
}

View File

@@ -102,8 +102,8 @@ export default class MainPage extends React.PureComponent<Props, State> {
this.topBar = React.createRef();
this.threeDotMenu = React.createRef();
const firstServer = this.props.teams.find((team) => team.order === this.props.lastActiveTeam || 0);
let firstTab = firstServer?.tabs.find((tab) => tab.order === firstServer.lastActiveTab || 0);
const firstServer = this.props.teams.find((team) => team.order === this.props.lastActiveTeam) || this.props.teams.find((team) => team.order === 0);
let firstTab = firstServer?.tabs.find((tab) => tab.order === firstServer.lastActiveTab) || firstServer?.tabs.find((tab) => tab.order === 0);
if (!firstTab?.isOpen) {
const openTabs = firstServer?.tabs.filter((tab) => tab.isOpen) || [];
firstTab = openTabs?.find((e) => e.order === 0) || openTabs[0];