import { Slider , Action } from "./../types" ; import { SET_BAND_VALUE , SET_EQ_AUTO , SET_EQ_ON , SET_EQ_OFF , LOAD_SERIALIZED_STATE , } from "../actionTypes" ; import { EqualizerSerializedStateV1 } from "../serializedStates/v1Types" ; export interface EqualizerState { on : boolean ; auto : boolean ; sliders : Record < Slider , number > ; } const defaultState = { on : true , auto : false , sliders : { preamp : 50 , 60 : 50 , 170 : 50 , 310 : 50 , 600 : 50 , 1000 : 50 , 3000 : 50 , 6000 : 50 , 12000 : 50 , 14000 : 50 , 16000 : 50 , } , } ; const equalizer = ( state = defaultState , action ) : EqualizerState => { switch ( action . type ) { case SET_BAND_VALUE : const newSliders = { ... state . sliders , [ action . band ] : action . value } ; return { ... state , sliders : newSliders } ; case SET_EQ_ON : return { ... state , on : true } ; case SET_EQ_OFF : return { ... state , on : false } ; case SET_EQ_AUTO : return { ... state , auto : action . value } ; case LOAD_SERIALIZED_STATE : return action . serializedState . equalizer || state ; default : return state ; } } ; export function getSerializedState ( state ) { return state ; } export default equalizer ;