mirror of
https://github.com/stablyai/orca.git
synced 2026-10-27 00:02:48 +00:00
28 lines
995 B
TypeScript
28 lines
995 B
TypeScript
import { ipcMain } from 'electron'
|
|
import type { Store } from '../persistence'
|
|
import type { WorkspaceSessionPatch, WorkspaceSessionState } from '../../shared/types'
|
|
|
|
export function registerSessionHandlers(store: Store): void {
|
|
ipcMain.handle('session:get', () => {
|
|
return store.getWorkspaceSession()
|
|
})
|
|
|
|
ipcMain.handle('session:set', (_event, args: WorkspaceSessionState) => {
|
|
store.setWorkspaceSession(args)
|
|
})
|
|
|
|
ipcMain.handle('session:patch', (_event, args: WorkspaceSessionPatch) => {
|
|
store.patchWorkspaceSession(args)
|
|
})
|
|
|
|
// Synchronous variant for the renderer's beforeunload handler.
|
|
// sendSync blocks the renderer until this returns, guaranteeing the
|
|
// data (including terminal scrollback buffers) is persisted to disk
|
|
// before the window closes — regardless of before-quit ordering.
|
|
ipcMain.on('session:set-sync', (event, args: WorkspaceSessionState) => {
|
|
store.setWorkspaceSession(args)
|
|
store.flush()
|
|
event.returnValue = true
|
|
})
|
|
}
|