setup electron multi-window architecture (#102)
* prototype with two windows * use deps in separate window render process * enhance autoplay into desktop overlay * fix: autoplay window not applying tailwind styles
This commit was merged in pull request #102.
This commit is contained in:
@@ -7,6 +7,24 @@ contextBridge.exposeInMainWorld('electronWindow', {
|
||||
maximize: () => ipcRenderer.send('window:maximize'),
|
||||
fullscreen: () => ipcRenderer.send('window:fullscreen'),
|
||||
close: () => ipcRenderer.send('window:close'),
|
||||
openHuddle: () => ipcRenderer.send('window:open-huddle'),
|
||||
closeHuddle: () => ipcRenderer.send('window:close-huddle'),
|
||||
});
|
||||
|
||||
contextBridge.exposeInMainWorld('electronAutoplay', {
|
||||
play: (payload: unknown) => ipcRenderer.send('autoplay:play', payload),
|
||||
dismiss: () => ipcRenderer.send('autoplay:dismiss'),
|
||||
navigate: (data: { networkId: string; streamId: string }) => ipcRenderer.send('autoplay:navigate', data),
|
||||
onPlay: (callback: (payload: unknown) => void) => {
|
||||
const handler = (_event: Electron.IpcRendererEvent, payload: unknown) => callback(payload);
|
||||
ipcRenderer.on('autoplay:play', handler);
|
||||
return () => { ipcRenderer.removeListener('autoplay:play', handler); };
|
||||
},
|
||||
onNavigate: (callback: (data: { networkId: string; streamId: string }) => void) => {
|
||||
const handler = (_event: Electron.IpcRendererEvent, data: { networkId: string; streamId: string }) => callback(data);
|
||||
ipcRenderer.on('autoplay:navigate', handler);
|
||||
return () => { ipcRenderer.removeListener('autoplay:navigate', handler); };
|
||||
},
|
||||
});
|
||||
|
||||
contextBridge.exposeInMainWorld('electronLink', {
|
||||
|
||||
Reference in New Issue
Block a user