forked from fullstack-hy2020/fullstack-hy2020.github.io
-
Notifications
You must be signed in to change notification settings - Fork 44
/
wrapPageElement.js
32 lines (23 loc) · 706 Bytes
/
wrapPageElement.js
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
import React, { useEffect } from 'react';
import { useTranslation } from 'react-i18next';
const isSSR = typeof window === 'undefined';
const LanguageWrapper = ({ language, children }) => {
const { i18n } = useTranslation();
if (isSSR) {
i18n.changeLanguage(language);
}
useEffect(
() => {
language !== i18n.language && i18n.changeLanguage(language);
},
[language, i18n]
);
return children;
};
const wrapPageElement = ({ element, props }) => {
const { pageContext } = props;
const { langKey, lang } = pageContext;
const language = langKey || lang;
return <LanguageWrapper language={language}>{element}</LanguageWrapper>;
};
export default wrapPageElement;