// 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"), });