[MM-63265] Use constants for modal keys (#3360)

This commit is contained in:
Devin Binnie
2025-03-04 11:01:30 -05:00
committed by GitHub
parent 1f4e1e0015
commit d33e6d9ecb
8 changed files with 31 additions and 13 deletions

View File

@@ -25,6 +25,7 @@ import {
REMOVE_SERVER, REMOVE_SERVER,
} from 'common/communication'; } from 'common/communication';
import Config from 'common/config'; import Config from 'common/config';
import {ModalConstants} from 'common/constants';
import {Logger} from 'common/log'; import {Logger} from 'common/log';
import {MattermostServer} from 'common/servers/MattermostServer'; import {MattermostServer} from 'common/servers/MattermostServer';
import ServerManager from 'common/servers/serverManager'; import ServerManager from 'common/servers/serverManager';
@@ -146,7 +147,7 @@ export class ServerViewState {
} }
const modalPromise = ModalManager.addModal<{prefillURL?: string}, Server>( const modalPromise = ModalManager.addModal<{prefillURL?: string}, Server>(
'newServer', ModalConstants.NEW_SERVER_MODAL,
'mattermost-desktop://renderer/newServer.html', 'mattermost-desktop://renderer/newServer.html',
getLocalPreload('internalAPI.js'), getLocalPreload('internalAPI.js'),
{prefillURL}, {prefillURL},
@@ -187,7 +188,7 @@ export class ServerViewState {
} }
const modalPromise = ModalManager.addModal<UniqueServerWithPermissions, {server: Server; permissions: Permissions}>( const modalPromise = ModalManager.addModal<UniqueServerWithPermissions, {server: Server; permissions: Permissions}>(
'editServer', ModalConstants.EDIT_SERVER_MODAL,
'mattermost-desktop://renderer/editServer.html', 'mattermost-desktop://renderer/editServer.html',
getLocalPreload('internalAPI.js'), getLocalPreload('internalAPI.js'),
{server: server.toUniqueServer(), permissions: PermissionsManager.getForServer(server) ?? {}}, {server: server.toUniqueServer(), permissions: PermissionsManager.getForServer(server) ?? {}},
@@ -219,7 +220,7 @@ export class ServerViewState {
} }
const modalPromise = ModalManager.addModal<null, boolean>( const modalPromise = ModalManager.addModal<null, boolean>(
'removeServer', ModalConstants.REMOVE_SERVER_MODAL,
'mattermost-desktop://renderer/removeServer.html', 'mattermost-desktop://renderer/removeServer.html',
getLocalPreload('internalAPI.js'), getLocalPreload('internalAPI.js'),
null, null,

View File

@@ -49,3 +49,15 @@ export const DEFAULT_ACADEMY_LINK = 'https://academy.mattermost.com/';
export const DEFAULT_TE_REPORT_PROBLEM_LINK = 'https://mattermost.com/pl/report-a-bug'; export const DEFAULT_TE_REPORT_PROBLEM_LINK = 'https://mattermost.com/pl/report-a-bug';
export const DEFAULT_EE_REPORT_PROBLEM_LINK = 'https://support.mattermost.com/hc/en-us/requests/new'; export const DEFAULT_EE_REPORT_PROBLEM_LINK = 'https://support.mattermost.com/hc/en-us/requests/new';
export const DEFAULT_UPGRADE_LINK = 'https://forum.mattermost.com/t/mattermost-desktop-app-5-11-important-compatibility-notice/22599'; export const DEFAULT_UPGRADE_LINK = 'https://forum.mattermost.com/t/mattermost-desktop-app-5-11-important-compatibility-notice/22599';
export const ModalConstants = {
SETTINGS_MODAL: 'settingsModal',
NEW_SERVER_MODAL: 'newServer',
EDIT_SERVER_MODAL: 'editServer',
REMOVE_SERVER_MODAL: 'removeServer',
WELCOME_SCREEN_MODAL: 'welcomeScreen',
CERTIFICATE_MODAL: 'certificateModal',
LOGIN_MODAL: 'loginModal',
PROXY_LOGIN_MODAL: 'proxyLoginModal',
PERMISSION_MODAL: 'permissionModal',
};

View File

@@ -5,6 +5,7 @@ import type {IpcMainEvent, IpcMainInvokeEvent} from 'electron';
import {app, Menu} from 'electron'; import {app, Menu} from 'electron';
import ServerViewState from 'app/serverViewState'; import ServerViewState from 'app/serverViewState';
import {ModalConstants} from 'common/constants';
import {Logger} from 'common/log'; import {Logger} from 'common/log';
import ServerManager from 'common/servers/serverManager'; import ServerManager from 'common/servers/serverManager';
import {ping} from 'common/utils/requests'; import {ping} from 'common/utils/requests';
@@ -98,7 +99,7 @@ export function handleWelcomeScreenModal(prefillURL?: string) {
if (!mainWindow) { if (!mainWindow) {
return; return;
} }
const modalPromise = ModalManager.addModal<{prefillURL?: string}, UniqueServer>('welcomeScreen', html, preload, {prefillURL}, mainWindow, !ServerManager.hasServers()); const modalPromise = ModalManager.addModal<{prefillURL?: string}, UniqueServer>(ModalConstants.WELCOME_SCREEN_MODAL, html, preload, {prefillURL}, mainWindow, !ServerManager.hasServers());
if (modalPromise) { if (modalPromise) {
modalPromise.then((data) => { modalPromise.then((data) => {
let initialLoadURL; let initialLoadURL;
@@ -177,7 +178,7 @@ export function handleShowSettingsModal() {
} }
ModalManager.addModal( ModalManager.addModal(
'settingsModal', ModalConstants.SETTINGS_MODAL,
'mattermost-desktop://renderer/settings.html', 'mattermost-desktop://renderer/settings.html',
getLocalPreload('internalAPI.js'), getLocalPreload('internalAPI.js'),
null, null,

View File

@@ -111,7 +111,7 @@ describe('main/authManager', () => {
host: 'anormalurl', host: 'anormalurl',
}); });
expect(ModalManager.addModal).toBeCalledWith( expect(ModalManager.addModal).toBeCalledWith(
'proxy-anormalurl', 'proxyLoginModal-anormalurl',
expect.any(String), expect.any(String),
expect.any(String), expect.any(String),
expect.any(Object), expect.any(Object),
@@ -124,7 +124,7 @@ describe('main/authManager', () => {
host: 'anormalurl', host: 'anormalurl',
}); });
expect(ModalManager.addModal).toBeCalledWith( expect(ModalManager.addModal).toBeCalledWith(
'login-http://anormalurl.com', 'loginModal-http://anormalurl.com',
expect.any(String), expect.any(String),
expect.any(String), expect.any(String),
expect.any(Object), expect.any(Object),

View File

@@ -2,6 +2,7 @@
// See LICENSE.txt for license information. // See LICENSE.txt for license information.
import type {AuthenticationResponseDetails, AuthInfo, WebContents, Event} from 'electron'; import type {AuthenticationResponseDetails, AuthInfo, WebContents, Event} from 'electron';
import {ModalConstants} from 'common/constants';
import {Logger} from 'common/log'; import {Logger} from 'common/log';
import {BASIC_AUTH_PERMISSION} from 'common/permissions'; import {BASIC_AUTH_PERMISSION} from 'common/permissions';
import {isTrustedURL, parseURL} from 'common/utils/url'; import {isTrustedURL, parseURL} from 'common/utils/url';
@@ -57,7 +58,8 @@ export class AuthManager {
if (!mainWindow) { if (!mainWindow) {
return; return;
} }
const modalPromise = modalManager.addModal<LoginModalData, LoginModalResult>(authInfo.isProxy ? `proxy-${authInfo.host}` : `login-${request.url}`, loginModalHtml, preload, {request, authInfo}, mainWindow); const modalKey = authInfo.isProxy ? `${ModalConstants.PROXY_LOGIN_MODAL}-${authInfo.host}` : `${ModalConstants.LOGIN_MODAL}-${request.url}`;
const modalPromise = modalManager.addModal<LoginModalData, LoginModalResult>(modalKey, loginModalHtml, preload, {request, authInfo}, mainWindow);
if (modalPromise) { if (modalPromise) {
modalPromise.then((data) => { modalPromise.then((data) => {
const {username, password} = data; const {username, password} = data;
@@ -76,7 +78,7 @@ export class AuthManager {
if (!mainWindow) { if (!mainWindow) {
return; return;
} }
const modalPromise = modalManager.addModal(`permission-${request.url}`, permissionModalHtml, preload, {url: request.url, permission}, mainWindow); const modalPromise = modalManager.addModal(`${ModalConstants.PERMISSION_MODAL}-${request.url}`, permissionModalHtml, preload, {url: request.url, permission}, mainWindow);
if (modalPromise) { if (modalPromise) {
modalPromise.then(() => { modalPromise.then(() => {
this.handlePermissionGranted(request.url, permission); this.handlePermissionGranted(request.url, permission);

View File

@@ -3,6 +3,7 @@
import type {Certificate, WebContents, Event} from 'electron'; import type {Certificate, WebContents, Event} from 'electron';
import {ModalConstants} from 'common/constants';
import {Logger} from 'common/log'; import {Logger} from 'common/log';
import type {CertificateModalData} from 'types/certificate'; import type {CertificateModalData} from 'types/certificate';
@@ -45,7 +46,7 @@ export class CertificateManager {
if (!mainWindow) { if (!mainWindow) {
return; return;
} }
const modalPromise = modalManager.addModal<CertificateModalData, CertificateModalResult>(`certificate-${url}`, html, preload, {url, list}, mainWindow); const modalPromise = modalManager.addModal<CertificateModalData, CertificateModalResult>(`${ModalConstants.CERTIFICATE_MODAL}-${url}`, html, preload, {url, list}, mainWindow);
if (modalPromise) { if (modalPromise) {
modalPromise.then((data) => { modalPromise.then((data) => {
const {cert} = data; const {cert} = data;

View File

@@ -10,7 +10,7 @@ import log from 'electron-log';
import ServerViewState from 'app/serverViewState'; import ServerViewState from 'app/serverViewState';
import {OPEN_SERVERS_DROPDOWN, SHOW_NEW_SERVER_MODAL} from 'common/communication'; import {OPEN_SERVERS_DROPDOWN, SHOW_NEW_SERVER_MODAL} from 'common/communication';
import type {Config} from 'common/config'; import type {Config} from 'common/config';
import {DEFAULT_EE_REPORT_PROBLEM_LINK, DEFAULT_TE_REPORT_PROBLEM_LINK} from 'common/constants'; import {DEFAULT_EE_REPORT_PROBLEM_LINK, DEFAULT_TE_REPORT_PROBLEM_LINK, ModalConstants} from 'common/constants';
import ServerManager from 'common/servers/serverManager'; import ServerManager from 'common/servers/serverManager';
import {t} from 'common/utils/util'; import {t} from 'common/utils/util';
import {getViewDisplayName} from 'common/views/View'; import {getViewDisplayName} from 'common/views/View';
@@ -59,7 +59,7 @@ export function createTemplate(config: Config, updateManager: UpdateManager) {
} }
ModalManager.addModal( ModalManager.addModal(
'settingsModal', ModalConstants.SETTINGS_MODAL,
'mattermost-desktop://renderer/settings.html', 'mattermost-desktop://renderer/settings.html',
getLocalPreload('internalAPI.js'), getLocalPreload('internalAPI.js'),
null, null,

View File

@@ -7,6 +7,7 @@ import type {MenuItem, MenuItemConstructorOptions} from 'electron';
import {Menu} from 'electron'; import {Menu} from 'electron';
import ServerViewState from 'app/serverViewState'; import ServerViewState from 'app/serverViewState';
import {ModalConstants} from 'common/constants';
import ServerManager from 'common/servers/serverManager'; import ServerManager from 'common/servers/serverManager';
import {localizeMessage} from 'main/i18nManager'; import {localizeMessage} from 'main/i18nManager';
import {getLocalPreload} from 'main/utils'; import {getLocalPreload} from 'main/utils';
@@ -34,7 +35,7 @@ export function createTemplate() {
} }
ModalManager.addModal( ModalManager.addModal(
'settingsModal', ModalConstants.SETTINGS_MODAL,
'mattermost-desktop://renderer/settings.html', 'mattermost-desktop://renderer/settings.html',
getLocalPreload('internalAPI.js'), getLocalPreload('internalAPI.js'),
null, null,