diff --git a/js/actionCreators/equalizer.js b/js/actionCreators/equalizer.ts similarity index 54% rename from js/actionCreators/equalizer.js rename to js/actionCreators/equalizer.ts index af1df716..fb4b8988 100644 --- a/js/actionCreators/equalizer.js +++ b/js/actionCreators/equalizer.ts @@ -1,10 +1,11 @@ import { BANDS } from "../constants"; import { SET_EQ_ON, SET_EQ_OFF, SET_BAND_VALUE } from "../actionTypes"; +import { Band, Dispatchable } from "../types"; const BAND_SNAP_DISTANCE = 10; const BAND_MID_POINT_VALUE = 50; -export function setEqBand(band, value) { +export function setEqBand(band: Band, value: number): Dispatchable { if ( value < BAND_MID_POINT_VALUE + BAND_SNAP_DISTANCE && value > BAND_MID_POINT_VALUE - BAND_SNAP_DISTANCE @@ -14,37 +15,40 @@ export function setEqBand(band, value) { return { type: SET_BAND_VALUE, band, value }; } -function _setEqTo(value) { +function _setEqTo(value: number): Dispatchable { return dispatch => { - Object.keys(BANDS).forEach(key => { + Object.values(BANDS).forEach(band => { dispatch({ type: SET_BAND_VALUE, value, - band: BANDS[key] + band: band }); }); }; } -export function setEqToMax() { +export function setEqToMax(): Dispatchable { return _setEqTo(100); } -export function setEqToMid() { +export function setEqToMid(): Dispatchable { return _setEqTo(50); } -export function setEqToMin() { +export function setEqToMin(): Dispatchable { return _setEqTo(0); } -export function setPreamp(value) { +export function setPreamp(value: number): Dispatchable { return { type: SET_BAND_VALUE, band: "preamp", value }; } -export function toggleEq() { +export function toggleEq(): Dispatchable { return (dispatch, getState) => { - const type = getState().equalizer.on ? SET_EQ_OFF : SET_EQ_ON; - dispatch({ type }); + if (getState().equalizer.on) { + dispatch({ type: SET_EQ_OFF }); + } else { + dispatch({ type: SET_EQ_ON }); + } }; }