- Switch prompt window preload path to dirname(import.meta.url) so the unpacked preload resolves correctly in packaged (app.asar) builds. - Load prompt window from a temp file instead of a data: URL; sandboxed preload + file:// origin works more reliably with Electron's security model than an inline data: document. - Add renderer error logging through the preload bridge and guard against a missing API object. - Render a visible scale handle inside the pet shell; add CSS so it is grabbable, pointer-events-enabled, and not clipped. - Add keyboard arrow nudges (up/down/left/right) to adjust pet scale when the pet window is focused, with a debounced commit. Refs: v3.1.0-integrated follow-up
16 lines
1 KiB
JavaScript
16 lines
1 KiB
JavaScript
const { contextBridge, ipcRenderer } = require("electron");
|
|
|
|
const api = {
|
|
getState: () => ipcRenderer.invoke("openpets:prompt-window-state"),
|
|
submitPrompt: (prompt) => ipcRenderer.invoke("openpets:prompt-window-submit", prompt),
|
|
resetConversation: () => ipcRenderer.invoke("openpets:prompt-window-reset-conversation"),
|
|
createConversation: () => ipcRenderer.invoke("openpets:prompt-window-create-conversation"),
|
|
switchConversation: (conversationId) => ipcRenderer.invoke("openpets:prompt-window-switch-conversation", conversationId),
|
|
deleteConversation: (conversationId) => ipcRenderer.invoke("openpets:prompt-window-delete-conversation", conversationId),
|
|
openSettings: () => ipcRenderer.invoke("openpets:prompt-window-open-settings"),
|
|
resizeWindow: (bounds) => ipcRenderer.invoke("openpets:prompt-window-resize", bounds),
|
|
close: () => ipcRenderer.invoke("openpets:prompt-window-close"),
|
|
log: (level, message) => ipcRenderer.send("openpets:prompt-window-log", level, message),
|
|
};
|
|
|
|
contextBridge.exposeInMainWorld("openPetsPromptWindow", api);
|