"use client" import { createContext, useContext, useEffect, useMemo, useState } from "react" type AudienceMode = "research" | "policy" interface AudienceModeContextValue { mode: AudienceMode setMode: (mode: AudienceMode) => void } const AudienceModeContext = createContext(null) const STORAGE_KEY = "eval-cards-audience-mode" export function AudienceModeProvider({ children }: { children: React.ReactNode }) { const [mode, setModeState] = useState("research") useEffect(() => { const storedMode = window.localStorage.getItem(STORAGE_KEY) if (storedMode === "research" || storedMode === "policy") { setModeState(storedMode) } }, []) const setMode = (nextMode: AudienceMode) => { setModeState(nextMode) window.localStorage.setItem(STORAGE_KEY, nextMode) } const value = useMemo(() => ({ mode, setMode }), [mode]) return ( {children} ) } export function useAudienceMode() { const context = useContext(AudienceModeContext) if (!context) { throw new Error("useAudienceMode must be used within an AudienceModeProvider") } return context }