[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:
@@ -8,6 +8,8 @@ import {getDoNotDisturb as getDarwinDoNotDisturb} from 'macos-notification-state
|
||||
import {localizeMessage} from 'main/i18nManager';
|
||||
import ServerManager from 'common/servers/serverManager';
|
||||
|
||||
import ServerViewState from 'app/serverViewState';
|
||||
|
||||
import {createTemplate} from './app';
|
||||
|
||||
jest.mock('electron', () => {
|
||||
@@ -51,12 +53,12 @@ jest.mock('main/i18nManager', () => ({
|
||||
}));
|
||||
jest.mock('common/servers/serverManager', () => ({
|
||||
hasServers: jest.fn(),
|
||||
getCurrentServer: jest.fn(),
|
||||
getOrderedServers: jest.fn(),
|
||||
getOrderedTabsForServer: jest.fn(),
|
||||
}));
|
||||
jest.mock('main/app/servers', () => ({
|
||||
jest.mock('app/serverViewState', () => ({
|
||||
switchServer: jest.fn(),
|
||||
getCurrentServer: jest.fn(),
|
||||
}));
|
||||
jest.mock('main/diagnostics', () => ({}));
|
||||
jest.mock('main/downloadsManager', () => ({
|
||||
@@ -107,7 +109,7 @@ describe('main/menus/app', () => {
|
||||
];
|
||||
|
||||
beforeEach(() => {
|
||||
ServerManager.getCurrentServer.mockReturnValue(servers[0]);
|
||||
ServerViewState.getCurrentServer.mockReturnValue(servers[0]);
|
||||
ServerManager.getOrderedServers.mockReturnValue(servers);
|
||||
ServerManager.getOrderedTabsForServer.mockReturnValue(views);
|
||||
getDarwinDoNotDisturb.mockReturnValue(false);
|
||||
@@ -278,7 +280,7 @@ describe('main/menus/app', () => {
|
||||
}
|
||||
return id;
|
||||
});
|
||||
ServerManager.getCurrentServer.mockImplementation(() => ({id: servers[0].id}));
|
||||
ServerViewState.getCurrentServer.mockImplementation(() => ({id: servers[0].id}));
|
||||
|
||||
const modifiedViews = [...Array(15).keys()].map((key) => ({
|
||||
id: `view-${key}`,
|
||||
|
@@ -6,6 +6,8 @@
|
||||
import {app, ipcMain, Menu, MenuItemConstructorOptions, MenuItem, session, shell, WebContents, clipboard} from 'electron';
|
||||
import log from 'electron-log';
|
||||
|
||||
import ServerViewState from 'app/serverViewState';
|
||||
|
||||
import {OPEN_SERVERS_DROPDOWN, SHOW_NEW_SERVER_MODAL} from 'common/communication';
|
||||
import {t} from 'common/utils/util';
|
||||
import {getViewDisplayName, ViewType} from 'common/views/View';
|
||||
@@ -18,8 +20,6 @@ import downloadsManager from 'main/downloadsManager';
|
||||
import Diagnostics from 'main/diagnostics';
|
||||
import ViewManager from 'main/views/viewManager';
|
||||
import SettingsWindow from 'main/windows/settingsWindow';
|
||||
import {selectNextView, selectPreviousView} from 'main/app/views';
|
||||
import {switchServer} from 'main/app/servers';
|
||||
|
||||
export function createTemplate(config: Config, updateManager: UpdateManager) {
|
||||
const separatorItem: MenuItemConstructorOptions = {
|
||||
@@ -266,10 +266,10 @@ export function createTemplate(config: Config, updateManager: UpdateManager) {
|
||||
label: server.name,
|
||||
accelerator: `${process.platform === 'darwin' ? 'Cmd+Ctrl' : 'Ctrl+Shift'}+${i + 1}`,
|
||||
click() {
|
||||
switchServer(server.id);
|
||||
ServerViewState.switchServer(server.id);
|
||||
},
|
||||
});
|
||||
if (ServerManager.getCurrentServer().id === server.id) {
|
||||
if (ServerViewState.getCurrentServer().id === server.id) {
|
||||
ServerManager.getOrderedTabsForServer(server.id).slice(0, 9).forEach((view, i) => {
|
||||
items.push({
|
||||
label: ` ${localizeMessage(`common.views.${view.type}`, getViewDisplayName(view.type as ViewType))}`,
|
||||
@@ -285,14 +285,14 @@ export function createTemplate(config: Config, updateManager: UpdateManager) {
|
||||
label: localizeMessage('main.menus.app.window.selectNextTab', 'Select Next Tab'),
|
||||
accelerator: 'Ctrl+Tab',
|
||||
click() {
|
||||
selectNextView();
|
||||
ServerViewState.selectNextView();
|
||||
},
|
||||
enabled: (servers.length > 1),
|
||||
}, {
|
||||
label: localizeMessage('main.menus.app.window.selectPreviousTab', 'Select Previous Tab'),
|
||||
accelerator: 'Ctrl+Shift+Tab',
|
||||
click() {
|
||||
selectPreviousView();
|
||||
ServerViewState.selectPreviousView();
|
||||
},
|
||||
enabled: (servers.length > 1),
|
||||
}, ...(isMac ? [separatorItem, {
|
||||
|
@@ -14,7 +14,7 @@ jest.mock('main/i18nManager', () => ({
|
||||
jest.mock('common/servers/serverManager', () => ({
|
||||
getOrderedServers: jest.fn(),
|
||||
}));
|
||||
jest.mock('main/app/servers', () => ({
|
||||
jest.mock('app/serverViewState', () => ({
|
||||
switchServer: jest.fn(),
|
||||
}));
|
||||
jest.mock('main/windows/settingsWindow', () => ({}));
|
||||
|
@@ -5,11 +5,12 @@
|
||||
|
||||
import {Menu, MenuItem, MenuItemConstructorOptions} from 'electron';
|
||||
|
||||
import ServerViewState from 'app/serverViewState';
|
||||
|
||||
import ServerManager from 'common/servers/serverManager';
|
||||
|
||||
import {localizeMessage} from 'main/i18nManager';
|
||||
import SettingsWindow from 'main/windows/settingsWindow';
|
||||
import {switchServer} from 'main/app/servers';
|
||||
|
||||
export function createTemplate() {
|
||||
const servers = ServerManager.getOrderedServers();
|
||||
@@ -18,7 +19,7 @@ export function createTemplate() {
|
||||
return {
|
||||
label: server.name.length > 50 ? `${server.name.slice(0, 50)}...` : server.name,
|
||||
click: () => {
|
||||
switchServer(server.id);
|
||||
ServerViewState.switchServer(server.id);
|
||||
},
|
||||
};
|
||||
}), {
|
||||
|
Reference in New Issue
Block a user