save auto-launch option, disable shortcuts in settings
This commit is contained in:
@@ -3,7 +3,7 @@ import electronIsDev from "electron-is-dev";
|
||||
import { createAndShowNotification } from "./notification";
|
||||
import { Server } from "./preload-local-app/types";
|
||||
import settings, { SettingsData } from "./settings";
|
||||
import { loadShortcuts, saveShortcut } from "./shortcuts";
|
||||
import { loadShortcuts, saveShortcut, setShortcutsEnabled } from "./shortcuts";
|
||||
import { getWindow, hideAppView, showAppView } from "./window";
|
||||
|
||||
export function emitMuteToggle() {
|
||||
@@ -92,10 +92,14 @@ export default () => {
|
||||
return true;
|
||||
});
|
||||
|
||||
ipcMain.handle("local-app:reloadShortcuts", (event, shortcut, key) => loadShortcuts());
|
||||
ipcMain.handle("local-app:reloadShortcuts", (event) => loadShortcuts());
|
||||
|
||||
ipcMain.handle("local-app:getSettings", (event) => settings.get() || {});
|
||||
ipcMain.handle("local-app:saveSetting", <T extends keyof SettingsData>(event, key: T, value: SettingsData[T]) =>
|
||||
settings.set(key, value)
|
||||
ipcMain.handle(
|
||||
"local-app:saveSetting",
|
||||
<T extends keyof SettingsData>(event: Electron.IpcMainInvokeEvent, key: T, value: SettingsData[T]) =>
|
||||
settings.set(key, value)
|
||||
);
|
||||
|
||||
ipcMain.handle("local-app:setShortcutsEnabled", (event, enabled: boolean) => setShortcutsEnabled(enabled));
|
||||
};
|
||||
|
||||
@@ -12,7 +12,8 @@ const api: WorkAdventureLocalAppApi = {
|
||||
removeServer: (serverId) => ipcRenderer.invoke("local-app:removeServer", serverId),
|
||||
reloadShortcuts: () => ipcRenderer.invoke("local-app:reloadShortcuts"),
|
||||
getSettings: () => ipcRenderer.invoke("local-app:getSettings"),
|
||||
saveSetting: (key, value) => ipcRenderer.invoke("local-app:setSetting", key, value),
|
||||
saveSetting: (key, value) => ipcRenderer.invoke("local-app:saveSetting", key, value),
|
||||
setShortcutsEnabled: (enabled) => ipcRenderer.invoke("local-app:setShortcutsEnabled", enabled),
|
||||
};
|
||||
|
||||
contextBridge.exposeInMainWorld("WorkAdventureDesktopApi", api);
|
||||
|
||||
@@ -20,4 +20,5 @@ export type WorkAdventureLocalAppApi = {
|
||||
reloadShortcuts: () => Promise<void>;
|
||||
getSettings: () => Promise<SettingsData>;
|
||||
saveSetting: <T extends keyof SettingsData>(key: T, value: SettingsData[T]) => Promise<void>;
|
||||
setShortcutsEnabled: (enabled: boolean) => Promise<void>;
|
||||
};
|
||||
|
||||
@@ -1,6 +1,15 @@
|
||||
import { globalShortcut } from "electron";
|
||||
import settings, { SettingsData } from "./settings";
|
||||
import { emitCameraToggle, emitMuteToggle } from "./ipc";
|
||||
import { createAndShowNotification } from "./notification";
|
||||
|
||||
export function setShortcutsEnabled(enabled: boolean) {
|
||||
if (enabled) {
|
||||
loadShortcuts();
|
||||
} else {
|
||||
globalShortcut.unregisterAll();
|
||||
}
|
||||
}
|
||||
|
||||
export function loadShortcuts() {
|
||||
globalShortcut.unregisterAll();
|
||||
@@ -11,12 +20,14 @@ export function loadShortcuts() {
|
||||
if (shortcuts?.mute_toggle && shortcuts.mute_toggle.length > 0) {
|
||||
globalShortcut.register(shortcuts.mute_toggle, () => {
|
||||
emitMuteToggle();
|
||||
createAndShowNotification({ body: "Toggled mute" }); // TODO
|
||||
});
|
||||
}
|
||||
|
||||
if (shortcuts?.camera_toggle && shortcuts.camera_toggle.length > 0) {
|
||||
globalShortcut.register(shortcuts.camera_toggle, () => {
|
||||
emitCameraToggle();
|
||||
createAndShowNotification({ body: "Toggled camera" }); // TODO
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user