import { createContext, useContext, type ReactNode } from 'react'; import { RechargeModal } from '../components/RechargeModal'; import { useTKMindChat } from '../hooks/useTKMindChat'; import type { CapabilityMap, PortalUser } from '../types'; type ChatContextValue = ReturnType; const ChatContext = createContext(null); export function ChatProvider({ user, capabilities, onUserUpdate, children, }: { user?: PortalUser | null; capabilities?: CapabilityMap | null; onUserUpdate?: (user: PortalUser) => void; children: ReactNode; }) { const chat = useTKMindChat(user, onUserUpdate, capabilities); return ( {children} {typeof chat.balanceCents === 'number' && chat.rechargePrompt && ( { chat.completeRecharge(nextBalance); }} /> )} ); } export function useChat(): ChatContextValue { const value = useContext(ChatContext); if (!value) { throw new Error('useChat must be used within ChatProvider'); } return value; }