33 lines
877 B
TypeScript
33 lines
877 B
TypeScript
"use client"
|
|
|
|
import { createContext, useContext, useState, type ReactNode } from "react"
|
|
import { translations } from "@/lib/translations"
|
|
|
|
type Language = "en" | "uz" | "ru"
|
|
|
|
interface LanguageContextType {
|
|
language: Language
|
|
setLanguage: (lang: Language) => void
|
|
t: (typeof translations)[Language]
|
|
}
|
|
|
|
const LanguageContext = createContext<LanguageContextType | undefined>(undefined)
|
|
|
|
export function LanguageProvider({ children }: { children: ReactNode }) {
|
|
const [language, setLanguage] = useState<Language>("uz")
|
|
|
|
return (
|
|
<LanguageContext.Provider value={{ language, setLanguage, t: translations[language] }}>
|
|
{children}
|
|
</LanguageContext.Provider>
|
|
)
|
|
}
|
|
|
|
export function useLanguage() {
|
|
const context = useContext(LanguageContext)
|
|
if (!context) {
|
|
throw new Error("useLanguage must be used within LanguageProvider")
|
|
}
|
|
return context
|
|
}
|