|
|
@ -5,7 +5,8 @@ import logo from '../../../assets/images/pal_logo.png'; |
|
|
|
|
|
|
|
|
|
|
|
import { Sun, Map, Bell } from 'react-feather'; |
|
|
|
import { Sun, Map, Bell } from 'react-feather'; |
|
|
|
|
|
|
|
|
|
|
|
import { AiOutlinePoweroff } from 'react-icons/ai'; |
|
|
|
import { AiOutlinePoweroff, AiOutlineExclamation } from 'react-icons/ai'; |
|
|
|
|
|
|
|
import { IoAlertOutline } from 'react-icons/io5'; |
|
|
|
|
|
|
|
|
|
|
|
import { ReactComponent as DroneMenuIcon } from '../../../assets/images/drone_menu_icon.svg'; |
|
|
|
import { ReactComponent as DroneMenuIcon } from '../../../assets/images/drone_menu_icon.svg'; |
|
|
|
|
|
|
|
|
|
|
@ -19,11 +20,15 @@ import WebsocketClient from '../../../components/websocket/WebsocketClient'; |
|
|
|
import { useDispatch, useSelector } from 'react-redux'; |
|
|
|
import { useDispatch, useSelector } from 'react-redux'; |
|
|
|
|
|
|
|
|
|
|
|
import * as Actions from '../../../modules/account/login/actions/authAction'; |
|
|
|
import * as Actions from '../../../modules/account/login/actions/authAction'; |
|
|
|
|
|
|
|
import { objectUnClickAction } from '../../../modules/control/map/actions/controlMapActions'; |
|
|
|
|
|
|
|
|
|
|
|
const ControlMain = () => { |
|
|
|
const ControlMain = () => { |
|
|
|
const dispatch = useDispatch(); |
|
|
|
const dispatch = useDispatch(); |
|
|
|
|
|
|
|
|
|
|
|
const { isClickObject } = useSelector(state => state.controlMapReducer); |
|
|
|
const { isClickObject } = useSelector(state => state.controlMapReducer); |
|
|
|
|
|
|
|
const { controlGpList } = useSelector(state => state.controlGpState); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const [alarm, setAlarm] = useState(false); |
|
|
|
|
|
|
|
|
|
|
|
const [oepnReportList, setOpenReportList] = useState(false); |
|
|
|
const [oepnReportList, setOpenReportList] = useState(false); |
|
|
|
const [openReportDetail, setOpenReportDetail] = useState(false); |
|
|
|
const [openReportDetail, setOpenReportDetail] = useState(false); |
|
|
@ -45,10 +50,14 @@ const ControlMain = () => { |
|
|
|
setOpenWeatherList(true); |
|
|
|
setOpenWeatherList(true); |
|
|
|
setOpenAlarmList(false); |
|
|
|
setOpenAlarmList(false); |
|
|
|
} else if (val === 'alarmList') { |
|
|
|
} else if (val === 'alarmList') { |
|
|
|
|
|
|
|
dispatch(objectUnClickAction()); |
|
|
|
|
|
|
|
|
|
|
|
setOpenReportList(false); |
|
|
|
setOpenReportList(false); |
|
|
|
setOpenReportDetail(false); |
|
|
|
setOpenReportDetail(false); |
|
|
|
setOpenWeatherList(false); |
|
|
|
setOpenWeatherList(false); |
|
|
|
setOpenAlarmList(true); |
|
|
|
setOpenAlarmList(true); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setAlarm(false); |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
@ -61,6 +70,20 @@ const ControlMain = () => { |
|
|
|
dispatch(Actions.logout.request()); |
|
|
|
dispatch(Actions.logout.request()); |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(controlGpList) { |
|
|
|
|
|
|
|
const warnGps = controlGpList.find(gps => { |
|
|
|
|
|
|
|
return gps.controlWarnNotyCd === true |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(warnGps) { |
|
|
|
|
|
|
|
setAlarm(true); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}, [controlGpList]); |
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
return ( |
|
|
|
<> |
|
|
|
<> |
|
|
|
<ControlAlarmNotice /> |
|
|
|
<ControlAlarmNotice /> |
|
|
@ -88,7 +111,7 @@ const ControlMain = () => { |
|
|
|
</li> */} |
|
|
|
</li> */} |
|
|
|
<li> |
|
|
|
<li> |
|
|
|
<button onClick={() => openMenu('alarmList')}> |
|
|
|
<button onClick={() => openMenu('alarmList')}> |
|
|
|
<Bell width='20' height='20' /> |
|
|
|
{alarm ? <IoAlertOutline size={25} /> : <Bell width='20' height='20' />} |
|
|
|
</button> |
|
|
|
</button> |
|
|
|
</li> |
|
|
|
</li> |
|
|
|
</ul> |
|
|
|
</ul> |
|
|
|