fix(lang): only set locale once at page load and move subsequent updates back into Layout

fixes #1662
This commit is contained in:
sct
2021-05-18 09:23:29 +09:00
parent e85d1ce94e
commit 14756f4b20
2 changed files with 17 additions and 10 deletions

View File

@@ -64,7 +64,7 @@ const loadLocaleData = (locale: AvailableLocale): Promise<any> => {
// with our combined user prop
// This is specific to _app.tsx. Other pages will not need to do this!
type NextAppComponentType = typeof App;
type MessagesType = Record<string, any>;
type MessagesType = Record<string, string>;
interface ExtendedAppProps extends AppProps {
user: User;
@@ -90,14 +90,6 @@ const CoreApp: Omit<NextAppComponentType, 'origGetInitialProps'> = ({
const [loadedMessages, setMessages] = useState<MessagesType>(messages);
const [currentLocale, setLocale] = useState<AvailableLocale>(locale);
useEffect(() => {
setLocale(
(user?.settings?.locale
? user.settings.locale
: currentSettings.locale) as AvailableLocale
);
}, [currentSettings.locale, user?.settings?.locale]);
useEffect(() => {
loadLocaleData(currentLocale).then(setMessages);
}, [currentLocale]);