|
|
|
@ -4,25 +4,26 @@ import { CustomDetailLayout } from '../../../../components/layout/CustomDetailLa
|
|
|
|
|
import { useHistory, useLocation, useParams } from 'react-router-dom'; |
|
|
|
|
import { useDispatch, useSelector } from 'react-redux'; |
|
|
|
|
import * as Actions from '../../../../modules/basis/flight/actions/basisFlightAction'; |
|
|
|
|
import { initFlight, initFlightBas } from '../../../../modules/basis/flight/models/basisFlightModel'; |
|
|
|
|
import { |
|
|
|
|
initFlight, |
|
|
|
|
initFlightBas |
|
|
|
|
} from '../../../../modules/basis/flight/models/basisFlightModel'; |
|
|
|
|
import { AiFillPropertySafety } from 'react-icons/ai'; |
|
|
|
|
import { ErrorModal } from '../../../../components/modal/ErrorModal'; |
|
|
|
|
import { CgArrowLeftR } from 'react-icons/cg'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const initModal = { |
|
|
|
|
area: false, |
|
|
|
|
pilot: false, |
|
|
|
|
arcrft: false |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const FlightPlanDetailContainer = () => { |
|
|
|
|
const dispatch = useDispatch(); |
|
|
|
|
const history = useHistory(); |
|
|
|
|
const location = useLocation(); |
|
|
|
|
const urlParams = useParams(); |
|
|
|
|
const flightState = useSelector(state => state.flightState); |
|
|
|
|
const { detail, pilotSelect, arcrftSelect, areaList, selectGroup } = flightState; |
|
|
|
|
const { detail, pilotSelect, arcrftSelect, areaList, selectGroup } = |
|
|
|
|
flightState; |
|
|
|
|
const [modal, setModal] = useState(initModal); |
|
|
|
|
const [detailData, setDetailData] = useState(initFlightBas.initDetail); |
|
|
|
|
//모달 관련 설정
|
|
|
|
@ -32,18 +33,41 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
desc: '' |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
const [date, setDate] = useState(); |
|
|
|
|
const [isDone, setIsDone] = useState(); |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
setDate(''); |
|
|
|
|
}, []); |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (date) { |
|
|
|
|
let cTime = new Date(); |
|
|
|
|
let pTime = new Date(date); |
|
|
|
|
if (cTime > pTime) { |
|
|
|
|
setIsDone(true); |
|
|
|
|
} else { |
|
|
|
|
setIsDone(false); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}, [date]); |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (Object.keys(urlParams).length === 0 && urlParams.constructor === Object) return; |
|
|
|
|
if (Object.keys(urlParams).length === 0 && urlParams.constructor === Object) |
|
|
|
|
return; |
|
|
|
|
dispatch(Actions.FLIGHT_PLAN_DETAIL.request(urlParams.planSno)); |
|
|
|
|
}, [urlParams]) |
|
|
|
|
}, [urlParams]); |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (detail.createDt) { |
|
|
|
|
setDate(detail.schFltStDt); |
|
|
|
|
} |
|
|
|
|
setDetailData({ |
|
|
|
|
...detail, |
|
|
|
|
cstmrSno: sessionStorage.getItem('cstmrSno'), |
|
|
|
|
groupId: sessionStorage.getItem('groupId'), |
|
|
|
|
groupId: sessionStorage.getItem('groupId') |
|
|
|
|
}); |
|
|
|
|
}, [detail]) |
|
|
|
|
}, [detail]); |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (pilotSelect !== undefined) { |
|
|
|
@ -59,7 +83,7 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
pilot.hpno = pilotSelect.hpno; |
|
|
|
|
|
|
|
|
|
// 파일럿 중복 확인
|
|
|
|
|
let checking = true |
|
|
|
|
let checking = true; |
|
|
|
|
|
|
|
|
|
pilotList.forEach((p, i) => { |
|
|
|
|
if (p.cstmrSno === pilotSelect.cstmrSno) { |
|
|
|
@ -84,12 +108,11 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
return { |
|
|
|
|
...prevState, |
|
|
|
|
['pilotList']: pilotList |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}, [pilotSelect]) |
|
|
|
|
}, [pilotSelect]); |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (arcrftSelect !== undefined) { |
|
|
|
@ -131,11 +154,11 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
return { |
|
|
|
|
...prevState, |
|
|
|
|
['arcrftList']: arcrftList |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}, [arcrftSelect]) |
|
|
|
|
}, [arcrftSelect]); |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (areaList !== undefined) { |
|
|
|
@ -151,8 +174,8 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
...coord, |
|
|
|
|
planAreaSno: area.planAreaSno, |
|
|
|
|
planAreaCoordSno: 0 |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return { |
|
|
|
@ -162,19 +185,18 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
fltElev: targetArea.fltElev ? targetArea.fltElev : 0, |
|
|
|
|
fltMethod: targetArea.fltMethod ? targetArea.fltMethod : '', |
|
|
|
|
coordList: targetCoordList |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
setDetailData(prevState => { |
|
|
|
|
return { |
|
|
|
|
...prevState, |
|
|
|
|
['areaList']: createAreaList |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// dispatch(Actions.AREA_DETAIL_INIT());
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}, [areaList]); |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
@ -182,18 +204,20 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
dispatch(Actions.PILOT_ARCRFT_SELECT_INIT()); |
|
|
|
|
}, [flightState]); |
|
|
|
|
|
|
|
|
|
const handleModal = (modal) => { |
|
|
|
|
const handleModal = modal => { |
|
|
|
|
if (modal.target === 'area' && modal.isOpen) { |
|
|
|
|
if (detailData.areaList) { |
|
|
|
|
dispatch(Actions.FLIGHT_PLAN_AREA_BUFFER_LIST.request(detailData.areaList)); |
|
|
|
|
dispatch( |
|
|
|
|
Actions.FLIGHT_PLAN_AREA_BUFFER_LIST.request(detailData.areaList) |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
setModal(prevState => ({ |
|
|
|
|
...initModal, |
|
|
|
|
[modal.target]: modal.isOpen |
|
|
|
|
})) |
|
|
|
|
} |
|
|
|
|
})); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 변경감지
|
|
|
|
|
const handleChange = ({ name, value, type, index, pIndex }) => { |
|
|
|
@ -202,9 +226,9 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
case 'coord': |
|
|
|
|
// TODO 추후 삭제 필요 start
|
|
|
|
|
if (name == 'lonlat') { |
|
|
|
|
const values = value.split("/"); |
|
|
|
|
let latValue = 1 |
|
|
|
|
let lonValue = 1 |
|
|
|
|
const values = value.split('/'); |
|
|
|
|
let latValue = 1; |
|
|
|
|
let lonValue = 1; |
|
|
|
|
if (values.length == 1) { |
|
|
|
|
latValue = values[0].trim(); |
|
|
|
|
} else if (values.length == 2) { |
|
|
|
@ -223,18 +247,18 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
...coord, |
|
|
|
|
lat: latValue, |
|
|
|
|
lon: lonValue |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
return { |
|
|
|
|
...area, |
|
|
|
|
coordList |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
return { |
|
|
|
|
...prevState, |
|
|
|
|
areaList |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
// TODO 추후 삭제 필요 end
|
|
|
|
@ -245,14 +269,14 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
const updateData = { |
|
|
|
|
...coordArr[index], |
|
|
|
|
[name]: value |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
coordArr[index] = updateData; |
|
|
|
|
areaArr[pIndex] = coordArr |
|
|
|
|
areaArr[pIndex] = coordArr; |
|
|
|
|
return { |
|
|
|
|
...prevState, |
|
|
|
|
areaList: areaArr |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
break; |
|
|
|
|
case 'area': |
|
|
|
|
case 'pilot': |
|
|
|
@ -262,23 +286,23 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
const updateData = { |
|
|
|
|
...prevState[arrName][index], |
|
|
|
|
[name]: value |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
arr[index] = updateData; |
|
|
|
|
return { |
|
|
|
|
...prevState, |
|
|
|
|
[arrName]: arr |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
break; |
|
|
|
|
case 'plan': |
|
|
|
|
default: |
|
|
|
|
setDetailData(prevState => ({ |
|
|
|
|
...prevState, |
|
|
|
|
[name]: value |
|
|
|
|
})) |
|
|
|
|
})); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 추가
|
|
|
|
|
const handleAddArray = ({ type, pIndex }) => { |
|
|
|
@ -292,8 +316,8 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
return { |
|
|
|
|
...prevState, |
|
|
|
|
areaList: [...areaArr] |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
break; |
|
|
|
|
case 'area': |
|
|
|
|
case 'pilot': |
|
|
|
@ -301,21 +325,21 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
return { |
|
|
|
|
...prevState, |
|
|
|
|
[arrName]: [...prevState[arrName], initFlightBas[type]] |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
break; |
|
|
|
|
case 'arcrft': |
|
|
|
|
setDetailData(prevState => { |
|
|
|
|
return { |
|
|
|
|
...prevState, |
|
|
|
|
[arrName]: [...prevState[arrName], initFlightBas[type]] |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
// 삭제
|
|
|
|
|
const handleDeleteArray = ({ type, index, pIndex }) => { |
|
|
|
|
const arrName = `${type}List`; |
|
|
|
@ -329,8 +353,8 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
return { |
|
|
|
|
...prevState, |
|
|
|
|
areaList: [...areaArr] |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
break; |
|
|
|
|
case 'area': |
|
|
|
|
case 'pilot': |
|
|
|
@ -338,49 +362,48 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
const arr = [...prevState[arrName]]; |
|
|
|
|
const deleteData = arr.splice(index, 1); |
|
|
|
|
|
|
|
|
|
const id = initFlight.detail['pilotList'] |
|
|
|
|
const id = initFlight.detail['pilotList']; |
|
|
|
|
|
|
|
|
|
if (arr.length > 0) { |
|
|
|
|
return { |
|
|
|
|
...prevState, |
|
|
|
|
[arrName]: arr |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else { |
|
|
|
|
}; |
|
|
|
|
} else { |
|
|
|
|
return { |
|
|
|
|
...prevState, |
|
|
|
|
[arrName]: id |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}); |
|
|
|
|
break; |
|
|
|
|
case 'arcrft': |
|
|
|
|
setDetailData(prevState => { |
|
|
|
|
const arr = [...prevState[arrName]]; |
|
|
|
|
const deleteData = arr.splice(index, 1); |
|
|
|
|
|
|
|
|
|
const id = initFlight.detail['arcrftList'] |
|
|
|
|
const id = initFlight.detail['arcrftList']; |
|
|
|
|
if (arr.length > 0) { |
|
|
|
|
return { |
|
|
|
|
...prevState, |
|
|
|
|
[arrName]: arr |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else { |
|
|
|
|
}; |
|
|
|
|
} else { |
|
|
|
|
return { |
|
|
|
|
...prevState, |
|
|
|
|
[arrName]: id |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}); |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
// 저장
|
|
|
|
|
const handleSave = () => { |
|
|
|
|
const reg_email = /^([0-9a-zA-Z_\.-]+)@([0-9a-zA-Z_-]+)(\.[0-9a-zA-Z_-]+){1,2}$/; |
|
|
|
|
const reg_email = |
|
|
|
|
/^([0-9a-zA-Z_\.-]+)@([0-9a-zA-Z_-]+)(\.[0-9a-zA-Z_-]+){1,2}$/; |
|
|
|
|
const check_num = /[0-9]/; |
|
|
|
|
const check_kor = |
|
|
|
|
/^[가-힣a-zA-Z0-9][^!@#$%^&*()+\=\[\]{};':"\\|,.<>\/?\s]*$/; |
|
|
|
@ -393,9 +416,7 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
else if (!detailData.hpno) { |
|
|
|
|
} else if (!detailData.hpno) { |
|
|
|
|
setModal2({ |
|
|
|
|
isOpen: true, |
|
|
|
|
title: '필수값 입력 오류', |
|
|
|
@ -403,9 +424,7 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
else if (!detailData.email) { |
|
|
|
|
} else if (!detailData.email) { |
|
|
|
|
setModal2({ |
|
|
|
|
isOpen: true, |
|
|
|
|
title: '필수값 입력 오류', |
|
|
|
@ -413,8 +432,7 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
else if (!detailData.fltPurpose) { |
|
|
|
|
} else if (!detailData.fltPurpose) { |
|
|
|
|
setModal2({ |
|
|
|
|
isOpen: true, |
|
|
|
|
title: '필수값 입력 오류', |
|
|
|
@ -422,8 +440,7 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
else if (!detailData.areaList[0].coordList[0].lat) { |
|
|
|
|
} else if (!detailData.areaList[0].coordList[0].lat) { |
|
|
|
|
setModal2({ |
|
|
|
|
isOpen: true, |
|
|
|
|
title: '필수값 입력 오류', |
|
|
|
@ -431,8 +448,7 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
else if (!detailData.areaList[0].fltElev) { |
|
|
|
|
} else if (!detailData.areaList[0].fltElev) { |
|
|
|
|
setModal2({ |
|
|
|
|
isOpen: true, |
|
|
|
|
title: '필수값 입력 오류', |
|
|
|
@ -440,8 +456,7 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
else if (!detailData.areaList[0].fltMethod) { |
|
|
|
|
} else if (!detailData.areaList[0].fltMethod) { |
|
|
|
|
setModal2({ |
|
|
|
|
isOpen: true, |
|
|
|
|
title: '필수값 입력 오류', |
|
|
|
@ -449,8 +464,7 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
else if (!detailData.pilotList[0].groupNm) { |
|
|
|
|
} else if (!detailData.pilotList[0].groupNm) { |
|
|
|
|
setModal2({ |
|
|
|
|
isOpen: true, |
|
|
|
|
title: '필수값 입력 오류', |
|
|
|
@ -458,8 +472,7 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
else if (!detailData.arcrftList[0].groupNm) { |
|
|
|
|
} else if (!detailData.arcrftList[0].groupNm) { |
|
|
|
|
setModal2({ |
|
|
|
|
isOpen: true, |
|
|
|
|
title: '필수값 입력 오류', |
|
|
|
@ -467,16 +480,14 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
else if (!check_kor.test(detailData.memberName)) { |
|
|
|
|
} else if (!check_kor.test(detailData.memberName)) { |
|
|
|
|
setModal2({ |
|
|
|
|
isOpen: true, |
|
|
|
|
title: '필수값 입력 오류', |
|
|
|
|
desc: '지원하지 않는 입력값 입니다.' |
|
|
|
|
}); |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
else if (!check_num.test(detailData.hpno)) { |
|
|
|
|
} else if (!check_num.test(detailData.hpno)) { |
|
|
|
|
setModal2({ |
|
|
|
|
isOpen: true, |
|
|
|
|
title: '필수값 입력 오류', |
|
|
|
@ -488,7 +499,7 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
setModal2({ |
|
|
|
|
isOpen: true, |
|
|
|
|
title: '필수값 입력 오류', |
|
|
|
|
desc: '이메일 형식을 다시 확인해 주세요.', |
|
|
|
|
desc: '이메일 형식을 다시 확인해 주세요.' |
|
|
|
|
}); |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
@ -498,19 +509,30 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
dispatch(Actions.FLIGHT_PLAN_UPDATE.request(detailData)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
dispatch(Actions.FLIGHT_PLAN_GROUP_SELECT({ cstmrSno: 0, groupId: '', groupNm: '' })); |
|
|
|
|
} |
|
|
|
|
dispatch( |
|
|
|
|
Actions.FLIGHT_PLAN_GROUP_SELECT({ |
|
|
|
|
cstmrSno: 0, |
|
|
|
|
groupId: '', |
|
|
|
|
groupNm: '' |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
}; |
|
|
|
|
// 삭제
|
|
|
|
|
const handleDelete = () => { |
|
|
|
|
if (!urlParams.planSno || urlParams.planSno) { |
|
|
|
|
|
|
|
|
|
dispatch(Actions.FLIGHT_PLAN_DELETE.request(urlParams.planSno)); |
|
|
|
|
} |
|
|
|
|
dispatch(Actions.FLIGHT_PLAN_GROUP_SELECT({ cstmrSno: 0, groupId: '', groupNm: '' })); |
|
|
|
|
} |
|
|
|
|
dispatch( |
|
|
|
|
Actions.FLIGHT_PLAN_GROUP_SELECT({ |
|
|
|
|
cstmrSno: 0, |
|
|
|
|
groupId: '', |
|
|
|
|
groupNm: '' |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
|
<CustomDetailLayout title={"비행 계획 신청서"}> |
|
|
|
|
<CustomDetailLayout title={'비행 계획 신청서'}> |
|
|
|
|
<FlightPlanForm |
|
|
|
|
modal={modal} |
|
|
|
|
data={detailData} |
|
|
|
@ -520,6 +542,7 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
handleChange={handleChange} |
|
|
|
|
handleAddArray={handleAddArray} |
|
|
|
|
handleDeleteArray={handleDeleteArray} |
|
|
|
|
isDone={isDone} |
|
|
|
|
// handlerSave={
|
|
|
|
|
// pageType === 'create' ? handlerCreate : handlerUpdate
|
|
|
|
|
// }
|
|
|
|
@ -534,7 +557,7 @@ const FlightPlanDetailContainer = () => {
|
|
|
|
|
{/* setModal={setModal}*/} |
|
|
|
|
{/*/>*/} |
|
|
|
|
</CustomDetailLayout> |
|
|
|
|
) |
|
|
|
|
); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
export default FlightPlanDetailContainer; |
|
|
|
|