Skip to content

Commit 240f2ac

Browse files
committed
Move language provider logic to LanguageContext
1 parent 04c7753 commit 240f2ac

File tree

4 files changed

+21
-19
lines changed

4 files changed

+21
-19
lines changed

src/App.js

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,13 @@ import InfoScreenPrivacy from "./screens/info-screen/InfoScreenPrivacy";
1414
import OnboardingWelcomeTopics from "./screens/onboarding-welcome/OnboardingWelcomeTopics";
1515
import InfoScreenNewOrExistingUser from "./screens/info-screen/InfoScreenNewOrExistingUser";
1616
import ProfileScreen from "./screens/profile-screen/ProfileScreen";
17-
import {useState} from "react";
18-
import LanguageContext from './language/LanguageContext';
17+
import {LanguageProvider} from "./language/LanguageContext";
1918

2019
const theme = createTheme({});
2120

2221
const App = () => {
23-
const [language, setLanguage] = useState(localStorage.getItem('language') || 'en');
24-
25-
const handleSetLanguage = (lang) => {
26-
setLanguage(lang);
27-
localStorage.setItem('language', lang);
28-
};
29-
3022
return (
31-
<LanguageContext.Provider value={{ language, setLanguage: handleSetLanguage }}>
23+
<LanguageProvider>
3224
<ThemeProvider theme={theme}>
3325
<ViewportUpdater/>
3426
<Router basename={process.env.PUBLIC_URL}>
@@ -51,7 +43,7 @@ const App = () => {
5143
</div>
5244
</Router>
5345
</ThemeProvider>
54-
</LanguageContext.Provider>
46+
</LanguageProvider>
5547
);
5648
};
5749

src/language/LanguageContext.js

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
1-
import {createContext} from 'react';
1+
import React, { createContext, useState } from 'react';
22

3-
const LanguageContext = createContext({
4-
language: 'en',
5-
setLanguage: (lang) => {},
6-
});
3+
export const LanguageContext = createContext();
74

8-
export default LanguageContext;
5+
export const LanguageProvider = ({ children }) => {
6+
const [language, setLanguage] = useState(localStorage.getItem('language') || 'en');
7+
8+
const handleSetLanguage = (lang) => {
9+
setLanguage(lang);
10+
localStorage.setItem('language', lang);
11+
};
12+
13+
return (
14+
<LanguageContext.Provider value={{ language, setLanguage: handleSetLanguage }}>
15+
{children}
16+
</LanguageContext.Provider>
17+
);
18+
};

src/language/useTranslation.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useContext } from 'react';
2-
import LanguageContext from './LanguageContext';
2+
import { LanguageContext } from './LanguageContext';
33
import translations from './translations';
44

55
function useTranslation() {

src/screens/landing-page/sections/header/views/HeaderBarDesktop.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import HStack from "../../../../../components/HStack";
44
import LandingPageWAppButton from "../../../components/LandingPageWAppButton";
55
import NarBarLink from "../../../../../components/NavBarLink";
66
import LandingPageHollowButton from "../../../components/LandingPageButton";
7-
import LanguageContext from "../../../../../language/LanguageContext";
7+
import { LanguageContext } from "../../../../../language/LanguageContext";
88
import featureFlags from "../../../../../featureFlags";
99

1010
const HeaderBarDesktop = ({isApp}) => {

0 commit comments

Comments
 (0)