-
Notifications
You must be signed in to change notification settings - Fork 37
/
Copy pathLanguageContext.tsx
33 lines (26 loc) Β· 956 Bytes
/
LanguageContext.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
"use client";
import React, { createContext, useContext, useState, useEffect } from "react";
interface LanguageContextType {
preferredLanguage: string;
setPreferredLanguage: (language: string) => void;
}
const LanguageContext = createContext<LanguageContextType | undefined>(undefined);
export function LanguageProvider({ children }: { children: React.ReactNode }) {
const [preferredLanguage, setPreferredLanguage] = useState("cpp");
useEffect(() => {
const savedLanguage = localStorage.getItem("preferred-language") || "cpp";
setPreferredLanguage(savedLanguage);
}, []);
return (
<LanguageContext.Provider value={{ preferredLanguage, setPreferredLanguage }}>
{children}
</LanguageContext.Provider>
);
}
export function useLanguage() {
const context = useContext(LanguageContext);
if (context === undefined) {
throw new Error("useLanguage must be used within a LanguageProvider");
}
return context;
}