Files
old-ribica/front-ui/app/components/items/randomItems.js

48 lines
1.2 KiB
JavaScript
Raw Normal View History

2015-09-21 06:31:52 +02:00
var React = require('react');
var ItemList = require('./itemList');
var ItemStore = require('../../stores/itemStore.js');
var ItemActions = require('../../actions/itemActions.js');
var ItemCollection = require('../../models/itemCollection');
var RandomItems = React.createClass({
render: function() {
return (
<ItemList items={this.state.items} />
);
},
// Add change listeners to stores
componentDidMount: function() {
ItemActions.loadFrontPageItems();
ItemStore.addChangeListener(this._onChange);
},
componentWillUnmount: function () {
ItemStore.removeChangeListener(this._onChange);
},
getInitialState: function() {
return {
items: this.getRandomItems()
}
},
getRandomItems: function() {
var NUMBER_OF_SUGGESTED_ITEMS = 8;
var allItems = ItemStore.getItems();
2015-10-01 16:10:41 +02:00
allItems.reset(allItems.shuffle(), {silent:true});
allItems.reset(allItems.first(NUMBER_OF_SUGGESTED_ITEMS), {silent:true});
2015-09-21 06:31:52 +02:00
return allItems;
},
_onChange: function () {
this.setState({
items: this.getRandomItems()
});
},
});
module.exports = RandomItems;