Skip to content

Commit

Permalink
remove old migration for settings property (#334)
Browse files Browse the repository at this point in the history
reverts part of PR #192
  • Loading branch information
skyqrose authored Dec 3, 2019
1 parent d7d6ec4 commit 50a6e57
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 85 deletions.
27 changes: 1 addition & 26 deletions assets/src/hooks/usePersistedStateReducer.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { useEffect, useReducer } from "react"
import { loadState, saveState } from "../localStorage"
import { defaultSettings } from "../settings"
import { Dispatch, Reducer, State } from "../state"

const APP_STATE_KEY = "mbta-skate-state"
Expand All @@ -17,31 +16,7 @@ const usePersistedStateReducer = (
reducer: Reducer,
defaultValue: State
): [State, Dispatch] => {
let loadedState = loadState(APP_STATE_KEY) as State | undefined

// Update to new settings properties from saved values in local storage.
// This can be removed after it's live for awhile, along with property in Settings -- MSS 2019-09-11
if (
loadedState &&
Object.keys(loadedState).includes("settings") &&
Object.keys(loadedState.settings).length === 1 &&
Object.keys(loadedState.settings)[0] === "vehicleLabel"
) {
loadedState = {
...loadedState,
settings: {
vehicleLabel: undefined,
ladderVehicleLabel:
loadedState.settings.vehicleLabel ||
defaultSettings.ladderVehicleLabel,
shuttleVehicleLabel: defaultSettings.shuttleVehicleLabel,
},
}

// Save these changes right away
saveState(APP_STATE_KEY, filter(loadedState, PERSISTED_KEYS))
}

const loadedState = loadState(APP_STATE_KEY) as State | undefined
const [state, dispatch] = useReducer(
reducer,
defaultValue,
Expand Down
5 changes: 0 additions & 5 deletions assets/src/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,11 @@ export enum VehicleLabelSetting {
}

export interface Settings {
// DEPRECATED property
// Can be removed after a little while along with
// special handling code in usePersistedStateReducer. -- MSS 2019-09-11
vehicleLabel: VehicleLabelSetting | undefined
ladderVehicleLabel: VehicleLabelSetting
shuttleVehicleLabel: VehicleLabelSetting
}

export const defaultSettings: Settings = {
vehicleLabel: undefined,
ladderVehicleLabel: VehicleLabelSetting.RunNumber,
shuttleVehicleLabel: VehicleLabelSetting.VehicleNumber,
}
Expand Down
54 changes: 0 additions & 54 deletions assets/tests/hooks/usePersistedStateReducer.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ describe("usePersistedStateReducer", () => {
selectedShuttleRunIds: [],
selectedVehicleId: "2",
settings: {
vehicleLabel: undefined,
ladderVehicleLabel: VehicleLabelSetting.RunNumber,
shuttleVehicleLabel: VehicleLabelSetting.VehicleNumber,
},
Expand Down Expand Up @@ -78,7 +77,6 @@ describe("usePersistedStateReducer", () => {
selectedShuttleRunIds: [],
selectedVehicleId: "2",
settings: {
vehicleLabel: undefined,
ladderVehicleLabel: VehicleLabelSetting.RunNumber,
shuttleVehicleLabel: VehicleLabelSetting.VehicleNumber,
},
Expand All @@ -95,7 +93,6 @@ describe("usePersistedStateReducer", () => {
selectedShuttleRunIds: [],
selectedVehicleId: "2",
settings: {
vehicleLabel: undefined,
ladderVehicleLabel: VehicleLabelSetting.RunNumber,
shuttleVehicleLabel: VehicleLabelSetting.RunNumber,
},
Expand All @@ -108,57 +105,6 @@ describe("usePersistedStateReducer", () => {

expect(state).toEqual(expectedState)
})

test("fixes deprecated vehicleLabel settings property", () => {
jest
.spyOn(window.localStorage, "getItem")
.mockImplementation(
(_stateKey: string) =>
'{"selectedRouteIds":["28","39"],"settings":{"vehicleLabel":2}}'
)

const initialState: State = {
pickerContainerIsVisible: true,
search: {
text: "search text",
property: "run",
isActive: true,
},
selectedRouteIds: ["1", "2"],
selectedShuttleRouteIds: [],
selectedShuttleRunIds: [],
selectedVehicleId: "2",
settings: {
vehicleLabel: undefined,
ladderVehicleLabel: VehicleLabelSetting.RunNumber,
shuttleVehicleLabel: VehicleLabelSetting.VehicleNumber,
},
}
const expectedState: State = {
pickerContainerIsVisible: true,
search: {
text: "search text",
property: "run",
isActive: true,
},
selectedRouteIds: ["28", "39"],
selectedShuttleRouteIds: [],
selectedShuttleRunIds: [],
selectedVehicleId: "2",
settings: {
vehicleLabel: undefined,
ladderVehicleLabel: VehicleLabelSetting.VehicleNumber,
shuttleVehicleLabel: VehicleLabelSetting.VehicleNumber,
},
}

const { result } = renderHook(() =>
usePersistedStateReducer(reducer, initialState)
)
const [state] = result.current

expect(state).toEqual(expectedState)
})
})

describe("filter", () => {
Expand Down

0 comments on commit 50a6e57

Please sign in to comment.