ignite-jhipster
Version:
A React Native boilerplate for JHipster apps.
41 lines (29 loc) • 1.13 kB
JavaScript
import { createReducer, createActions } from 'reduxsauce'
import Immutable from 'seamless-immutable'
/* ------------- Types and Action Creators ------------- */
const { Types, Creators } = createActions({
registerRequest: ['user'],
registerSuccess: [],
registerFailure: ['error']
})
export const RegisterTypes = Types
export default Creators
/* ------------- Initial State ------------- */
export const INITIAL_STATE = Immutable({
error: null,
fetching: false
})
/* ------------- Reducers ------------- */
// we're attempting to register
export const request = (state) => state.merge({ fetching: true })
// we've successfully registered
export const success = (state) => state.merge({ fetching: false, error: null })
// we've had a problem registering
export const failure = (state, { error }) => state.merge({ fetching: false, error })
/* ------------- Hookup Reducers To Types ------------- */
export const reducer = createReducer(INITIAL_STATE, {
[Types.REGISTER_REQUEST]: request,
[Types.REGISTER_SUCCESS]: success,
[Types.REGISTER_FAILURE]: failure
})
/* ------------- Selectors ------------- */