diff --git a/js/actionCreators/equalizer.ts b/js/actionCreators/equalizer.ts index 5eb690ab..4755de57 100644 --- a/js/actionCreators/equalizer.ts +++ b/js/actionCreators/equalizer.ts @@ -64,7 +64,9 @@ export function toggleEq(): Thunk { } export function toggleEqAuto(): Thunk { - return (dispatch, getState) => { - dispatch({ type: SET_EQ_AUTO, value: !getState().equalizer.auto }); + return dispatch => { + // We don't actually support this feature yet so don't let the user ever turn it on. + // dispatch({ type: SET_EQ_AUTO, value: !getState().equalizer.auto }); + dispatch({ type: SET_EQ_AUTO, value: false }); }; } diff --git a/js/components/EqualizerWindow/EqAuto.tsx b/js/components/EqualizerWindow/EqAuto.tsx index 110f7a31..51c8da84 100644 --- a/js/components/EqualizerWindow/EqAuto.tsx +++ b/js/components/EqualizerWindow/EqAuto.tsx @@ -1,34 +1,15 @@ import React from "react"; -import { connect } from "react-redux"; import classnames from "classnames"; -import { SET_EQ_AUTO } from "../../actionTypes"; -import { Dispatch, AppState } from "../../types"; +import * as Actions from "../../actionCreators"; +import { useTypedSelector, useActionCreator } from "../../hooks"; -interface StateProps { - auto: boolean; -} +const EqAuto = React.memo(() => { + const selected = useTypedSelector(state => state.equalizer.auto); + const toggleAuto = useActionCreator(Actions.toggleEqAuto); + return ( +
+ ); +}); -interface DispatchProps { - toggleAuto(): void; -} - -const EqAuto = (props: StateProps & DispatchProps) => { - const className = classnames({ selected: props.auto }); - return
; -}; - -const mapStateToProps = (state: AppState): StateProps => { - return { auto: state.equalizer.auto }; -}; -const mapDispatchToProps = () => (dispatch: Dispatch): DispatchProps => { - // We don't support auto. - return { - toggleAuto: () => dispatch({ type: SET_EQ_AUTO, value: false }), - }; -}; - -export default connect( - mapStateToProps, - mapDispatchToProps -)(EqAuto); +export default EqAuto; diff --git a/js/components/MainWindow/ActionButtons.tsx b/js/components/MainWindow/ActionButtons.tsx index 77d256a1..50442ac9 100644 --- a/js/components/MainWindow/ActionButtons.tsx +++ b/js/components/MainWindow/ActionButtons.tsx @@ -1,37 +1,21 @@ import React from "react"; -import { connect } from "react-redux"; -import { previous, play, pause, stop, next } from "../../actionCreators"; -import { Dispatch } from "../../types"; +import * as Actions from "../../actionCreators"; +import { useActionCreator } from "../../hooks"; -interface DispatchProps { - previous(): void; - play(): void; - pause(): void; - stop(): void; - next(): void; -} +const ActionButtons = React.memo(() => { + const previous = useActionCreator(Actions.previous); + const play = useActionCreator(Actions.play); + const pause = useActionCreator(Actions.pause); + const next = useActionCreator(Actions.next); + return ( +
+