mirror of
https://github.com/ENSL/ensl_gathers.git
synced 2025-04-25 00:41:07 +00:00
Implement sound menu
This commit is contained in:
parent
04d8dd9707
commit
bf1dbd2b99
5 changed files with 59 additions and 38 deletions
|
@ -405,11 +405,7 @@ const App = React.createClass({
|
||||||
</a>
|
</a>
|
||||||
<div className="navbar-custom-menu">
|
<div className="navbar-custom-menu">
|
||||||
<ul className="nav navbar-nav">
|
<ul className="nav navbar-nav">
|
||||||
<li className="dropdown messages-menu">
|
<SoundPanel soundController={this.state.soundController} />
|
||||||
<a href="#" className="dropdown-toggle">
|
|
||||||
<i className="fa fa-headphones"></i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{profileLink}
|
{profileLink}
|
||||||
<News />
|
<News />
|
||||||
<li>
|
<li>
|
||||||
|
|
|
@ -354,10 +354,10 @@ const ChatMessage = React.createClass({
|
||||||
{this.props.message.author.username}
|
{this.props.message.author.username}
|
||||||
</strong>
|
</strong>
|
||||||
<small className="pull-right text-muted">
|
<small className="pull-right text-muted">
|
||||||
{deleteButton}
|
|
||||||
<span className="hidden-xs">
|
<span className="hidden-xs">
|
||||||
{moment(this.props.message.createdAt).format("hh:mm DD/MM")}
|
{moment(this.props.message.createdAt).format("hh:mm DD/MM")}
|
||||||
</span>
|
</span>
|
||||||
|
{deleteButton}
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
<p className="wordwrap">{this.messageContent()}</p>
|
<p className="wordwrap">{this.messageContent()}</p>
|
||||||
|
|
|
@ -11,7 +11,6 @@ const News = exports.News = React.createClass({
|
||||||
let readArticles = {};
|
let readArticles = {};
|
||||||
if (storageAvailable('localStorage')) {
|
if (storageAvailable('localStorage')) {
|
||||||
const raw = localStorage.getItem(READ_ARTICLES_STORAGE) || {};
|
const raw = localStorage.getItem(READ_ARTICLES_STORAGE) || {};
|
||||||
console.log(raw)
|
|
||||||
let rawJson;
|
let rawJson;
|
||||||
try {
|
try {
|
||||||
rawJson = JSON.parse(raw);
|
rawJson = JSON.parse(raw);
|
||||||
|
@ -110,7 +109,7 @@ const News = exports.News = React.createClass({
|
||||||
{tag}
|
{tag}
|
||||||
</a>
|
</a>
|
||||||
<ul className="dropdown-menu">
|
<ul className="dropdown-menu">
|
||||||
<li className="header">NS2 News.org</li>
|
<li className="header">NS2News.org</li>
|
||||||
<ul className="news-menu">
|
<ul className="news-menu">
|
||||||
{articles}
|
{articles}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -195,6 +195,16 @@ var MusicSelector = React.createClass({
|
||||||
})
|
})
|
||||||
|
|
||||||
var SoundPanel = React.createClass({
|
var SoundPanel = React.createClass({
|
||||||
|
getInitialState() {
|
||||||
|
return {
|
||||||
|
show: false
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
toggleShow() {
|
||||||
|
this.setState({ show: !this.state.show });
|
||||||
|
},
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
let soundController = this.props.soundController;
|
let soundController = this.props.soundController;
|
||||||
let scale = 10;
|
let scale = 10;
|
||||||
|
@ -212,6 +222,12 @@ var SoundPanel = React.createClass({
|
||||||
}).slider('setValue', soundController.getVolume() * scale);
|
}).slider('setValue', soundController.getVolume() * scale);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
componentClass() {
|
||||||
|
let componentClass = ["dropdown", "messages-menu"];
|
||||||
|
if (this.state.show) componentClass.push("open");
|
||||||
|
return componentClass.join(" ");
|
||||||
|
},
|
||||||
|
|
||||||
mute() {
|
mute() {
|
||||||
this.props.soundController.mute();
|
this.props.soundController.mute();
|
||||||
this.forceUpdate();
|
this.forceUpdate();
|
||||||
|
@ -249,36 +265,37 @@ var SoundPanel = React.createClass({
|
||||||
</a>
|
</a>
|
||||||
</li>;
|
</li>;
|
||||||
}
|
}
|
||||||
return <ul className="nav navbar-top-links navbar-right">
|
return (
|
||||||
<li className="dropdown">
|
<li className={this.componentClass()}>
|
||||||
<a className="dropdown-toggle" href="#" id="sound-dropdown">
|
<a href="#" onClick={this.toggleShow}>{mutedIcon}</a>
|
||||||
Sound {mutedIcon} <i className="fa fa-caret-down"></i>
|
<ul className="dropdown-menu">
|
||||||
</a>
|
<li className="header">Sound Settings</li>
|
||||||
<ul className="dropdown-menu" id="sound-dropdown">
|
<ul className="sound-menu">
|
||||||
{mutedButton}
|
{mutedButton}
|
||||||
<li>
|
<li>
|
||||||
<a href='#' onClick={this.play}>
|
<a href='#' onClick={this.play}>
|
||||||
<i className="fa fa-play"></i> Play
|
<i className="fa fa-play"></i> Play
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href='#' onClick={this.stop}>
|
<a href='#' onClick={this.stop}>
|
||||||
<i className="fa fa-stop"></i> Stop
|
<i className="fa fa-stop"></i> Stop
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<hr />
|
<hr />
|
||||||
<li>
|
<li>
|
||||||
<div className="volume-slide">
|
<div className="volume-slide">
|
||||||
<label>Volume</label>
|
<label>Volume</label>
|
||||||
<div id="volume-slide"></div>
|
<div id="volume-slide"></div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<MusicSelector soundController={soundController} />
|
<MusicSelector soundController={soundController} />
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>;
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -203,6 +203,15 @@ html, body {
|
||||||
padding: 0 15px;
|
padding: 0 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sound-menu {
|
||||||
|
list-style: none;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sound-menu li {
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
/* Events */
|
/* Events */
|
||||||
|
|
||||||
.events-panel {
|
.events-panel {
|
||||||
|
@ -266,4 +275,4 @@ html, body {
|
||||||
|
|
||||||
.news-menu .unread {
|
.news-menu .unread {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue