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;
if( slider.className != 'slider' ) slider = slider.parentElement;
var sliderX = e.clientX - slider.getBoundingClientRect().left;
var sliderWidth = slider.getBoundingClientRect().width;
var percent = Math.round(( sliderX / sliderWidth ) * 100);
if (percent > 100){
percent = 100
} else if (percent < 0 ){
percent = 0
}
this.props.mopidyActions.setVolume( percent )
}
renderMuteButton(){
if (this.props.mute){
return (
this.props.mopidyActions.setMute(false)}>
Unmute
)
} else {
return (
this.props.mopidyActions.setMute(true)}>
Mute
)
}
}
render(){
var className = "volume-control"
if (this.props.mute){
className += " muted"
}
return (
{this.renderMuteButton()}
);
}
}
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)