Optimize LanguageProvider context value memoization
Co-authored-by: ragusa-it <196988693+ragusa-it@users.noreply.github.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { createContext, useContext, useState, useEffect, type ReactNode } from 'react';
|
||||
import { createContext, useContext, useState, useEffect, useMemo, useCallback, type ReactNode } from 'react';
|
||||
import { de, type Translations } from './de';
|
||||
import { en } from './en';
|
||||
|
||||
@@ -35,11 +35,11 @@ export function LanguageProvider({ children }: { children: ReactNode }) {
|
||||
setIsInitialized(true);
|
||||
}, []);
|
||||
|
||||
const setLanguage = (lang: Language) => {
|
||||
const setLanguage = useCallback((lang: Language) => {
|
||||
setLanguageState(lang);
|
||||
localStorage.setItem(STORAGE_KEY, lang);
|
||||
document.documentElement.lang = lang;
|
||||
};
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (isInitialized) {
|
||||
@@ -47,11 +47,11 @@ export function LanguageProvider({ children }: { children: ReactNode }) {
|
||||
}
|
||||
}, [language, isInitialized]);
|
||||
|
||||
const value: LanguageContextType = {
|
||||
const value = useMemo<LanguageContextType>(() => ({
|
||||
language,
|
||||
setLanguage,
|
||||
t: translations[language],
|
||||
};
|
||||
}), [language, setLanguage]);
|
||||
|
||||
return (
|
||||
<LanguageContext.Provider value={value}>
|
||||
|
||||
Reference in New Issue
Block a user