/
kreyndelHam
/
Konstructorium
Обзор
Документация
Войти
/
kreyndelHam
/
Konstructorium
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
1
CI/CD
Аналитика
Безопасность
dev
frontend/src/contexts/LanguageContext.jsx
46 строк
1 KB
MihahamYT
Code Style + docstrings
22 апр 2026, 00:29
22 апр 2026, 00:29
eea24b4
Код
Авторство
О чём код?
import { createContext, useContext, useState, useEffect } from 'react' import { defaultLanguage } from '../services/translations' const LanguageContext = createContext() /** * Access language context values and actions. * * @returns {{language: string, changeLanguage: (lang: string) => void}} */ export const useLanguage = () => { const context = useContext(LanguageContext) if (!context) { throw new Error('useLanguage must be used within a LanguageProvider') } return context } /** * Provide language state to all nested components. * * @param {{children: import('react').ReactNode}} props * @returns {JSX.Element} */ export const LanguageProvider = ({ children }) => { const [language, setLanguage] = useState(() => { // Get language from localStorage or use default const savedLanguage = localStorage.getItem('language') return savedLanguage || defaultLanguage }) useEffect(() => { // Save language to localStorage when it changes localStorage.setItem('language', language) }, [language]) const changeLanguage = (lang) => { setLanguage(lang) } return ( <LanguageContext.Provider value={{ language, changeLanguage }}> {children} </LanguageContext.Provider> ) }