'use client'; import React, { createContext, useContext, useState, useEffect, ReactNode } from 'react'; import { Language } from './translations'; interface LanguageContextType { language: Language; setLanguage: (lang: Language) => void; } const LanguageContext = createContext(undefined); const LANGUAGE_STORAGE_KEY = 'shahi-kitchen-language'; export function LanguageProvider({ children }: { children: ReactNode }) { const [language, setLanguageState] = useState('en'); // Load language from localStorage on mount useEffect(() => { const savedLang = localStorage.getItem(LANGUAGE_STORAGE_KEY) as Language | null; if (savedLang && ['en', 'sv', 'hi', 'ur'].includes(savedLang)) { setLanguageState(savedLang); } else { // Optional: Try to detect browser language const browserLang = navigator.language.toLowerCase(); if (browserLang.startsWith('sv')) setLanguageState('sv'); else if (browserLang.startsWith('hi')) setLanguageState('hi'); else if (browserLang.startsWith('ur')) setLanguageState('ur'); } }, []); const setLanguage = (lang: Language) => { setLanguageState(lang); localStorage.setItem(LANGUAGE_STORAGE_KEY, lang); }; return ( {children} ); } export function useLanguage() { const context = useContext(LanguageContext); if (context === undefined) { throw new Error('useLanguage must be used within a LanguageProvider'); } return context; }