Desktop snapcast mini ready
This commit is contained in:
@ -17,6 +17,8 @@ class SnapcastVolumeControl extends React.Component{
|
||||
this.state = {
|
||||
expanded: false
|
||||
}
|
||||
|
||||
this.handleClick = this.handleClick.bind(this);
|
||||
}
|
||||
|
||||
componentDidMount(){
|
||||
@ -25,6 +27,22 @@ class SnapcastVolumeControl extends React.Component{
|
||||
}
|
||||
}
|
||||
|
||||
handleClick(e){
|
||||
if ($(e.target).closest('.snapcast-volume-control').length <= 0){
|
||||
this.setExpanded(false);
|
||||
}
|
||||
}
|
||||
|
||||
setExpanded(expanded = !this.state.expanded){
|
||||
if (expanded){
|
||||
this.setState({expanded: expanded});
|
||||
window.addEventListener("click", this.handleClick, false);
|
||||
} else {
|
||||
this.setState({expanded: expanded});
|
||||
window.removeEventListener("click", this.handleClick, false);
|
||||
}
|
||||
}
|
||||
|
||||
renderVolumes(){
|
||||
|
||||
var clients = [];
|
||||
@ -67,14 +85,14 @@ class SnapcastVolumeControl extends React.Component{
|
||||
if (this.state.expanded){
|
||||
return (
|
||||
<span className="snapcast-volume-control">
|
||||
<a className="control speakers active" onClick={e => this.setState({expanded: !this.state.expanded})}><Icon name="speaker" /></a>
|
||||
<a className="control speakers active" onClick={e => this.setExpanded()}><Icon name="speaker" /></a>
|
||||
{this.renderVolumes()}
|
||||
</span>
|
||||
);
|
||||
} else {
|
||||
return (
|
||||
<span className="snapcast-volume-control">
|
||||
<a className="control speakers" onClick={e => this.setState({expanded: !this.state.expanded})}><Icon name="speaker" /></a>
|
||||
<a className="control speakers" onClick={e => this.setExpanded()}><Icon name="speaker" /></a>
|
||||
</span>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user