Last active
April 9, 2018 01:11
-
-
Save victorvhpg/9432de8507cba15e52a2ad9dcc3fec17 to your computer and use it in GitHub Desktop.
reducer.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import CONSTANTS from '../constants/'; | |
const initialState = { | |
saldo: 0, | |
valorTransacao: 0, | |
erro: "" | |
}; | |
let reducerConta = (state = initialState, action) => { | |
switch (action.type) { | |
case CONSTANTS.CREDITO: | |
return { ...state, erro: "", saldo: state.saldo + action.payload.valor }; | |
case CONSTANTS.DEBITO: | |
return { ...state, erro: "", saldo: state.saldo - action.payload.valor }; | |
case CONSTANTS.SET_VALOR_TRANSACAO: | |
return { ...state, erro: "", valorTransacao: action.payload.valorTransacao }; | |
case CONSTANTS.ERRO_CONTA: | |
return { ...state, valorTransacao: 0, erro: action.payload.message }; | |
default: | |
return state; | |
} | |
}; | |
//outra maneira sem usar switch... | |
let reducerConta = (state = initialState, action) => { | |
let fn = { | |
[CONSTANTS.CREDITO]() { | |
return { ...state, erro: "", saldo: state.saldo + action.payload.valor }; | |
}, | |
[CONSTANTS.DEBITO]() { | |
return { ...state, erro: "", saldo: state.saldo - action.payload.valor }; | |
}, | |
[CONSTANTS.SET_VALOR_TRANSACAO]() { | |
return { ...state, erro: "", valorTransacao: action.payload.valorTransacao }; | |
}, | |
[CONSTANTS.ERRO_CONTA]() { | |
return { ...state, valorTransacao: 0, erro: action.payload.message }; | |
} | |
}; | |
if (Object.hasOwnProperty.call(fn, action.type)) { | |
return fn[action.type](); | |
} | |
return state; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment