53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
|
import * as types from 'constants/action_types'
|
||
|
|
||
|
const reducers = {}
|
||
|
const address = sessionStorage.getItem('receiveAddress')
|
||
|
const defaultState = {
|
||
|
balance: 0,
|
||
|
transactions: [],
|
||
|
fetchingTransactions: false,
|
||
|
receiveAddress: address,
|
||
|
gettingNewAddress: false,
|
||
|
}
|
||
|
|
||
|
reducers[types.FETCH_TRANSACTIONS_STARTED] = function(state, action) {
|
||
|
return Object.assign({}, state, {
|
||
|
fetchingTransactions: true
|
||
|
})
|
||
|
}
|
||
|
|
||
|
reducers[types.FETCH_TRANSACTIONS_COMPLETED] = function(state, action) {
|
||
|
return Object.assign({}, state, {
|
||
|
transactions: action.data.transactions,
|
||
|
fetchingTransactions: false
|
||
|
})
|
||
|
}
|
||
|
|
||
|
reducers[types.GET_NEW_ADDRESS_STARTED] = function(state, action) {
|
||
|
return Object.assign({}, state, {
|
||
|
gettingNewAddress: true
|
||
|
})
|
||
|
}
|
||
|
|
||
|
reducers[types.GET_NEW_ADDRESS_COMPLETED] = function(state, action) {
|
||
|
const { address } = action.data
|
||
|
|
||
|
sessionStorage.setItem('receiveAddress', address)
|
||
|
return Object.assign({}, state, {
|
||
|
gettingNewAddress: false,
|
||
|
receiveAddress: address
|
||
|
})
|
||
|
}
|
||
|
|
||
|
reducers[types.UPDATE_BALANCE] = function(state, action) {
|
||
|
return Object.assign({}, state, {
|
||
|
balance: action.data.balance
|
||
|
})
|
||
|
}
|
||
|
|
||
|
export default function reducer(state = defaultState, action) {
|
||
|
const handler = reducers[action.type];
|
||
|
if (handler) return handler(state, action);
|
||
|
return state;
|
||
|
}
|