Windows and save presence URLs

This commit is contained in:
Samuel Elliott 2022-06-09 17:14:56 +01:00
parent c6a91b74dc
commit 49ee4f87b5
No known key found for this signature in database
GPG Key ID: 8420C7CDE43DC4D6
4 changed files with 18 additions and 14 deletions

2
.vscode/launch.json vendored
View File

@ -14,7 +14,7 @@
"runtimeExecutable": "${workspaceFolder}/node_modules/electron/dist/Electron.app/Contents/MacOS/Electron"
},
"windows": {
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
"runtimeExecutable": "${workspaceFolder}/node_modules/electron/dist/electron.exe"
},
"args": [
"dist/app/main/app-entry.cjs"

View File

@ -161,13 +161,13 @@ export class Store extends EventEmitter {
});
}
if (monitor.presence_user && !state.discord_presence) {
if (monitor.presence_enabled && !state.discord_presence) {
state.discord_presence = monitor instanceof EmbeddedProxyPresenceMonitor ? {
url: monitor.presence_url,
} : {
na_id: monitor.data.user.id,
friend_nsa_id: monitor.presence_user === monitor.data.nsoAccount.user.nsaId ? undefined :
monitor.presence_user,
monitor.presence_user ?? undefined,
};
}
}
@ -207,5 +207,14 @@ export class Store extends EventEmitter {
err instanceof Error ? err.stack ?? err.message : err as any);
}
}
if (state.discord_presence && 'url' in state.discord_presence) {
try {
await monitors.startUrl(state.discord_presence.url);
} catch (err) {
dialog.showErrorBox('Error restoring monitor for presence URL ' + state.discord_presence.url,
err instanceof Error ? err.stack ?? err.message : err as any);
}
}
}
}

View File

@ -76,6 +76,8 @@ export function setupIpc(appinstance: App, ipcMain: IpcMain) {
parent: BrowserWindow.fromWebContents(e.sender) ?? undefined,
modal: true,
show: false,
maximizable: false,
minimizable: false,
width: 560,
height: 300,
minWidth: 450,
@ -87,6 +89,8 @@ export function setupIpc(appinstance: App, ipcMain: IpcMain) {
parent: BrowserWindow.fromWebContents(e.sender) ?? undefined,
modal: true,
show: false,
maximizable: false,
minimizable: false,
width: 560,
height: 300,
minWidth: 450,

View File

@ -6,8 +6,8 @@ import { bundlepath } from './util.js';
import { app_menu, createWindowMenu } from './app-menu.js';
import { WebService } from '../../api/znc-types.js';
const windows = new Map<WebContents, WindowConfiguration>();
const menus = new Map<BrowserWindow, Menu>();
const windows = new WeakMap<WebContents, WindowConfiguration>();
const menus = new WeakMap<BrowserWindow, Menu>();
app.on('browser-window-focus', (event, window) => {
Menu.setApplicationMenu(menus.get(window) ?? app_menu);
@ -44,11 +44,6 @@ export function createWindow<T extends WindowType>(
windows.set(window.webContents, data);
menus.set(window, createWindowMenu(window));
window.on('closed', () => {
windows.delete(window.webContents);
menus.delete(window);
});
window.loadFile(path.join(bundlepath, 'index.html'));
if (dev) window.webContents.openDevTools();
@ -85,9 +80,5 @@ export function createWebServiceWindow(nsa_id: string, webservice: WebService, t
menus.set(window, createWindowMenu(window));
window.on('closed', () => {
menus.delete(window);
});
return window;
}