UNPKG

modules-pack

Version:

JavaScript Modules for Modern Frontend & Backend Projects

33 lines (30 loc) 1.15 kB
import { handleActions, stateActionType, uiLoading } from 'modules-pack/redux' import { Active, performStorage, RESET, SET } from 'utils-pack' import { SELF, USER } from './constants' import initState from './data' /** * ACTION HANDLERS ============================================================= * Pure Functions Only - business logic to handle actions and update app state * ============================================================================= */ /* Data Handler */ export default handleActions({ [stateActionType(USER, SET)]: (state, {payload}) => ({...state, ...payload}), [stateActionType(SELF, SET)]: (state, {payload}) => { const data = { ...state, self: Active.user = {...state.self, ...payload} } performStorage(SET, USER, data.self) return data }, [stateActionType(SELF, RESET)]: (state, {payload}) => { const data = { ...state, // always keep `lastLogin` for checking if user is new or returning visitor self: Active.user = {lastLogin: state.self.lastLogin, ...payload}, } performStorage(SET, USER, data.self) return data }, ...uiLoading(USER) }, initState)