|
|
@ -10,6 +10,10 @@ import { |
|
|
|
flightlayerPolygon, |
|
|
|
flightlayerPolygon, |
|
|
|
flightlayerBuffer |
|
|
|
flightlayerBuffer |
|
|
|
} from '../../utility/MapUtils'; |
|
|
|
} from '../../utility/MapUtils'; |
|
|
|
|
|
|
|
import { useHistory } from 'react-router-dom'; |
|
|
|
|
|
|
|
import { Grid } from 'react-feather'; |
|
|
|
|
|
|
|
import { AiOutlinePoweroff } from 'react-icons/ai'; |
|
|
|
|
|
|
|
import { IoAlertOutline } from 'react-icons/io5'; |
|
|
|
import { clientSaveAreaCoordinateList } from '@src/redux/features/laanc/laancSlice'; |
|
|
|
import { clientSaveAreaCoordinateList } from '@src/redux/features/laanc/laancSlice'; |
|
|
|
import { MapControl } from '../../components/map/MapControl'; |
|
|
|
import { MapControl } from '../../components/map/MapControl'; |
|
|
|
import { clientSetIsMapLoading } from '@src/redux/features/laanc/laancSlice'; |
|
|
|
import { clientSetIsMapLoading } from '@src/redux/features/laanc/laancSlice'; |
|
|
@ -18,9 +22,14 @@ import { clientMapInit } from '@src/redux/features/control/map/mapSlice'; |
|
|
|
import FlightApprovalsTable from '@src/components/flight/FlightApprovalsTable'; |
|
|
|
import FlightApprovalsTable from '@src/components/flight/FlightApprovalsTable'; |
|
|
|
import { getLaancAprvList } from '@src/redux/features/laanc/laancThunk'; |
|
|
|
import { getLaancAprvList } from '@src/redux/features/laanc/laancThunk'; |
|
|
|
import dayjs from 'dayjs'; |
|
|
|
import dayjs from 'dayjs'; |
|
|
|
|
|
|
|
import logo from '../../assets/images/logo/kac_logo_ icon.svg'; |
|
|
|
|
|
|
|
import { setLogout } from '@src/redux/features/account/auth/authThunk'; |
|
|
|
|
|
|
|
import WebsocketClient from '../../components/websocket/WebsocketClient'; |
|
|
|
|
|
|
|
import { clientDispatchTopMenu } from '@src/redux/features/layout/layoutSlice'; |
|
|
|
|
|
|
|
|
|
|
|
export default function FlightApprovalsContainer() { |
|
|
|
export default function FlightApprovalsContainer() { |
|
|
|
const dispatch = useDispatch(); |
|
|
|
const dispatch = useDispatch(); |
|
|
|
|
|
|
|
const history = useHistory(); |
|
|
|
|
|
|
|
|
|
|
|
const [selected, setSelected] = useState(null); |
|
|
|
const [selected, setSelected] = useState(null); |
|
|
|
const [isMapLoading, setIsMapLoading] = useState(false); |
|
|
|
const [isMapLoading, setIsMapLoading] = useState(false); |
|
|
@ -168,9 +177,47 @@ export default function FlightApprovalsContainer() { |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const handlerLogout = async () => { |
|
|
|
|
|
|
|
const { payload } = await dispatch(setLogout()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (payload === 'SUCCESS') { |
|
|
|
|
|
|
|
history.replace('/account/login'); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
return ( |
|
|
|
<> |
|
|
|
<> |
|
|
|
<div className='map' style={{ width: '100%' }}> |
|
|
|
<div className='left-menu'> |
|
|
|
|
|
|
|
<h1 className='logo'> |
|
|
|
|
|
|
|
<img src={logo} width='80' /> |
|
|
|
|
|
|
|
<span>UTM</span> |
|
|
|
|
|
|
|
</h1> |
|
|
|
|
|
|
|
<ul className='left-menu-nav'> |
|
|
|
|
|
|
|
<li> |
|
|
|
|
|
|
|
<button> |
|
|
|
|
|
|
|
<Grid |
|
|
|
|
|
|
|
onClick={() => { |
|
|
|
|
|
|
|
dispatch(clientDispatchTopMenu('/')); |
|
|
|
|
|
|
|
history.push('/main/dashboard'); |
|
|
|
|
|
|
|
}} |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
</button> |
|
|
|
|
|
|
|
</li> |
|
|
|
|
|
|
|
</ul> |
|
|
|
|
|
|
|
<ul className='left-menu-footer'> |
|
|
|
|
|
|
|
<li> |
|
|
|
|
|
|
|
<AiOutlinePoweroff |
|
|
|
|
|
|
|
size={25} |
|
|
|
|
|
|
|
className='logout-btn' |
|
|
|
|
|
|
|
onClick={handlerLogout} |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
</li> |
|
|
|
|
|
|
|
<li> |
|
|
|
|
|
|
|
<WebsocketClient /> |
|
|
|
|
|
|
|
</li> |
|
|
|
|
|
|
|
</ul> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div className='map'> |
|
|
|
<MapControl /> |
|
|
|
<MapControl /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div className='right-menu active'> |
|
|
|
<div className='right-menu active'> |
|
|
|