Files
codeg/src/contexts/session-stats-context.tsx
2026-03-06 22:56:13 +08:00

36 lines
903 B
TypeScript

"use client"
import { createContext, useContext, useState, useCallback } from "react"
import type { SessionStats } from "@/lib/types"
interface SessionStatsContextValue {
sessionStats: SessionStats | null
setSessionStats: (stats: SessionStats | null) => void
}
const SessionStatsContext = createContext<SessionStatsContextValue>({
sessionStats: null,
setSessionStats: () => {},
})
export function SessionStatsProvider({
children,
}: {
children: React.ReactNode
}) {
const [sessionStats, setSessionStatsRaw] = useState<SessionStats | null>(null)
const setSessionStats = useCallback(
(stats: SessionStats | null) => setSessionStatsRaw(stats),
[]
)
return (
<SessionStatsContext.Provider value={{ sessionStats, setSessionStats }}>
{children}
</SessionStatsContext.Provider>
)
}
export function useSessionStats() {
return useContext(SessionStatsContext)
}