import { createContext, useContext, useState, ReactNode, useEffect } from 'react'; type Language = 'en' | 'ar'; interface LanguageContextType { language: Language; setLanguage: (lang: Language) => void; isRTL: boolean; } const LanguageContext = createContext(undefined); export function LanguageProvider({ children }: { children: ReactNode }) { const [language, setLanguageState] = useState(() => { const saved = localStorage.getItem('appLanguage'); return (saved === 'ar' || saved === 'en') ? saved : 'en'; }); const setLanguage = (lang: Language) => { setLanguageState(lang); localStorage.setItem('appLanguage', lang); }; useEffect(() => { // Update document direction and lang attribute document.documentElement.dir = language === 'ar' ? 'rtl' : 'ltr'; document.documentElement.lang = language; }, [language]); const isRTL = language === 'ar'; return ( {children} ); } export function useLanguage() { const context = useContext(LanguageContext); if (context === undefined) { throw new Error('useLanguage must be used within a LanguageProvider'); } return context; }