import { createContext, useContext, useState, ReactNode } from 'react'; import type { Language } from '../i18n/translations'; interface LanguageContextType { language: Language; setLanguage: (lang: Language) => void; } const LanguageContext = createContext(undefined); export function LanguageProvider({ children }: { children: ReactNode }) { // Initialize language from localStorage or default to English const [language, setLanguage] = useState(() => { const saved = localStorage.getItem('language'); return (saved === 'en' || saved === 'zh') ? saved : 'en'; }); // Save language to localStorage whenever it changes const handleSetLanguage = (lang: Language) => { setLanguage(lang); localStorage.setItem('language', lang); }; return ( {children} ); } export function useLanguage() { const context = useContext(LanguageContext); if (!context) { throw new Error('useLanguage must be used within LanguageProvider'); } return context; }