Commit cfea3723 authored by Moody Salem's avatar Moody Salem

remove setting the locale from using the active locale

parent 7d0fb9cc
import { DEFAULT_LOCALE, SupportedLocale, SUPPORTED_LOCALES } from 'constants/locales'
import { useEffect, useMemo } from 'react'
import { useUserLocaleManager } from 'state/user/hooks'
import { useUserLocale, useUserLocaleManager } from 'state/user/hooks'
import useParsedQueryString from './useParsedQueryString'
/**
......@@ -29,19 +29,23 @@ function navigatorLocale(): SupportedLocale | undefined {
return parseLocale(language)
}
/**
* Returns the currently active locale, from a combination of user agent, query string, and user settings stored in redux
*/
export function useActiveLocale(): SupportedLocale {
export function useSetLocaleFromUrl() {
const parsed = useParsedQueryString()
const [userLocale, setUserLocale] = useUserLocaleManager()
useEffect(() => {
const urlLocale = typeof parsed.lng === 'string' ? parseLocale(parsed.lng) : undefined
if (urlLocale) {
if (urlLocale && urlLocale !== userLocale) {
setUserLocale(urlLocale)
}
}, [parsed.lng, setUserLocale, userLocale])
}
/**
* Returns the currently active locale, from a combination of user agent, query string, and user settings stored in redux
*/
export function useActiveLocale(): SupportedLocale {
const userLocale = useUserLocale()
return useMemo(() => {
return userLocale ?? navigatorLocale() ?? DEFAULT_LOCALE
......
......@@ -2,7 +2,7 @@ import React, { useEffect } from 'react'
import { i18n } from '@lingui/core'
import { I18nProvider } from '@lingui/react'
import { ReactNode } from 'react'
import { useActiveLocale } from 'hooks/useActiveLocale'
import { useActiveLocale, useSetLocaleFromUrl } from 'hooks/useActiveLocale'
import { SupportedLocale } from 'constants/locales'
export async function dynamicActivate(locale: SupportedLocale) {
......@@ -13,6 +13,7 @@ export async function dynamicActivate(locale: SupportedLocale) {
}
export function LanguageProvider({ children }: { children: ReactNode }) {
useSetLocaleFromUrl()
const locale = useActiveLocale()
useEffect(() => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment