var React = require('react');
var MenuStore = require('../stores/MenuStore');
var MenuActions = require('../actions/MenuActions');
var MiddlePanelActions = require('../actions/MiddlePanelActions');
var FeedItem = React.createClass({
propTypes: {feed_id: React.PropTypes.number.isRequired,
title: React.PropTypes.string.isRequired,
unread: React.PropTypes.number.isRequired,
icon_url: React.PropTypes.string,
},
getInitialState: function() {
return {feed_id: this.props.feed_id,
title: this.props.title,
unread: this.props.unread,
icon_url: this.props.icon_url,
};
},
render: function() {
var unread = undefined;
var icon = undefined;
if(this.state.icon_url){
icon = ();
} else {
icon = ();
}
if(this.state.unread){
unread = (
{this.state.unread}
);
}
return (
{icon} {this.state.title} {unread}
);
},
handleClick: function() {
MiddlePanelActions.setFeedFilter(this.state.feed_id);
},
});
var Category = React.createClass({
propTypes: {category_id: React.PropTypes.number.isRequired,
name: React.PropTypes.string.isRequired,
feeds: React.PropTypes.array.isRequired,
unread: React.PropTypes.number.isRequired,
},
getInitialState: function() {
return {category_id: this.props.category_id,
name: this.props.name,
feeds: this.props.feeds,
unread: this.props.unread,
};
},
render: function() {
unread = undefined;
if(this.state.unread){
unread = (
{this.state.unread}
);
}
return (
{this.state.name} {unread}
{this.state.feeds.map(function(feed){
return ;})}
);
},
handleClick: function() {
MiddlePanelActions.setCategoryFilter(this.state.category_id);
},
});
var Menu = React.createClass({
getInitialState: function() {
return {categories: [], all_unread_count: 0};
},
render: function() {
return (
);
},
componentDidMount: function() {
MenuActions.reload();
MenuStore.addChangeListener(this._onChange);
},
componentWillUnmount: function() {
MenuStore.removeChangeListener(this._onChange);
},
_onChange: function() {
var datas = MenuStore.getAll();
this.setState({categories: datas.categories,
all_unread_count: datas.all_unread_count});
},
});
module.exports = Menu;