From 2127aaa316630b531a26f76524ca6ab585d55e3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?kimjh=28=EA=B9=80=EC=9E=A5=ED=98=84=29?= Date: Fri, 4 Nov 2022 17:23:54 +0900 Subject: [PATCH] =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90=20=EB=93=B1?= =?UTF-8?q?=EB=A1=9D=20=EA=B8=B0=EC=B2=B4=20state=20=EC=A0=80=EC=9E=A5?= =?UTF-8?q?=EC=86=8C=20=EC=9C=84=EC=B9=98=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/map/naver/dron/DronMarker.js | 18 ++--- .../control/gp/actions/controlGpAction.ts | 14 ++-- .../control/gp/models/controlGpModel.ts | 7 +- .../control/gp/reducers/controlGpReducer.ts | 29 ++++---- src/modules/control/gp/sagas/controlGpSaga.ts | 69 +++++++++++-------- src/redux/reducers/rootReducer.ts | 4 +- 6 files changed, 77 insertions(+), 64 deletions(-) diff --git a/src/components/map/naver/dron/DronMarker.js b/src/components/map/naver/dron/DronMarker.js index fb664da5..fae6ab41 100644 --- a/src/components/map/naver/dron/DronMarker.js +++ b/src/components/map/naver/dron/DronMarker.js @@ -20,13 +20,15 @@ import { controlGroupAuthAction } from '../../../../modules/control/gp'; export const DronMarker = props => { const dispatch = useDispatch(); - const { controlGpList } = useSelector(state => state.controlGpState); + const { controlGpList, controlGroupAuthInfo } = useSelector( + state => state.controlGpState + ); const { objectId, isClickObject } = useSelector( state => state.controlMapReducer ); - const { controlGroupAuthInfo } = useSelector( - state => state.controlGroupAuthState - ); + // const { controlGroupAuthInfo } = useSelector( + // state => state.controlGroupAuthState + // ); const { controlGpArcrftWarnList } = useSelector( state => state.controlGpLogState ); @@ -77,9 +79,9 @@ export const DronMarker = props => { infoWindow.open(props.map, data.coord); }; - useLayoutEffect(() => { - dispatch(controlGroupAuthAction.request()); - }, [controlGpList]); + // useLayoutEffect(() => { + // dispatch(controlGroupAuthAction.request()); + // }, [controlGpList]); useEffect(() => { markerInit(); @@ -119,8 +121,6 @@ export const DronMarker = props => { //마커를 그린다. const addMarkers = (position, id, controlId, gps) => { const markerOption = {}; - console.log(controlGroupAuthInfo); - console.log(gps.objectId); if (id.substring(0, 2) === 'PA') { const pal = controlGroupAuthInfo?.find( prev => prev.idntfNum === gps.objectId diff --git a/src/modules/control/gp/actions/controlGpAction.ts b/src/modules/control/gp/actions/controlGpAction.ts index 82de7183..00abdc92 100644 --- a/src/modules/control/gp/actions/controlGpAction.ts +++ b/src/modules/control/gp/actions/controlGpAction.ts @@ -12,7 +12,7 @@ import { ControlGpHisState, ControlGpPlanContainsRQ, ControlGpPlanContainsRS, - ControlGroupAuthState, + // ControlGroupAuthState, ControlGpArcrftWarnList, ControlGpWarnLogList, ControlweatherData, @@ -102,11 +102,11 @@ export const controlGpRtDtlAction = createAsyncAction( CONTROL_GP_RTDTL_FAILURE )(); -export const controlGroupAuthAction = createAsyncAction( - CONTROL_GROUP_AUTH_REQUEST, - CONTROL_GROUP_AUTH_SUCCESS, - CONTROL_GROUP_AUTH_FAILURE -)(); +// export const controlGroupAuthAction = createAsyncAction( +// CONTROL_GROUP_AUTH_REQUEST, +// CONTROL_GROUP_AUTH_SUCCESS, +// CONTROL_GROUP_AUTH_FAILURE +// )(); export const controlGpFlightPlanAction = createAsyncAction( CONTROL_FLIGHT_PLAN_REQUEST, @@ -148,7 +148,7 @@ const actions = { controlGpLogAction, controlGpDtlAction, controlGpRtDtlAction, - controlGroupAuthAction, + // controlGroupAuthAction, controlGpFlightPlanAction, controlGpFlightPlanWarnAction, controlGpArcrftWarnAction, diff --git a/src/modules/control/gp/models/controlGpModel.ts b/src/modules/control/gp/models/controlGpModel.ts index e4f4de6a..0c8e9362 100644 --- a/src/modules/control/gp/models/controlGpModel.ts +++ b/src/modules/control/gp/models/controlGpModel.ts @@ -2,6 +2,7 @@ import { FlightPlanData } from '../../../basis/flight/models/basisFlightModel'; export interface ControlGpState { controlGpList: ControlGpData[] | undefined; + controlGroupAuthInfo: ControlGroupAuthData[] | undefined; } export interface ControlGpWeatherState { @@ -27,9 +28,9 @@ export interface ControlGpDtlState { controlDetail: ControlDetailData | undefined; } -export interface ControlGroupAuthState { - controlGroupAuthInfo: ControlGroupAuthData[] | undefined; -} +// export interface ControlGroupAuthState { +// controlGroupAuthInfo: ControlGroupAuthData[] | undefined; +// } export interface ControlGpHistoryData { objectId: String; diff --git a/src/modules/control/gp/reducers/controlGpReducer.ts b/src/modules/control/gp/reducers/controlGpReducer.ts index 25057064..e32be2f6 100644 --- a/src/modules/control/gp/reducers/controlGpReducer.ts +++ b/src/modules/control/gp/reducers/controlGpReducer.ts @@ -10,7 +10,7 @@ import { controlGpLogAction, controlGpHisAction, controlGpRtDtlAction, - controlGroupAuthAction, + // controlGroupAuthAction, controlGpArcrftWarnAction, controlweatherAction } from '../actions/controlGpAction'; @@ -22,7 +22,7 @@ import { ControlGpLogState, ControlGpHisState, ControlGpState, - ControlGroupAuthState, + // ControlGroupAuthState, initiaResponseControlGpData, ControlGpWeatherState } from '../models/controlGpModel'; @@ -31,8 +31,9 @@ export const controlGpReducer = createReducer( initiaResponseControlGpData ).handleAction(controlGpAction.success, (state, action) => produce(state, draft => { - const { controlGpList } = action.payload; + const { controlGpList, controlGroupAuthInfo } = action.payload; draft.controlGpList = controlGpList; + draft.controlGroupAuthInfo = controlGroupAuthInfo; }) ); export const controlGpweatherReducer = createReducer< @@ -116,15 +117,15 @@ export const controlGpDtlReducer = createReducer< }) ); -export const controlGroupAuthReducer = createReducer< - ControlGroupAuthState, - ControlGpAction ->(initiaResponseControlGpData).handleAction( - controlGroupAuthAction.success, - (state, action) => - produce(state, draft => { - const { controlGroupAuthInfo } = action.payload; +// export const controlGroupAuthReducer = createReducer< +// ControlGroupAuthState, +// ControlGpAction +// >(initiaResponseControlGpData).handleAction( +// controlGroupAuthAction.success, +// (state, action) => +// produce(state, draft => { +// const { controlGroupAuthInfo } = action.payload; - draft.controlGroupAuthInfo = controlGroupAuthInfo; - }) -); +// draft.controlGroupAuthInfo = controlGroupAuthInfo; +// }) +// ); diff --git a/src/modules/control/gp/sagas/controlGpSaga.ts b/src/modules/control/gp/sagas/controlGpSaga.ts index a34ecc7f..0af27a8a 100644 --- a/src/modules/control/gp/sagas/controlGpSaga.ts +++ b/src/modules/control/gp/sagas/controlGpSaga.ts @@ -12,32 +12,43 @@ import { ControlGpData } from '../models/controlGpModel'; import { detail } from '../../../analysis/history/actions/analysisHistoryAction'; import { useSelector } from 'react-redux'; +const token = cookieStorage.getCookie(COOKIE_ACCESS_TOKEN); + function* getControlGpSaga( action: ActionType ) { try { const data = action.payload; + const state = yield select(); const { objectId, isClickObject } = state.controlMapReducer; // 그룹 별 기체 필터링 - const { controlGroupAuthInfo } = state.controlGroupAuthState; + const { controlGroupAuthInfo } = state.controlGpState; const { controlGpHistory } = state.controlGpHisState; - let gpsData: ControlGpData[] = []; + // let gpsData: ControlGpData[] = []; //사용자가 등록한 기체(식별장치 포함)만 관제에서 볼 수 있게 필터처리 - if (controlGroupAuthInfo?.length > 0) { - controlGroupAuthInfo.forEach(auth => { - if (gpsData.length > 0) return false; + // if (controlGroupAuthInfo?.length > 0) { + // controlGroupAuthInfo.forEach(auth => { + // if (gpsData.length > 0) return false; - // gpsData = data.filter(gps => auth.idntfNum === gps.objectId); - }); + // // gpsData = data.filter(gps => auth.idntfNum === gps.objectId); + // }); + // } + + let res; + + if (token && data.length > 0) { + const user = decode(token); + res = yield call(controlGpApi.getGroupAuth, user.cstmrSno); } yield put( Actions.controlGpAction.success({ // controlGpList: gpsData - controlGpList: data + controlGpList: data, + controlGroupAuthInfo: res || [] }) ); @@ -144,26 +155,26 @@ function* controlDtlSaga( } } -function* controlGroupAuthSaga( - action: ActionType -) { - const token = cookieStorage.getCookie(COOKIE_ACCESS_TOKEN); - - try { - if (token) { - const user = decode(token); - const data = yield call(controlGpApi.getGroupAuth, user.cstmrSno); - - yield put( - Actions.controlGroupAuthAction.success({ - controlGroupAuthInfo: data - }) - ); - } - } catch (error) { - yield put(Actions.controlGroupAuthAction.failure(error)); - } -} +// function* controlGroupAuthSaga( +// action: ActionType +// ) { +// const token = cookieStorage.getCookie(COOKIE_ACCESS_TOKEN); + +// try { +// if (token) { +// const user = decode(token); +// const data = yield call(controlGpApi.getGroupAuth, user.cstmrSno); + +// yield put( +// Actions.controlGroupAuthAction.success({ +// controlGroupAuthInfo: data +// }) +// ); +// } +// } catch (error) { +// yield put(Actions.controlGroupAuthAction.failure(error)); +// } +// } function* controlGpFlightPlanSaga( action: ActionType @@ -235,7 +246,7 @@ export function* controlGpSaga() { yield takeEvery(Actions.controlGpLogAction.request, getControlGpWarnLogSaga); yield takeEvery(Actions.controlGpRtDtlAction.request, controlGpRtDtlSaga); yield takeEvery(Actions.controlGpDtlAction.request, controlDtlSaga); - yield takeEvery(Actions.controlGroupAuthAction.request, controlGroupAuthSaga); + // yield takeEvery(Actions.controlGroupAuthAction.request, controlGroupAuthSaga); yield takeEvery(Actions.controlweatherAction.request, ControlWeatherSaga); yield takeEvery( diff --git a/src/redux/reducers/rootReducer.ts b/src/redux/reducers/rootReducer.ts index 64bf7894..f9f34245 100644 --- a/src/redux/reducers/rootReducer.ts +++ b/src/redux/reducers/rootReducer.ts @@ -25,7 +25,7 @@ import { controlGpDtlReducer, controlGpHisReducer, controlGpReducer, - controlGroupAuthReducer, + // controlGroupAuthReducer, controlGpFltPlanReducer, controlGpSaga, ControlGpState, @@ -79,7 +79,7 @@ const rootReducer = combineReducers({ controlGpHisState: controlGpHisReducer, controlGpLogState: controlGpLogReducer, controlGpDtlState: controlGpDtlReducer, - controlGroupAuthState: controlGroupAuthReducer, + // controlGroupAuthState: controlGroupAuthReducer, controlGpFltPlanState: controlGpFltPlanReducer, menuState: menuReducer, analysisHistoryState: analysisHistoryReducer,