|
|
|
@ -1,7 +1,7 @@
|
|
|
|
|
import React, { useEffect, useState } from 'react'; |
|
|
|
|
import { useDispatch, useSelector } from 'react-redux'; |
|
|
|
|
import '@styles/react/libs/flatpickr/flatpickr.scss'; |
|
|
|
|
import { AlertCircle, CheckCircle, AlertTriangle } from 'react-feather'; |
|
|
|
|
import { AlertCircle, CheckCircle } from 'react-feather'; |
|
|
|
|
import FlightArea from '../map/FlightArea'; |
|
|
|
|
import { |
|
|
|
|
Row, |
|
|
|
@ -41,10 +41,9 @@ export default function LaancStep2({
|
|
|
|
|
}; |
|
|
|
|
const [isterms, setIsterms] = useState(false); |
|
|
|
|
const [flightData, setFlightData] = useState({}); |
|
|
|
|
const [laancIsCheck, setLancIsCheck] = useState(false); |
|
|
|
|
const { user } = useSelector(state => state.authState); |
|
|
|
|
const { laancApply } = useSelector(state => state.laancState); |
|
|
|
|
const { termsList } = useSelector(state => state.accountState); |
|
|
|
|
const { laancPdf } = useSelector(state => state.laancState); |
|
|
|
|
const dispatch = useDispatch(); |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
@ -57,17 +56,17 @@ export default function LaancStep2({
|
|
|
|
|
); |
|
|
|
|
}, []); |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (!laancApply?.valid) setLancIsCheck(true); |
|
|
|
|
else if (laancApply?.valid) setLancIsCheck(false); |
|
|
|
|
}, [laancApply]); |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (flightData && Object.keys(flightData).length > 0) { |
|
|
|
|
dispatch(LaancAction.LAANC_FLIGHT_CREATE.request(flightData)); |
|
|
|
|
handlerStep(3); |
|
|
|
|
} |
|
|
|
|
}, [flightData]); |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (laancPdf && flightData && Object.keys(flightData).length > 0) { |
|
|
|
|
handlerStep(3); |
|
|
|
|
} |
|
|
|
|
}, [laancPdf]); |
|
|
|
|
// 소수점 6자리에서 반올림 하는 함수
|
|
|
|
|
const truncateToSixDecimalPlaces = number => { |
|
|
|
|
const decimalPlaces = 6; |
|
|
|
@ -88,52 +87,7 @@ export default function LaancStep2({
|
|
|
|
|
] |
|
|
|
|
}); |
|
|
|
|
}; |
|
|
|
|
//laanc 문구 정의 함수
|
|
|
|
|
const laancReason = ( |
|
|
|
|
flight, |
|
|
|
|
arcrftDuplicated, |
|
|
|
|
planAreaDuplicatd, |
|
|
|
|
pilotQlfc, |
|
|
|
|
arcrftInsurance |
|
|
|
|
) => { |
|
|
|
|
if (flight) { |
|
|
|
|
return ( |
|
|
|
|
<> |
|
|
|
|
<AlertCircle size={15} /> |
|
|
|
|
<span className='ms-1'>검토 결과 미 승인 대상입니다.</span> |
|
|
|
|
<span className='cancel-txt'> |
|
|
|
|
제출하신 비행계획상의 비행구역과 비행시간이 <br /> |
|
|
|
|
별도의 승인을 필요로 하지 않습니다. <br /> |
|
|
|
|
<br /> |
|
|
|
|
아래 조종자 준수사항에 유의하여 비행하시기 바랍니다. |
|
|
|
|
</span> |
|
|
|
|
</> |
|
|
|
|
); |
|
|
|
|
{ |
|
|
|
|
/* <span className='cancel-txt'> |
|
|
|
|
유효성 검사에 실패하였습니다. |
|
|
|
|
<br /> |
|
|
|
|
다시 검사해주시기 바랍니다. |
|
|
|
|
</span> */ |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
if (arcrftDuplicated || planAreaDuplicatd) { |
|
|
|
|
return ( |
|
|
|
|
<> |
|
|
|
|
<AlertCircle size={15} /> |
|
|
|
|
<span className='ms-1'>검토 결과 미 승인 대상입니다.</span> |
|
|
|
|
<span className='cancel-txt'> |
|
|
|
|
제출하신 비행계획상의 비행구역과 비행시간에 <br /> |
|
|
|
|
이미 다른 드론의 운항이 계획되어 있습니다. <br /> |
|
|
|
|
<br /> |
|
|
|
|
비행상의 안전을 위해 스텝1 단계에서 <br /> |
|
|
|
|
비행구역 또는 비행시간 변경 후 다시 신청하여 주시기 바랍니다. |
|
|
|
|
</span> |
|
|
|
|
</> |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
|
<> |
|
|
|
|
<ModalHeader> |
|
|
|
@ -162,7 +116,6 @@ export default function LaancStep2({
|
|
|
|
|
</div> |
|
|
|
|
</Alert> |
|
|
|
|
</Col> |
|
|
|
|
{/* validation은 on 클래스로 제어 */} |
|
|
|
|
<Col className='validation on' md='12'> |
|
|
|
|
<p style={{ color: '#28c76f' }}> |
|
|
|
|
<CheckCircle /> |
|
|
|
@ -183,7 +136,6 @@ export default function LaancStep2({
|
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div className='mt-1'> |
|
|
|
|
{/* 사전 결과 승인 대상일때 color=success */} |
|
|
|
|
<Alert color={'success'}> |
|
|
|
|
<div className='alert-body'> |
|
|
|
|
<CheckCircle size={15} /> |
|
|
|
|