theseus/js-dialog-preload.js

9 lines
541 B
JavaScript
Raw Normal View History

// Preload for the page-dialog overlay (js-dialog.html): the Theseus-drawn
// replacement for a page's alert / confirm / prompt. Main pushes one request
// at a time via `jsdialog-show`; the page answers with `jsdialog-answer`.
const { contextBridge, ipcRenderer } = require("electron");
contextBridge.exposeInMainWorld("jsdialog", {
onShow: (cb) => ipcRenderer.on("jsdialog-show", (_e, req) => cb(req)),
answer: (reqId, ok, value) => ipcRenderer.invoke("jsdialog-answer", reqId, !!ok, value == null ? null : String(value)),
});