var Reflux = require('reflux'); var StrategyActions = require('./StrategyActions'); var filter = require('lodash/collection/filter'); var _strategies = []; // Creates a DataStore var StrategyStore = Reflux.createStore({ // Initial setup init: function() { this.listenTo(StrategyActions.init.completed, this.setStrategies); this.listenTo(StrategyActions.create.completed, this.onCreate); this.listenTo(StrategyActions.remove.completed, this.onRemove); }, onCreate: function(strategy) { this.setStrategies(_strategies.concat([strategy])); }, onRemove: function(strategy) { var strategies = filter(_strategies, function(item) { return item.name !== strategy.name; }); this.setStrategies(strategies); }, setStrategies: function(strategies) { _strategies = strategies; this.trigger(_strategies); }, getStrategies: function() { return _strategies; }, initStore: function(strategies) { _strategies = strategies; } }); module.exports = StrategyStore;