mirror of
https://github.com/Unleash/unleash.git
synced 2024-12-28 00:06:53 +01:00
43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
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;
|