cc-haha/desktop/src/lib/previewEvents.ts
程序员阿江(Relakkes) 5d02f4c4e7 feat(desktop): subscribe preview bridge events into browser store
Routes preview://event (navigated/ready) from Rust into the browser store via a new subscribePreviewEvents subscriber; adds title field and setNavigated/setReady reducers to BrowserSessionState; BrowserSurface subscribes on mount to replace M1 optimistic nav-state.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 17:40:45 +08:00

14 lines
638 B
TypeScript

import { listen } from '@tauri-apps/api/event'
import { useBrowserPanelStore } from '../stores/browserPanelStore'
export async function subscribePreviewEvents(sessionId: string): Promise<() => void> {
return listen<string>('preview://event', (e) => {
let msg: { type?: string; url?: string; title?: string }
try { msg = JSON.parse(e.payload) } catch { return }
const store = useBrowserPanelStore.getState()
if (msg.type === 'navigated' && msg.url) store.setNavigated(sessionId, msg.url, msg.title ?? '')
else if (msg.type === 'ready') store.setReady(sessionId)
// selection / screenshot 在 M4/M5 接入
})
}