mirror of
https://github.com/aclindsa/moneygo.git
synced 2025-06-13 13:39:23 -04:00
Initial plumbing for moving to Redux
This commit is contained in:
27
js/reducers/AccountReducer.js
Normal file
27
js/reducers/AccountReducer.js
Normal file
@ -0,0 +1,27 @@
|
||||
var assign = require('object-assign');
|
||||
|
||||
var AccountConstants = require('../constants/AccountConstants');
|
||||
|
||||
module.exports = function(state = {}, action) {
|
||||
switch (action.type) {
|
||||
case AccountConstants.ACCOUNTS_FETCHED:
|
||||
var accounts = {};
|
||||
for (var i = 0; i < action.accounts.length; i++) {
|
||||
var account = action.accounts[i];
|
||||
accounts[account.AccountId] = account;
|
||||
}
|
||||
return accounts;
|
||||
case AccountConstants.ACCOUNT_CREATED:
|
||||
case AccountConstants.ACCOUNT_UPDATED:
|
||||
var account = action.account;
|
||||
return assign({}, state, {
|
||||
[account.AccountId]: account
|
||||
});
|
||||
case AccountConstants.ACCOUNT_REMOVED:
|
||||
var newstate = assign({}, state);
|
||||
delete newstate[action.accountId];
|
||||
return newstate;
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
};
|
9
js/reducers/MoneyGoReducer.js
Normal file
9
js/reducers/MoneyGoReducer.js
Normal file
@ -0,0 +1,9 @@
|
||||
var Redux = require('redux');
|
||||
|
||||
var AccountReducer = require('./AccountReducer');
|
||||
var SelectedAccountReducer = require('./SelectedAccountReducer');
|
||||
|
||||
module.exports = Redux.combineReducers({
|
||||
accounts: AccountReducer,
|
||||
selectedAccount: SelectedAccountReducer
|
||||
});
|
20
js/reducers/SelectedAccountReducer.js
Normal file
20
js/reducers/SelectedAccountReducer.js
Normal file
@ -0,0 +1,20 @@
|
||||
var AccountConstants = require('../constants/AccountConstants');
|
||||
|
||||
module.exports = function(state = -1, action) {
|
||||
switch (action.type) {
|
||||
case AccountConstants.ACCOUNTS_FETCHED:
|
||||
for (var i = 0; i < action.accounts.length; i++) {
|
||||
if (action.accounts[i].AccountId == state)
|
||||
return state;
|
||||
}
|
||||
return -1;
|
||||
case AccountConstants.ACCOUNT_REMOVED:
|
||||
if (action.accountId == state)
|
||||
return -1;
|
||||
return state;
|
||||
case AccountConstants.ACCOUNT_SELECTED:
|
||||
return action.accountId;
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
};
|
Reference in New Issue
Block a user