[MM-38532] Force new server to display when added (#1737)
This commit is contained in:
@@ -558,6 +558,7 @@ function handleNewServerModal() {
|
|||||||
teams.push(newTeam);
|
teams.push(newTeam);
|
||||||
config.set('teams', teams);
|
config.set('teams', teams);
|
||||||
updateServerInfos([newTeam]);
|
updateServerInfos([newTeam]);
|
||||||
|
WindowManager.switchServer(newTeam.name, true);
|
||||||
}).catch((e) => {
|
}).catch((e) => {
|
||||||
// e is undefined for user cancellation
|
// e is undefined for user cancellation
|
||||||
if (e) {
|
if (e) {
|
||||||
|
@@ -145,9 +145,9 @@ export class ViewManager {
|
|||||||
|
|
||||||
showInitial = () => {
|
showInitial = () => {
|
||||||
if (this.configServers.length) {
|
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) {
|
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) {
|
if (!tab?.isOpen) {
|
||||||
const openTabs = element.tabs.filter((tab) => tab.isOpen);
|
const openTabs = element.tabs.filter((tab) => tab.isOpen);
|
||||||
tab = openTabs.find((e) => e.order === 0) || openTabs[0];
|
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();
|
showMainWindow();
|
||||||
const server = status.config?.teams.find((team) => team.name === serverName);
|
const server = status.config?.teams.find((team) => team.name === serverName);
|
||||||
if (!server) {
|
if (!server) {
|
||||||
@@ -371,7 +371,16 @@ export function switchServer(serverName: string) {
|
|||||||
nextTab = openTabs.find((e) => e.order === 0) || openTabs[0];
|
nextTab = openTabs.find((e) => e.order === 0) || openTabs[0];
|
||||||
}
|
}
|
||||||
const tabViewName = getTabViewName(serverName, nextTab.name);
|
const tabViewName = getTabViewName(serverName, nextTab.name);
|
||||||
|
if (waitForViewToExist) {
|
||||||
|
const timeout = setInterval(() => {
|
||||||
|
if (status.viewManager?.views.has(tabViewName)) {
|
||||||
status.viewManager?.showByName(tabViewName);
|
status.viewManager?.showByName(tabViewName);
|
||||||
|
clearTimeout(timeout);
|
||||||
|
}
|
||||||
|
}, 100);
|
||||||
|
} else {
|
||||||
|
status.viewManager?.showByName(tabViewName);
|
||||||
|
}
|
||||||
ipcMain.emit(UPDATE_SHORTCUT_MENU);
|
ipcMain.emit(UPDATE_SHORTCUT_MENU);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -102,8 +102,8 @@ export default class MainPage extends React.PureComponent<Props, State> {
|
|||||||
this.topBar = React.createRef();
|
this.topBar = React.createRef();
|
||||||
this.threeDotMenu = React.createRef();
|
this.threeDotMenu = React.createRef();
|
||||||
|
|
||||||
const firstServer = this.props.teams.find((team) => team.order === this.props.lastActiveTeam || 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 || 0);
|
let firstTab = firstServer?.tabs.find((tab) => tab.order === firstServer.lastActiveTab) || firstServer?.tabs.find((tab) => tab.order === 0);
|
||||||
if (!firstTab?.isOpen) {
|
if (!firstTab?.isOpen) {
|
||||||
const openTabs = firstServer?.tabs.filter((tab) => tab.isOpen) || [];
|
const openTabs = firstServer?.tabs.filter((tab) => tab.isOpen) || [];
|
||||||
firstTab = openTabs?.find((e) => e.order === 0) || openTabs[0];
|
firstTab = openTabs?.find((e) => e.order === 0) || openTabs[0];
|
||||||
|
Reference in New Issue
Block a user