[MM-38532] Force new server to display when added (#1737)
This commit is contained in:
@@ -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) {
|
||||
|
@@ -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];
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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];
|
||||
|
Reference in New Issue
Block a user