import React, { PropTypes } from 'react' import { connect } from 'react-redux' import { bindActionCreators } from 'redux' import { Link } from 'react-router' import FontAwesome from 'react-fontawesome' import * as mopidyActions from '../services/mopidy/actions' import * as uiActions from '../services/ui/actions' class VolumeControl extends React.Component{ constructor(props) { super(props) } handleClick(e){ var slider = e.target; var sliderY = e.clientY - slider.getBoundingClientRect().top; var sliderHeight = slider.getBoundingClientRect().height; var percent = 100 - parseInt( sliderY / sliderHeight * 100 ); this.props.mopidyActions.setVolume( percent ) } render(){ var className = "volume-control" return ( this.props.uiActions.openModal('volume')}> {this.props.mute ? : } this.props.mopidyActions.setMute(!this.props.mute)}> {this.props.mute ? : }
this.handleClick(e) } >
); } } const mapStateToProps = (state, ownProps) => { return { volume: state.mopidy.volume, mute: state.mopidy.mute } } const mapDispatchToProps = (dispatch) => { return { uiActions: bindActionCreators(uiActions, dispatch), mopidyActions: bindActionCreators(mopidyActions, dispatch) } } export default connect(mapStateToProps, mapDispatchToProps)(VolumeControl)