diff --git a/dictation_client/.devcontainer/docker-compose.yml b/dictation_client/.devcontainer/docker-compose.yml index 9c70fe7..491fe15 100644 --- a/dictation_client/.devcontainer/docker-compose.yml +++ b/dictation_client/.devcontainer/docker-compose.yml @@ -2,7 +2,6 @@ version: "3" services: dictation_client: - env_file: ../.env build: . working_dir: /app/dictation_client ports: diff --git a/dictation_client/src/App.tsx b/dictation_client/src/App.tsx index 01e8577..0f33e23 100644 --- a/dictation_client/src/App.tsx +++ b/dictation_client/src/App.tsx @@ -3,7 +3,7 @@ import { BrowserRouter } from "react-router-dom"; import { PublicClientApplication } from "@azure/msal-browser"; import { MsalProvider, useMsal } from "@azure/msal-react"; import { msalConfig } from "common/msalConfig"; -import { useEffect, useLayoutEffect } from "react"; +import { useEffect } from "react"; import { useDispatch, useSelector } from "react-redux"; import globalAxios, { AxiosError, AxiosResponse } from "axios"; import { clearToken } from "features/auth"; @@ -39,8 +39,7 @@ const App = (): JSX.Element => { }, [dispatch, instance]); // Language読み取り - // AADB2Cからのリダイレクト後にレンダリングより先に言語切り替えしたいのでuseLayoutEffectを使う - useLayoutEffect(() => { + useEffect(() => { const language = document.cookie .split(";") .map((x) => x.split("=")) diff --git a/dictation_client/src/pages/LoginPage/index.tsx b/dictation_client/src/pages/LoginPage/index.tsx index 8691e3f..a95fe75 100644 --- a/dictation_client/src/pages/LoginPage/index.tsx +++ b/dictation_client/src/pages/LoginPage/index.tsx @@ -4,7 +4,7 @@ import { AppDispatch } from "app/store"; import Footer from "components/footer"; import Header from "components/header"; import { loginAsync } from "features/login"; -import React, { useCallback, useEffect } from "react"; +import React, { useCallback, useLayoutEffect } from "react"; import { useDispatch } from "react-redux"; import { useNavigate } from "react-router-dom"; @@ -32,7 +32,7 @@ const LoginPage: React.FC = (): JSX.Element => { } }, [accounts, dispatch, instance, navigate]); - useEffect(() => { + useLayoutEffect(() => { // B2CからリダイレクトされてB2Cへのログインが完了してからAPIを呼ぶ if (isAuthenticated && inProgress === InteractionStatus.None) { login(); diff --git a/dictation_client/src/pages/SignupCompletePage/index.tsx b/dictation_client/src/pages/SignupCompletePage/index.tsx index 9fd2c19..2bcec44 100644 --- a/dictation_client/src/pages/SignupCompletePage/index.tsx +++ b/dictation_client/src/pages/SignupCompletePage/index.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from "react"; +import React from "react"; import { useTranslation } from "react-i18next"; import { getTranslationID } from "translation"; import Header from "components/header"; @@ -7,18 +7,7 @@ import styles from "styles/app.module.scss"; import emailCheck from "../../assets/images/email_check.svg"; const SignupCompletePage: React.FC = (): JSX.Element => { - const [t, i18n] = useTranslation(); - - useEffect(() => { - const language = document.cookie - .split(";") - .map((x) => x.split("=")) - .find((x) => x.length === 2 && x[0] === "language"); - - if (language) { - i18n.changeLanguage(language[1]); - } - }, [i18n]); + const { t } = useTranslation(); return (
diff --git a/dictation_client/src/pages/SignupPage/index.tsx b/dictation_client/src/pages/SignupPage/index.tsx index e3a866b..4757cd3 100644 --- a/dictation_client/src/pages/SignupPage/index.tsx +++ b/dictation_client/src/pages/SignupPage/index.tsx @@ -1,29 +1,15 @@ import Footer from "components/footer"; import Header from "components/header"; import { selectPageState } from "features/signup/selectors"; -import React, { useEffect } from "react"; +import React from "react"; import { useSelector } from "react-redux"; import { Navigate } from "react-router-dom"; -import { useTranslation } from "react-i18next"; import SignupInput from "./signupInput"; import SignupConfirm from "./signupConfirm"; const SignupPage: React.FC<{ completeTo: string }> = ({ completeTo, }): JSX.Element => { - const { i18n } = useTranslation(); - - useEffect(() => { - const language = document.cookie - .split(";") - .map((x) => x.split("=")) - .find((x) => x.length === 2 && x[0] === "language"); - - if (language) { - i18n.changeLanguage(language[1]); - } - }, [i18n]); - const state = useSelector(selectPageState); return ( diff --git a/dictation_client/src/pages/VerifyAlreadyExistPage/index.tsx b/dictation_client/src/pages/VerifyAlreadyExistPage/index.tsx index 08d7cf0..1ff8e4b 100644 --- a/dictation_client/src/pages/VerifyAlreadyExistPage/index.tsx +++ b/dictation_client/src/pages/VerifyAlreadyExistPage/index.tsx @@ -3,22 +3,10 @@ import Header from "components/header"; import styles from "styles/app.module.scss"; import { useTranslation } from "react-i18next"; import { getTranslationID } from "translation"; -import { useEffect } from "react"; import check_circle from "../../assets/images/check_circle.svg"; const VerifyPage: React.FC = (): JSX.Element => { - const [t, i18n] = useTranslation(); - - useEffect(() => { - const language = document.cookie - .split(";") - .map((x) => x.split("=")) - .find((x) => x.length === 2 && x[0] === "language"); - - if (language) { - i18n.changeLanguage(language[1]); - } - }, [i18n]); + const { t } = useTranslation(); return (
diff --git a/dictation_client/src/pages/VerifyFailedPage/index.tsx b/dictation_client/src/pages/VerifyFailedPage/index.tsx index 4d0666d..fe04867 100644 --- a/dictation_client/src/pages/VerifyFailedPage/index.tsx +++ b/dictation_client/src/pages/VerifyFailedPage/index.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from "react"; +import React from "react"; import Header from "components/header"; import Footer from "components/footer"; import styles from "styles/app.module.scss"; @@ -7,18 +7,7 @@ import { getTranslationID } from "translation"; import report from "../../assets/images/report.svg"; const VerifyFailedPage: React.FC = (): JSX.Element => { - const [t, i18n] = useTranslation(); - - useEffect(() => { - const language = document.cookie - .split(";") - .map((x) => x.split("=")) - .find((x) => x.length === 2 && x[0] === "language"); - - if (language) { - i18n.changeLanguage(language[1]); - } - }, [i18n]); + const { t } = useTranslation(); return (
diff --git a/dictation_client/src/pages/VerifySuccessPage/index.tsx b/dictation_client/src/pages/VerifySuccessPage/index.tsx index 0340934..08e52a3 100644 --- a/dictation_client/src/pages/VerifySuccessPage/index.tsx +++ b/dictation_client/src/pages/VerifySuccessPage/index.tsx @@ -3,22 +3,10 @@ import Header from "components/header"; import styles from "styles/app.module.scss"; import { useTranslation } from "react-i18next"; import { getTranslationID } from "translation"; -import { useEffect } from "react"; import check_circle from "../../assets/images/check_circle.svg"; const VerifySuccessPage: React.FC = (): JSX.Element => { - const [t, i18n] = useTranslation(); - - useEffect(() => { - const language = document.cookie - .split(";") - .map((x) => x.split("=")) - .find((x) => x.length === 2 && x[0] === "language"); - - if (language) { - i18n.changeLanguage(language[1]); - } - }, [i18n]); + const { t } = useTranslation(); return (