31 lines
1.6 KiB
JavaScript
31 lines
1.6 KiB
JavaScript
// Bridge for the sidebar. The sidebar never touches Node directly.
|
|
|
|
const { contextBridge, ipcRenderer } = require("electron");
|
|
|
|
contextBridge.exposeInMainWorld("api", {
|
|
onState: (cb) => ipcRenderer.on("state", (_e, s) => cb(s)),
|
|
onError: (cb) => ipcRenderer.on("account:error", (_e, e) => cb(e)),
|
|
|
|
getState: () => ipcRenderer.invoke("get-state"),
|
|
activate: (id) => ipcRenderer.invoke("activate", id),
|
|
reload: (id) => ipcRenderer.invoke("reload", id),
|
|
addAccount: (instanceId) => ipcRenderer.invoke("add-account", instanceId),
|
|
removeAccount: (id) => ipcRenderer.invoke("remove-account", id),
|
|
renameAccount: (id, label) => ipcRenderer.invoke("rename-account", { id, label }),
|
|
setAccountInstance: (id, instanceId) =>
|
|
ipcRenderer.invoke("set-account-instance", { id, instanceId }),
|
|
focusAlert: (accountId) => ipcRenderer.invoke("focus-alert", accountId),
|
|
signIn: (id) => ipcRenderer.invoke("signin", id),
|
|
signOut: (id) => ipcRenderer.invoke("signout", id),
|
|
signInAll: () => ipcRenderer.invoke("signin-all"),
|
|
signOutAll: () => ipcRenderer.invoke("signout-all"),
|
|
credsList: () => ipcRenderer.invoke("creds:list"),
|
|
credsSave: (entries, opts) => ipcRenderer.invoke("creds:save", entries, opts),
|
|
setStatus: (id, kind) => ipcRenderer.invoke("set-status", { id, kind }),
|
|
setStatusAll: (kind) => ipcRenderer.invoke("set-status-all", kind),
|
|
onToast: (cb) => ipcRenderer.on("toast", (_e, t) => cb(t)),
|
|
onMenuAction: (cb) => ipcRenderer.on("menu:action", (_e, a) => cb(a)),
|
|
showAccountMenu: (id) => ipcRenderer.send("show-account-menu", id),
|
|
showInstanceMenu: () => ipcRenderer.invoke("show-instance-menu"),
|
|
});
|