Skip to content

Commit 78dbf55

Browse files
Fix battery data sorting to avoid mutating state (#1156)
* Fix battery data sorting to avoid mutating state * Memoize selectBatteryData with createSelector to avoid rerenders Agent-Logs-Url: https://github.com/Avis-Drone-Labs/FGCS/sessions/40eb713b-8875-4857-9130-7ed9b003df1c Co-authored-by: 1Blademaster <39247152+1Blademaster@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
1 parent 2f7884e commit 78dbf55

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

gcs/src/redux/slices/droneInfoSlice.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -413,8 +413,7 @@ const droneInfoSlice = createSlice({
413413
selectRSSI: (state) => state.rssi,
414414
selectAircraftType: (state) => state.aircraftType,
415415

416-
selectBatteryData: (state) =>
417-
state.batteryData.sort((b1, b2) => b1.id - b2.id),
416+
selectRawBatteryData: (state) => state.batteryData,
418417
selectGuidedModePinData: (state) => state.guidedModePinData,
419418
selectSelectedDisplayTelemetry: (state) => state.selectedDisplayTelemetry,
420419
selectStatusText: (state) => state.statusText,
@@ -462,6 +461,11 @@ export const {
462461
} = droneInfoSlice.actions
463462

464463
// Memoized selectors because redux is a bitch
464+
export const selectBatteryData = createSelector(
465+
[droneInfoSlice.selectors.selectRawBatteryData],
466+
(batteryData) => [...batteryData].sort((b1, b2) => b1.id - b2.id),
467+
)
468+
465469
export const selectDroneCoords = createSelector(
466470
[droneInfoSlice.selectors.selectGPS],
467471
({ lat, lon }) => {
@@ -611,7 +615,6 @@ export const {
611615
selectEscTelemetry5To8,
612616
selectFlightMode,
613617
selectAircraftType,
614-
selectBatteryData,
615618
selectGuidedModePinData,
616619
selectSelectedDisplayTelemetry,
617620
selectGraphValues,

0 commit comments

Comments
 (0)