@@ -24,6 +24,7 @@ import {
2424import {
2525 deletePoiMarker ,
2626 emitReposition ,
27+ selectConnectedToDrone ,
2728 selectPoiMarkers ,
2829} from "../../redux/slices/droneConnectionSlice"
2930import {
@@ -69,6 +70,7 @@ function MapSectionNonMemo({ passedRef, onDragstart, mapId = "dashboard" }) {
6970 // Redux
7071 const dispatch = useDispatch ( )
7172 const gpsData = useSelector ( selectGPS )
73+ const connectedToDrone = useSelector ( selectConnectedToDrone )
7274 const missionItems = useSelector ( selectCurrentMissionItems )
7375 const homePosition = useSelector ( selectHomePosition ) // use actual home position
7476 const flightModeString = useSelector ( selectFlightModeString )
@@ -138,14 +140,21 @@ function MapSectionNonMemo({ passedRef, onDragstart, mapId = "dashboard" }) {
138140 } , [ contextMenuRef . current ] )
139141
140142 useEffect ( ( ) => {
143+ if ( ! connectedToDrone ) {
144+ setPosition ( null )
145+ setFirstCenteredToDrone ( false )
146+ return
147+ }
148+
141149 // Check latest gpsData point is valid
142150 if (
143151 isNaN ( gpsData . lat ) ||
144152 isNaN ( gpsData . lon ) ||
145153 gpsData . lon === 0 ||
146154 gpsData . lat === 0
147- )
155+ ) {
148156 return
157+ }
149158
150159 // Move drone icon on map
151160 let lat = intToCoord ( gpsData . lat )
@@ -159,7 +168,7 @@ function MapSectionNonMemo({ passedRef, onDragstart, mapId = "dashboard" }) {
159168 } )
160169 setFirstCenteredToDrone ( true )
161170 }
162- } , [ gpsData ] )
171+ } , [ gpsData , connectedToDrone , firstCenteredToDrone , initialViewState . zoom ] )
163172
164173 useEffect ( ( ) => {
165174 setFilteredMissionItems ( filterMissionItems ( missionItems . missionItems ) )
0 commit comments