UNPKG

react-native-template-zygor

Version:

Template para projetos em React Native, com Estrutura de Pastas customizada, Estilos Globais, ESLint + Prettier + Babel Plugin Root Import, React Navigation, Reactotron e Axios configurados.

55 lines (44 loc) 1.33 kB
import { createReducer, createActions } from 'reduxsauce'; import Immutable from 'seamless-immutable'; // Action Types & Creators const { Types, Creators } = createActions({ loadAuthRequest: ['email', 'password'], loadAuthSuccess: ['data'], loadAuthFailure: ['error'], setJwtToken: ['token'], setUser: ['user'], updateUser: null, logout: null, }); export const AuthTypes = Types; export const AuthActions = Creators; // Initial State export const INITIAL_STATE = Immutable({ isAuth: false, user: null, loading: false, error: null, token: null, }); // Reducer Functions const loadRequest = (state) => ({ ...state, loading: true, error: null }); const loadSuccess = (state, { data }) => ({ ...state, isAuth: true, user: data, loading: false, error: null, }); const loadFailure = (state, { error }) => ({ ...state, error, loading: false }); const logout = () => INITIAL_STATE; const setJwtToken = (state, { token }) => ({ ...state, token }); const setUser = (state, { user }) => ({ ...state, user }); // Reducer export const AuthReducer = createReducer(INITIAL_STATE, { [Types.LOAD_AUTH_REQUEST]: loadRequest, [Types.LOAD_AUTH_SUCCESS]: loadSuccess, [Types.LOAD_AUTH_FAILURE]: loadFailure, [Types.SET_JWT_TOKEN]: setJwtToken, [Types.SET_USER]: setUser, [Types.LOGOUT]: logout, });