claude-code-best/src/context/mailbox.tsx
2026-05-01 21:39:30 +08:00

22 lines
650 B
TypeScript

import React, { createContext, useContext, useMemo } from 'react';
import { Mailbox } from '../utils/mailbox.js';
const MailboxContext = createContext<Mailbox | undefined>(undefined);
type Props = {
children: React.ReactNode;
};
export function MailboxProvider({ children }: Props): React.ReactNode {
const mailbox = useMemo(() => new Mailbox(), []);
return <MailboxContext.Provider value={mailbox}>{children}</MailboxContext.Provider>;
}
export function useMailbox(): Mailbox {
const mailbox = useContext(MailboxContext);
if (!mailbox) {
throw new Error('useMailbox must be used within a MailboxProvider');
}
return mailbox;
}