Handle toggle in action creators.

This commit is contained in:
Jordan Eldredge 2017-04-23 16:32:12 -07:00
parent 7ba3c15134
commit d0a6ce6d7f
4 changed files with 32 additions and 44 deletions

View file

@ -24,8 +24,8 @@ export const STOP_WORKING = "STOP_WORKING";
export const TOGGLE_CONTEXT_MENU = "TOGGLE_CONTEXT_MENU";
export const TOGGLE_DOUBLESIZE_MODE = "TOGGLE_DOUBLESIZE_MODE";
export const TOGGLE_EQUALIZER_WINDOW = "TOGGLE_EQUALIZER_WINDOW";
export const TOGGLE_EQ_AUTO = "TOGGLE_EQ_AUTO";
export const TOGGLE_EQ_ON = "TOGGLE_EQ_ON";
export const SET_EQ_AUTO = "SET_EQ_AUTO";
export const SET_EQ_ON = "SET_EQ_ON";
export const TOGGLE_LLAMA_MODE = "TOGGLE_LLAMA_MODE";
export const TOGGLE_REPEAT = "TOGGLE_REPEAT";
export const TOGGLE_SHADE_MODE = "TOGGLE_SHADE_MODE";

View file

@ -2,24 +2,18 @@ import React from "react";
import { connect } from "react-redux";
import classnames from "classnames";
import { TOGGLE_EQ_AUTO } from "../actionTypes";
import { SET_EQ_AUTO } from "../actionTypes";
class EqAuto extends React.Component {
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
}
const EqAuto = props => {
const className = classnames({
selected: props.auto
});
return <div id="auto" className={className} onClick={props.toggleAuto} />;
};
handleClick() {
this.props.dispatch({ type: TOGGLE_EQ_AUTO });
}
const toggleAuto = () => (dispatch, getState) => {
dispatch({ type: SET_EQ_AUTO, value: !getState().equalizer.auto });
};
render() {
const className = classnames({
selected: this.props.auto
});
return <div id="auto" className={className} onClick={this.handleClick} />;
}
}
export default connect(state => state.equalizer)(EqAuto);
const mapDispatchToProps = { toggleAuto };
export default connect(state => state.equalizer, mapDispatchToProps)(EqAuto);

View file

@ -2,24 +2,18 @@ import React from "react";
import { connect } from "react-redux";
import classnames from "classnames";
import { TOGGLE_EQ_ON } from "../actionTypes";
import { SET_EQ_ON } from "../actionTypes";
class EqOn extends React.Component {
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
}
const EqOn = props => {
const className = classnames({
selected: props.on
});
return <div id="on" className={className} onClick={props.toggleOn} />;
};
handleClick() {
this.props.dispatch({ type: TOGGLE_EQ_ON });
}
const toggleOn = () => (dispatch, getState) => {
dispatch({ type: SET_EQ_ON, value: !getState().equalizer.on });
};
render() {
const className = classnames({
selected: this.props.on
});
return <div id="on" className={className} onClick={this.handleClick} />;
}
}
export default connect(state => state.equalizer)(EqOn);
const mapDispatchToProps = { toggleOn };
export default connect(state => state.equalizer, mapDispatchToProps)(EqOn);

View file

@ -18,8 +18,8 @@ import {
TOGGLE_CONTEXT_MENU,
TOGGLE_DOUBLESIZE_MODE,
TOGGLE_EQUALIZER_WINDOW,
TOGGLE_EQ_AUTO,
TOGGLE_EQ_ON,
SET_EQ_AUTO,
SET_EQ_ON,
TOGGLE_LLAMA_MODE,
TOGGLE_REPEAT,
TOGGLE_SHADE_MODE,
@ -153,10 +153,10 @@ const equalizer = (state, action) => {
const newSliders = { ...state.sliders };
newSliders[action.band] = action.value;
return { ...state, sliders: newSliders };
case TOGGLE_EQ_ON:
return { ...state, on: !state.on };
case TOGGLE_EQ_AUTO:
return { ...state, auto: !state.auto };
case SET_EQ_ON:
return { ...state, on: action.value };
case SET_EQ_AUTO:
return { ...state, auto: action.value };
default:
return state;
}