import { createContext, useCallback, useContext, useMemo, useState, type ReactNode, } from "react"; export type HubEntry = { user: string; snippet: string; score: number; action: string; }; type AppContextValue = { threshold: number; setThreshold: (v: number) => void; hubHistory: HubEntry[]; addHubEntry: (entry: HubEntry) => void; }; const AppContext = createContext(null); export function AppProvider({ children }: { children: ReactNode }) { const [threshold, setThreshold] = useState(0.381); const [hubHistory, setHubHistory] = useState([]); const addHubEntry = useCallback((entry: HubEntry) => { setHubHistory((prev) => [entry, ...prev].slice(0, 100)); }, []); const value = useMemo( () => ({ threshold, setThreshold, hubHistory, addHubEntry, }), [threshold, hubHistory, addHubEntry] ); return {children}; } export function useApp() { const ctx = useContext(AppContext); if (!ctx) throw new Error("useApp must be used within AppProvider"); return ctx; }