Something went wrong. Try again.
source dump of claude code forked from oppi.li/claude-code
Something went wrong. Try again.
716 B · 21 lines
TypeScript
at main
12345678910111213141516171819202122import { useCallback, useEffect, useMemo, useSyncExternalStore } from 'react'import { useMailbox } from '../context/mailbox.js'
type Props = { isLoading: boolean onSubmitMessage: (content: string) => boolean}
export function useMailboxBridge({ isLoading, onSubmitMessage }: Props): void { const mailbox = useMailbox()
const subscribe = useMemo(() => mailbox.subscribe.bind(mailbox), [mailbox]) const getSnapshot = useCallback(() => mailbox.revision, [mailbox]) const revision = useSyncExternalStore(subscribe, getSnapshot)
useEffect(() => { if (isLoading) return const msg = mailbox.poll() if (msg) onSubmitMessage(msg.content) }, [isLoading, revision, mailbox, onSubmitMessage])}