| 1 | import { browserElementDrafts } from "../lib/browserElementDrafts"; |
| 2 | export function attachBrowserComposer(taskId: string, sessionId: string, deliver: (text: string) => void) { |
| 3 | const key = JSON.stringify([taskId, sessionId]); |
| 4 | const receive = () => { const draft = browserElementDrafts.getState().pending[key]; if (draft) { browserElementDrafts.getState().remove(key); deliver(draft.text); } }; |
| 5 | browserElementDrafts.setState({ target: { taskId, sessionId } }); |
| 6 | const off = browserElementDrafts.subscribe(receive); receive(); |
| 7 | return () => { off(); const target = browserElementDrafts.getState().target; if (target?.taskId === taskId && target.sessionId === sessionId) browserElementDrafts.setState({ target: undefined }); }; |
| 8 | } |
| 9 |