From 6d741eb2f10257f2e38f1210d5c9054a7c691afb Mon Sep 17 00:00:00 2001 From: JANGHYUNn Date: Tue, 27 Feb 2024 16:35:11 +0900 Subject: [PATCH] =?UTF-8?q?hoc=20render=20flag=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../simulator/AnalysisSimulationContainer.js | 2 +- src/router/hoc/authenticationCheck.tsx | 24 +++++++++---------- src/views/analysis/history/AnalysisHistory.js | 4 ++-- .../analysis/simulation/AnalysisSimulation.js | 4 ++-- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/containers/analysis/simulator/AnalysisSimulationContainer.js b/src/containers/analysis/simulator/AnalysisSimulationContainer.js index 1908845d..5eeedb97 100644 --- a/src/containers/analysis/simulator/AnalysisSimulationContainer.js +++ b/src/containers/analysis/simulator/AnalysisSimulationContainer.js @@ -19,7 +19,7 @@ import { setLogout } from '@src/redux/features/account/auth/authThunk'; let playCount = 0; let playCounts = 0; -export const AnalysisSimulationContainer = props => { +export const AnalysisSimulationContainer = ({ history }) => { // 슬라이드 모든 데이터 const { list, count, detail, searchParams, log, stcsList, stcsCount, page } = useSelector(state => state.simulationState); diff --git a/src/router/hoc/authenticationCheck.tsx b/src/router/hoc/authenticationCheck.tsx index 03ee73ef..d2ce6ecd 100644 --- a/src/router/hoc/authenticationCheck.tsx +++ b/src/router/hoc/authenticationCheck.tsx @@ -1,4 +1,4 @@ -import { ReactNode, useEffect, useLayoutEffect } from 'react'; +import { ReactNode, useEffect, useLayoutEffect, useState } from 'react'; import { RouteComponentProps } from 'react-router-dom'; import { useSelector, useDispatch } from '@src/redux/store'; import { checkToken } from '@src/redux/features/account/auth/authThunk'; @@ -16,15 +16,17 @@ export default function (SpecificComponent: ReactNode, option: IOption) { function AuthenticationCheck(props: RouteComponentProps) { const dispatch = useDispatch(); const { user } = useSelector(state => state.authState); + const [isRender, setIsRender] = useState(false); - useLayoutEffect(() => { - const tokenVerification = async () => { + const Component: (props: IProps) => JSX.Element = SpecificComponent as ( + props: IProps + ) => JSX.Element; + + useEffect(() => { + dispatch(checkToken() as any).then(({ payload: { result } }) => { try { // 로그인 해야만 접근 가능한 페이지인지 체크하는 옵션 const { authRoute } = option; - const { - payload: { result } - } = await dispatch(checkToken() as any); if (!result) { if (authRoute) { @@ -36,18 +38,14 @@ export default function (SpecificComponent: ReactNode, option: IOption) { props.history.replace('/main/dashboard'); } } + setIsRender(true); } catch (error) { // props.history.replace('/account/login'); } - }; - - tokenVerification(); + }); }, []); - const Component: (props: IProps) => JSX.Element = SpecificComponent as ( - props: IProps - ) => JSX.Element; - return ; + return <>{isRender ? : null}; } return AuthenticationCheck; } diff --git a/src/views/analysis/history/AnalysisHistory.js b/src/views/analysis/history/AnalysisHistory.js index 964f4fe3..8b9179c1 100644 --- a/src/views/analysis/history/AnalysisHistory.js +++ b/src/views/analysis/history/AnalysisHistory.js @@ -3,10 +3,10 @@ import { AnalysisHistoryContainer } from '../../../containers/analysis/history/AnalysisHistoryContainer'; -const AnalysisHistory = () => { +const AnalysisHistory = props => { return (
- +
); }; diff --git a/src/views/analysis/simulation/AnalysisSimulation.js b/src/views/analysis/simulation/AnalysisSimulation.js index ca1541bf..54686e51 100644 --- a/src/views/analysis/simulation/AnalysisSimulation.js +++ b/src/views/analysis/simulation/AnalysisSimulation.js @@ -6,8 +6,8 @@ import '@styles/react/libs/tables/react-dataTable-component.scss'; import '../../../assets/css/custom.css'; import { AnalysisSimulationContainer } from '../../../containers/analysis/simulator/AnalysisSimulationContainer'; -const AnalysisSimulation = () => { - return ; +const AnalysisSimulation = props => { + return ; }; export default AnalysisSimulation;