|
|
|
@ -6,7 +6,7 @@ import { CgTrees } from 'react-icons/cg';
|
|
|
|
|
import { VscRadioTower } from 'react-icons/vsc'; |
|
|
|
|
import { useDispatch, useSelector, shallowEqual } from 'react-redux'; |
|
|
|
|
import Flatpickr from 'react-flatpickr'; |
|
|
|
|
|
|
|
|
|
import * as LaancAction from '../../modules/laanc/actions/laancActions'; |
|
|
|
|
import '@styles/react/libs/flatpickr/flatpickr.scss'; |
|
|
|
|
import { |
|
|
|
|
AlertCircle, |
|
|
|
@ -38,6 +38,7 @@ import {
|
|
|
|
|
} from 'reactstrap'; |
|
|
|
|
|
|
|
|
|
import FlightArea from './FlightArea'; |
|
|
|
|
import laanc from '../../navigation/laanc'; |
|
|
|
|
|
|
|
|
|
export default function LaancStep1({ |
|
|
|
|
handleChange, |
|
|
|
@ -52,9 +53,11 @@ export default function LaancStep1({
|
|
|
|
|
handlerLaancClose, |
|
|
|
|
handlerBufferApply |
|
|
|
|
}) { |
|
|
|
|
const { user } = useSelector(state => state.authState); |
|
|
|
|
const dispatch = useDispatch(); |
|
|
|
|
|
|
|
|
|
const history = useHistory(); |
|
|
|
|
const { user } = useSelector(state => state.authState); |
|
|
|
|
const { areaCoordList } = useSelector(state => state.flightState); |
|
|
|
|
const { laancSun } = useSelector(state => state.laancState); |
|
|
|
|
const fltElevRef = useRef(null); |
|
|
|
|
const bufferZoneRef = useRef(null); |
|
|
|
|
const schFltStDtRef = useRef(null); |
|
|
|
@ -88,6 +91,23 @@ export default function LaancStep1({
|
|
|
|
|
if (!currentParm) setCenteredModal(mapParam != 'true' ? false : true); |
|
|
|
|
}, [location]); |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (areaCoordList) { |
|
|
|
|
if (areaCoordList[0].coordList[0].lat !== 0) { |
|
|
|
|
dispatch( |
|
|
|
|
LaancAction.LAANC_SUN_DATA.request({ |
|
|
|
|
lat: areaCoordList[0].coordList[0].lat, |
|
|
|
|
lon: areaCoordList[0].coordList[0].lon |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}, [areaCoordList]); |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (laancSun) { |
|
|
|
|
} |
|
|
|
|
}, [laancSun]); |
|
|
|
|
useEffect(() => { |
|
|
|
|
if ( |
|
|
|
|
data.commercial === 'COMMERCIAL' || |
|
|
|
@ -145,6 +165,8 @@ export default function LaancStep1({
|
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 일물 일출 날짜 핸들러
|
|
|
|
|
const handleBlurpickr = () => {}; |
|
|
|
|
// 고도 150 미만 핸들러
|
|
|
|
|
const handleBlur = (value, type) => { |
|
|
|
|
switch (type) { |
|
|
|
@ -330,7 +352,7 @@ export default function LaancStep1({
|
|
|
|
|
value={data.schFltStDt} |
|
|
|
|
ref={schFltStDtRef} |
|
|
|
|
onFocus={handleOpenFlatpickr} |
|
|
|
|
// onOpen={handleOpenFlatpickr}
|
|
|
|
|
onBlur={handleBlurpickr} |
|
|
|
|
options={{ |
|
|
|
|
minDate: moment().format('YYYY-MM-DD'), |
|
|
|
|
maxDate: moment().add(90, 'day').format('YYYY-MM-DD') |
|
|
|
@ -342,6 +364,34 @@ export default function LaancStep1({
|
|
|
|
|
name: 'schFltStDt', |
|
|
|
|
value |
|
|
|
|
}); |
|
|
|
|
const filteredData = laancSun.filter(data => { |
|
|
|
|
const dataDateTime = moment(data.locDate, 'YYYYMMDD'); |
|
|
|
|
return dataDateTime.isSame(moment(value, 'YYYYMMDD')); |
|
|
|
|
}); |
|
|
|
|
filteredData.forEach(data => { |
|
|
|
|
if ( |
|
|
|
|
data.civile === moment(value).format('HHmmss') || |
|
|
|
|
data.civilm === moment(value).format('HHmmss') |
|
|
|
|
) { |
|
|
|
|
setIsLaancModal({ |
|
|
|
|
isOpen: true, |
|
|
|
|
title: '특별 비행 신청', |
|
|
|
|
desc: ( |
|
|
|
|
<> |
|
|
|
|
야간 비행 신청의 경우 특별 비행 신청을 |
|
|
|
|
진행하셔야 합니다. |
|
|
|
|
<br /> |
|
|
|
|
드론원스톱을 통해서 신청해 주시기 바랍니다. |
|
|
|
|
</> |
|
|
|
|
), |
|
|
|
|
type: 'date' |
|
|
|
|
}); |
|
|
|
|
handleChange({ |
|
|
|
|
name: 'schFltStDt', |
|
|
|
|
value: '' |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}} |
|
|
|
|
placeholder='비행 시작일자 선택(클릭)' |
|
|
|
|
/> |
|
|
|
@ -379,6 +429,7 @@ export default function LaancStep1({
|
|
|
|
|
data-enable-time |
|
|
|
|
defaultValue={data.schFltEndDt} |
|
|
|
|
value={data.schFltEndDt} |
|
|
|
|
onBlur={handleBlurpickr} |
|
|
|
|
ref={schFltEndDtRef} |
|
|
|
|
onFocus={handleOpenFlatpickr} |
|
|
|
|
options={{ |
|
|
|
@ -392,6 +443,34 @@ export default function LaancStep1({
|
|
|
|
|
name: 'schFltEndDt', |
|
|
|
|
value |
|
|
|
|
}); |
|
|
|
|
const filteredData = laancSun.filter(data => { |
|
|
|
|
const dataDateTime = moment(data.locDate, 'YYYYMMDD'); |
|
|
|
|
return dataDateTime.isSame(moment(value, 'YYYYMMDD')); |
|
|
|
|
}); |
|
|
|
|
filteredData.forEach(data => { |
|
|
|
|
if ( |
|
|
|
|
data.civile === moment(value).format('HHmmss') || |
|
|
|
|
data.civilm === moment(value).format('HHmmss') |
|
|
|
|
) { |
|
|
|
|
setIsLaancModal({ |
|
|
|
|
isOpen: true, |
|
|
|
|
title: '특별 비행 신청', |
|
|
|
|
desc: ( |
|
|
|
|
<> |
|
|
|
|
야간 비행 신청의 경우 특별 비행 신청을 |
|
|
|
|
진행하셔야 합니다. |
|
|
|
|
<br /> |
|
|
|
|
드론원스톱을 통해서 신청해 주시기 바랍니다. |
|
|
|
|
</> |
|
|
|
|
), |
|
|
|
|
type: 'date' |
|
|
|
|
}); |
|
|
|
|
handleChange({ |
|
|
|
|
name: 'schFltEndDt', |
|
|
|
|
value: '' |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}} |
|
|
|
|
placeholder='비행 종료일자 선택(클릭)' |
|
|
|
|
/> |
|
|
|
|