[MM-50485] Migrate app to ServerManager, remove view names and replace with IDs (#2672)

* Migrate app to ServerManager, remove view names and replace with IDs

* Fixed a test

* Fixed a bug when adding the initial server

* Merge'd

* Bug fixes and PR feedback
This commit is contained in:
Devin Binnie
2023-04-12 12:52:34 -04:00
committed by GitHub
parent d87097b1eb
commit 686b4ac9f1
58 changed files with 1570 additions and 2175 deletions

View File

@@ -25,8 +25,7 @@ import {
BROWSER_HISTORY_PUSH,
APP_LOGGED_IN,
APP_LOGGED_OUT,
GET_VIEW_NAME,
GET_VIEW_WEBCONTENTS_ID,
GET_VIEW_INFO_FOR_TEST,
DISPATCH_GET_DESKTOP_SOURCES,
DESKTOP_SOURCES_RESULT,
VIEW_FINISHED_RESIZING,
@@ -45,15 +44,14 @@ const CLEAR_CACHE_INTERVAL = 6 * 60 * 60 * 1000; // 6 hours
let appVersion;
let appName;
let sessionExpired;
let viewName;
let viewId;
let shouldSendNotifications;
console.log('Preload initialized');
if (process.env.NODE_ENV === 'test') {
contextBridge.exposeInMainWorld('testHelper', {
getViewName: () => ipcRenderer.invoke(GET_VIEW_NAME),
getWebContentsId: () => ipcRenderer.invoke(GET_VIEW_WEBCONTENTS_ID),
getViewInfoForTest: () => ipcRenderer.invoke(GET_VIEW_INFO_FOR_TEST),
});
}
@@ -92,8 +90,8 @@ window.addEventListener('load', () => {
return;
}
watchReactAppUntilInitialized(() => {
ipcRenderer.send(REACT_APP_INITIALIZED, viewName);
ipcRenderer.send(BROWSER_HISTORY_BUTTON, viewName);
ipcRenderer.send(REACT_APP_INITIALIZED, viewId);
ipcRenderer.send(BROWSER_HISTORY_BUTTON, viewId);
});
});
@@ -152,27 +150,27 @@ window.addEventListener('message', ({origin, data = {}} = {}) => {
}
case 'browser-history-push': {
const {path} = message;
ipcRenderer.send(BROWSER_HISTORY_PUSH, viewName, path);
ipcRenderer.send(BROWSER_HISTORY_PUSH, viewId, path);
break;
}
case 'history-button': {
ipcRenderer.send(BROWSER_HISTORY_BUTTON, viewName);
ipcRenderer.send(BROWSER_HISTORY_BUTTON, viewId);
break;
}
case 'get-desktop-sources': {
ipcRenderer.send(DISPATCH_GET_DESKTOP_SOURCES, viewName, message);
ipcRenderer.send(DISPATCH_GET_DESKTOP_SOURCES, viewId, message);
break;
}
case CALLS_JOIN_CALL: {
ipcRenderer.send(CALLS_JOIN_CALL, viewName, message);
ipcRenderer.send(CALLS_JOIN_CALL, viewId, message);
break;
}
case CALLS_WIDGET_SHARE_SCREEN: {
ipcRenderer.send(CALLS_WIDGET_SHARE_SCREEN, viewName, message);
ipcRenderer.send(CALLS_WIDGET_SHARE_SCREEN, viewId, message);
break;
}
case CALLS_LEAVE_CALL: {
ipcRenderer.send(CALLS_LEAVE_CALL, viewName, message);
ipcRenderer.send(CALLS_LEAVE_CALL, viewId, message);
break;
}
}
@@ -202,12 +200,12 @@ const findUnread = (favicon) => {
const result = document.getElementsByClassName(classPair);
return result && result.length > 0;
});
ipcRenderer.send(UNREAD_RESULT, favicon, viewName, isUnread);
ipcRenderer.send(UNREAD_RESULT, favicon, viewId, isUnread);
};
ipcRenderer.on(IS_UNREAD, (event, favicon, server) => {
if (typeof viewName === 'undefined') {
viewName = server;
if (typeof viewId === 'undefined') {
viewId = server;
}
if (isReactAppInitialized()) {
findUnread(favicon);
@@ -219,13 +217,13 @@ ipcRenderer.on(IS_UNREAD, (event, favicon, server) => {
});
ipcRenderer.on(SET_VIEW_OPTIONS, (_, name, shouldNotify) => {
viewName = name;
viewId = name;
shouldSendNotifications = shouldNotify;
});
function getUnreadCount() {
// LHS not found => Log out => Count should be 0, but session may be expired.
if (typeof viewName !== 'undefined') {
if (typeof viewId !== 'undefined') {
let isExpired;
if (document.getElementById('sidebar-left') === null) {
const extraParam = (new URLSearchParams(window.location.search)).get('extra');
@@ -235,7 +233,7 @@ function getUnreadCount() {
}
if (isExpired !== sessionExpired) {
sessionExpired = isExpired;
ipcRenderer.send(SESSION_EXPIRED, sessionExpired, viewName);
ipcRenderer.send(SESSION_EXPIRED, sessionExpired, viewId);
}
}
}
@@ -308,10 +306,10 @@ ipcRenderer.on(BROWSER_HISTORY_BUTTON, (event, enableBack, enableForward) => {
window.addEventListener('storage', (e) => {
if (e.key === '__login__' && e.storageArea === localStorage && e.newValue) {
ipcRenderer.send(APP_LOGGED_IN, viewName);
ipcRenderer.send(APP_LOGGED_IN, viewId);
}
if (e.key === '__logout__' && e.storageArea === localStorage && e.newValue) {
ipcRenderer.send(APP_LOGGED_OUT, viewName);
ipcRenderer.send(APP_LOGGED_OUT, viewId);
}
});