Files
ipv6-sims/app/context/LanguageContext.tsx

42 lines
919 B
TypeScript

"use client";
import React, { createContext, useContext, useEffect, useState } from "react";
export type Lang = "en" | "vi";
interface LanguageContextValue {
lang: Lang;
setLang: (l: Lang) => void;
}
const LanguageContext = createContext<LanguageContextValue>({
lang: "vi",
setLang: () => {},
});
export function LanguageProvider({ children }: { children: React.ReactNode }) {
const [lang, setLangState] = useState<Lang>("vi");
useEffect(() => {
const saved = localStorage.getItem("ipv6_lang") as Lang | null;
if (saved === "vi" || saved === "en") {
setLangState(saved);
}
}, []);
const setLang = (l: Lang) => {
setLangState(l);
localStorage.setItem("ipv6_lang", l);
};
return (
<LanguageContext.Provider value={{ lang, setLang }}>
{children}
</LanguageContext.Provider>
);
}
export function useLanguage() {
return useContext(LanguageContext);
}