Created the SettingsContext.jsx
This commit is contained in:
parent
cfa3c89f14
commit
540cb33c57
27
webui/src/common/contexts/Settings/SettingsContext.jsx
Normal file
27
webui/src/common/contexts/Settings/SettingsContext.jsx
Normal file
@ -0,0 +1,27 @@
|
||||
import {createContext, useState} from "react";
|
||||
import i18n from "i18next";
|
||||
|
||||
export const SettingsContext = createContext({});
|
||||
|
||||
export const SettingsProvider = (props) => {
|
||||
|
||||
const [theme, setTheme] = useState(localStorage.getItem("theme") || "dark");
|
||||
const [language, setLanguage] = useState(localStorage.getItem("language") || "en");
|
||||
|
||||
const updateTheme = (theme) => {
|
||||
localStorage.setItem("theme", theme);
|
||||
setTheme(theme);
|
||||
}
|
||||
|
||||
const updateLanguage = (language) => {
|
||||
localStorage.setItem("language", language);
|
||||
i18n.changeLanguage(language);
|
||||
setLanguage(language);
|
||||
}
|
||||
|
||||
return (
|
||||
<SettingsContext.Provider value={{theme, updateTheme, language, updateLanguage}}>
|
||||
{props.children}
|
||||
</SettingsContext.Provider>
|
||||
)
|
||||
}
|
Reference in New Issue
Block a user