'use client'; import React, { createContext, useContext, useState, useEffect, useCallback, ReactNode } from 'react'; interface PrivacyContextType { /** true = stats and sensitive data are hidden */ privacyMode: boolean; setPrivacyMode: (value: boolean) => void; togglePrivacyMode: () => void; } const PrivacyContext = createContext(undefined); // Same key the old per-page useStatsPrivacy hook used ('true' = hidden), so // existing operators keep their saved preference. const STORAGE_KEY = 'spanglish-admin-stats-hidden'; export function PrivacyProvider({ children }: { children: ReactNode }) { const [privacyMode, setPrivacyModeState] = useState(false); useEffect(() => { try { const stored = localStorage.getItem(STORAGE_KEY); if (stored !== null) { setPrivacyModeState(stored === 'true'); } } catch { // localStorage unavailable (private mode etc.) - keep default } }, []); const setPrivacyMode = useCallback((value: boolean) => { setPrivacyModeState(value); try { localStorage.setItem(STORAGE_KEY, String(value)); } catch { // ignore } }, []); const togglePrivacyMode = useCallback(() => { setPrivacyModeState((prev) => { const next = !prev; try { localStorage.setItem(STORAGE_KEY, String(next)); } catch { // ignore } return next; }); }, []); return ( {children} ); } export function usePrivacy() { const context = useContext(PrivacyContext); if (context === undefined) { throw new Error('usePrivacy must be used within a PrivacyProvider'); } return context; }