const { contextBridge, ipcRenderer } = require('electron'); contextBridge.exposeInMainWorld('electron', { createView: (name, url, imageUrl, zoom, useProxy) => ipcRenderer.send('create-view', name, url, imageUrl, zoom, useProxy), confirm: (text, funcName) => ipcRenderer.send('confirm', text, funcName), removeView: (name) => ipcRenderer.send('remove-view', name), hideView: () => ipcRenderer.send('hide-view'), showView: (name) => ipcRenderer.send('show-view', name), adjustView: (expanded) => ipcRenderer.send('adjust-view', expanded), on: (channel, func) => { const listener = (_event, ...args) => func(...args); ipcRenderer.on(channel, listener); return () => ipcRenderer.removeListener(channel, listener); }, handleAction: (action) => ipcRenderer.send('action', action), setProxy: (host, port) => ipcRenderer.send('set-proxy', host, port), expandWithHeader: () => ipcRenderer.send('expandWithHeader'), collapseWithHeader: () => ipcRenderer.send('collapseWithHeader'), backwardPage: () => ipcRenderer.send('backwardPage'), forwardPage: () => ipcRenderer.send('forwardPage'), refreshPage: () => ipcRenderer.send('refreshPage'), getCurrentPage: () => ipcRenderer.invoke('get-current-page'), readConfig: () => ipcRenderer.invoke('read-config'), writeConfig: (data) => ipcRenderer.send('write-config', data), searchMovies: (query, sites) => ipcRenderer.invoke('search-movies', query, sites), searchTmdb: (query, apiKey) => ipcRenderer.invoke('search-tmdb', query, apiKey), discoverTmdb: (params) => ipcRenderer.invoke('discover-tmdb', params), });