|
|
|
@ -6,34 +6,41 @@ import Avatar from '../../../../@core/components/avatar';
|
|
|
|
|
import { Bell, Check, X, AlertTriangle, Info } from 'react-feather' |
|
|
|
|
import { controlGpDtlAction, controlGpFlightPlanAction } from '../../../../modules/control/gp'; |
|
|
|
|
import { objectClickAction, objectUnClickAction } from '../../../../modules/control/map/actions/controlMapActions'; |
|
|
|
|
import 'react-toastify/dist/ReactToastify.css'; |
|
|
|
|
|
|
|
|
|
const DronToast = () => { |
|
|
|
|
const dispatch = useDispatch(); |
|
|
|
|
const dispatch = useDispatch();
|
|
|
|
|
|
|
|
|
|
const { controlGpList } = useSelector(state => state.controlGpState); |
|
|
|
|
const { controlGpArcrftWarnList } = useSelector(state => state.controlGpLogState);
|
|
|
|
|
const [toastId, setToastId] = useState();
|
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (controlGpList) { |
|
|
|
|
if (controlGpArcrftWarnList) { |
|
|
|
|
console.log("===================================") |
|
|
|
|
console.log('tastID : ', toastId); |
|
|
|
|
if (!toastId) { |
|
|
|
|
controlGpList.forEach(gps => { |
|
|
|
|
// console.log("===================================")
|
|
|
|
|
controlGpArcrftWarnList.forEach(warn => {
|
|
|
|
|
// console.log("Warn ==> ", gps.controlWarnCd);
|
|
|
|
|
// console.log("Noti ==> ", gps.controlWarnNotyCd);
|
|
|
|
|
if (gps.controlWarnCd && gps.controlWarnNotyCd) {
|
|
|
|
|
if (warn.controlWarnCd) { |
|
|
|
|
console.log('warn CD : ', warn.controlWarnCd);
|
|
|
|
|
|
|
|
|
|
const id = toast.info( |
|
|
|
|
toastRender( |
|
|
|
|
`${gps.objectId} 비정상 상황 알림`, |
|
|
|
|
`${warn.idntfNum} 비정상 상황 알림`, |
|
|
|
|
`경로 상에 비행 구역을 이탈했습니다.` |
|
|
|
|
), |
|
|
|
|
{ |
|
|
|
|
autoClose: false,
|
|
|
|
|
hideProgressBar: true, |
|
|
|
|
position: toast.POSITION.BOTTOM_RIGHT, |
|
|
|
|
onClick: props => {
|
|
|
|
|
onClick: () => {
|
|
|
|
|
setToastId(null); |
|
|
|
|
handleNotiClick(warn.controlId, warn.idntfNum); |
|
|
|
|
}, |
|
|
|
|
onClose: () => { |
|
|
|
|
setToastId(null); |
|
|
|
|
handleNotiClick(gps.controlId, gps.objectId); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
) |
|
|
|
@ -43,7 +50,7 @@ const DronToast = () => {
|
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}, [controlGpList]); |
|
|
|
|
}, [controlGpArcrftWarnList]); |
|
|
|
|
|
|
|
|
|
const handleNotiClick = (controlId, idntfNum) => { |
|
|
|
|
dispatch(objectClickAction(controlId)); |
|
|
|
@ -73,23 +80,7 @@ const DronToast = () => {
|
|
|
|
|
) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
|
// <Fragment>
|
|
|
|
|
// <div className='toastify-header'>
|
|
|
|
|
// <div className='title-wrapper'>
|
|
|
|
|
// <Avatar size='sm' color='info' icon={<Info size={12} />} />
|
|
|
|
|
// <h6 className='text-info ml-50 mb-0'>
|
|
|
|
|
// {/* {title} */}
|
|
|
|
|
// </h6>
|
|
|
|
|
// </div>
|
|
|
|
|
// </div>
|
|
|
|
|
|
|
|
|
|
// <div className='toastify-body'>
|
|
|
|
|
// <span>
|
|
|
|
|
// {/* {message} */}
|
|
|
|
|
// </span>
|
|
|
|
|
// </div>
|
|
|
|
|
// </Fragment>
|
|
|
|
|
return (
|
|
|
|
|
null |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|