diff --git a/public/index.html b/public/index.html index de90868..5bab366 100644 --- a/public/index.html +++ b/public/index.html @@ -4,7 +4,7 @@
- + diff --git a/src/App.css b/src/App.css index 71b4a63..899a28f 100644 --- a/src/App.css +++ b/src/App.css @@ -22,6 +22,7 @@ background: transparent; padding: 56px; box-sizing: border-box; + z-index: 99; } diff --git a/src/App.tsx b/src/App.tsx index b646c62..90a4912 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -5,7 +5,6 @@ import { useEffect } from "react"; import { Redirect, Route, Switch, useHistory } from "react-router-dom"; import { useTranslation } from "react-i18next"; -import cookies from "js-cookie"; import { Header } from "components/shared/Header/Header"; import { Card } from "components/pages/Main/Card/Card"; @@ -16,38 +15,73 @@ import { PlanComponent } from "components/pages/Plan/PlanComponent"; import { useAppDispatch, useAppSelector } from "hooks/redux"; import { fetchCards } from "store/reducers/ActionCreator"; import { cardSlice } from "store/reducers/cardSlice"; +import { languageSlice } from "store/reducers/languageSlice"; + import { ICards } from "models/ICards"; +import useQuery from "hooks/useQuery"; + +import cookies from "js-cookie"; + + const App: React.FC = () => { const dispatch = useAppDispatch(); const history = useHistory(); const { handleCurrentCard } = cardSlice.actions; + const { handleChangeLanguage } = languageSlice.actions; + const { cards, currentCard, error } = useAppSelector((state) => state.cardReducer); - const { isLoading } = useAppSelector((state) => state.sessionReducer) const { currentLang } = useAppSelector((state) => state.languageReducer); - console.log(error) + const query = useQuery() + + const langQuery = query.get('lang') + + const langArray = ['en', 'ru'] + + const browserLanguage = window.navigator.language + + const handleBrowserLanguage = () => { + return langArray.includes(browserLanguage) + } + + const handleCookiesLanguage = () => { + const language = cookies.get("i18next") + return language + } + useEffect(() => { + if (langArray.includes(langQuery as string)) { + dispatch(handleChangeLanguage(langQuery as string)); + return + } + else if (handleCookiesLanguage()) { + const languageCookies = handleCookiesLanguage() + console.log(languageCookies) + dispatch(handleChangeLanguage(languageCookies as string)) + return + } + let isSupported = handleBrowserLanguage() + dispatch(handleChangeLanguage(isSupported ? browserLanguage : 'en')); + }, []) + + + + useEffect(() => { - dispatch(fetchCards(cookies.get("i18next"))); - }, []); - - useEffect(() => { - dispatch(fetchCards(cookies.get("i18next"))); + if (currentLang) { + dispatch(fetchCards(currentLang)) + } }, [currentLang]) + + const handleCards = (card: ICards) => { dispatch(handleCurrentCard(card)); history.push("/connect-page"); }; - const closeStream = () => { - history.push("/"); - }; - const { t } = useTranslation(); - console.log(isLoading, 'LOADING') - return (