import { CHANGE_GAIN, CHANGE_PREAMP } from '../actions' const GAIN_KEY = 'gainMode' const PREAMP_KEY = 'preAmp' const getPreAmp = () => { const storage = localStorage.getItem(PREAMP_KEY) if (storage === null) { return 0 } else { const asFloat = parseFloat(storage) return isNaN(asFloat) ? 0 : asFloat } } const initialState = { gainMode: localStorage.getItem(GAIN_KEY) || 'none', preAmp: getPreAmp(), } export const replayGainReducer = ( previousState = initialState, { type, payload }, ) => { switch (type) { case CHANGE_GAIN: { localStorage.setItem(GAIN_KEY, payload) return { ...previousState, gainMode: payload, } } case CHANGE_PREAMP: { const value = parseFloat(payload) if (isNaN(value)) { return previousState } localStorage.setItem(PREAMP_KEY, payload) return { ...previousState, preAmp: value, } } default: return previousState } }