preload.cjs 1.7 KB

12345678910111213141516171819202122232425262728
  1. const { contextBridge, ipcRenderer } = require('electron')
  2. contextBridge.exposeInMainWorld('yaoyaoDesktop', Object.freeze({
  3. unreadState: account => ipcRenderer.invoke('desktop:unread-state', account),
  4. status: () => ipcRenderer.invoke('desktop:status'),
  5. selectServer: mode => ipcRenderer.invoke('desktop:onboarding-select', mode),
  6. prepareServer: input => ipcRenderer.invoke('desktop:onboarding-prepare', input),
  7. login: input => ipcRenderer.invoke('desktop:onboarding-submit', input),
  8. openLogin: () => ipcRenderer.invoke('desktop:open-login'),
  9. forgetLogin: () => ipcRenderer.invoke('desktop:forget-login'),
  10. retry: () => ipcRenderer.invoke('desktop:retry'),
  11. forceSync: () => ipcRenderer.invoke('desktop:force-sync'),
  12. logs: () => ipcRenderer.invoke('desktop:logs'),
  13. openUpdates: () => ipcRenderer.invoke('desktop:updates'),
  14. modeState: () => ipcRenderer.invoke('desktop:mode-state'),
  15. switchMode: mode => ipcRenderer.invoke('desktop:mode-switch', mode),
  16. openRemoteLogin: () => ipcRenderer.invoke('desktop:remote-login'),
  17. authorizeComputer: csrfToken => ipcRenderer.invoke('desktop:computer-authorize', csrfToken),
  18. /** 'local' on the YaoYao server Mac; paired host uuid in remote mode; null if unknown. */
  19. deviceHost: () => ipcRenderer.invoke('desktop:device-host'),
  20. openComputer: (id, target) => ipcRenderer.invoke('desktop-computer:open', id, target),
  21. computerTargetChanged: target => ipcRenderer.invoke('desktop-computer:target', target),
  22. computerClosed: () => ipcRenderer.invoke('desktop-computer:closed'),
  23. onComputerClose: callback => {
  24. const listener = () => callback()
  25. ipcRenderer.on('desktop-computer:request-close', listener)
  26. return () => ipcRenderer.removeListener('desktop-computer:request-close', listener)
  27. },
  28. }))