diff --git a/__tests__/__snapshots__/index.js.snap b/__tests__/__snapshots__/index.js.snap index 19789173..c33c8e2f 100644 --- a/__tests__/__snapshots__/index.js.snap +++ b/__tests__/__snapshots__/index.js.snap @@ -137,6 +137,7 @@ Object { "addUserTrait": [Function], "deleteUserTrait": [Function], "getAllUserTraits": [Function], + "modifyUserTraitInit": [Function], "updateUserTrait": [Function], }, "smp": Object { @@ -197,14 +198,17 @@ Object { "countReset": [Function], "debug": [Function], "dir": [Function], + "dirxml": [Function], "error": [Function], "group": [Function], "groupCollapsed": [Function], "groupEnd": [Function], "info": [Function], "log": [Function], + "table": [Function], "time": [Function], "timeEnd": [Function], + "timeLog": [Function], "trace": [Function], "warn": [Function], }, diff --git a/src/actions/settings.js b/src/actions/settings.js index 0524a4b9..f0f506f3 100644 --- a/src/actions/settings.js +++ b/src/actions/settings.js @@ -4,6 +4,7 @@ */ import { createActions } from 'redux-actions'; +import _ from 'lodash'; import { getService } from '../services/user-traits'; /** @@ -66,5 +67,6 @@ export default createActions({ ADD_USER_TRAIT: addUserTrait, DELETE_USER_TRAIT: deleteUserTrait, UPDATE_USER_TRAIT: updateUserTrait, + MODIFY_USER_TRAIT_INIT: _.noop, }, }); diff --git a/src/reducers/settings.js b/src/reducers/settings.js index 68564fdc..82dce952 100644 --- a/src/reducers/settings.js +++ b/src/reducers/settings.js @@ -29,6 +29,18 @@ function onGetAllUserTraits(state, { error, payload }) { }; } +/** + * Handles SETTINGS/MODIFY_USER_TRAIT_INIT action. + * @param {Object} state * + * @return {Object} New state. + */ +function onModifyUserTraitInit(state) { + return { + ...state, + traitRequestCount: state.traitRequestCount + 1, + }; +} + /** * Handles SETTINGS/ADD_USER_TRAIT action. * @param {Object} state @@ -39,12 +51,16 @@ function onAddUserTrait(state, { error, payload }) { if (error) { logger.error('Failed to add user trait', payload); fireErrorMessage('Failed to add user trait', ''); - return state; + return { + ...state, + traitRequestCount: state.traitRequestCount - 1, + }; } const newData = payload.result[0]; return { ...state, userTraits: [...state.userTraits, newData], + traitRequestCount: state.traitRequestCount - 1, }; } @@ -58,7 +74,10 @@ function onUpdateUserTrait(state, { error, payload }) { if (error) { logger.error('Failed to update user trait', payload); fireErrorMessage('Failed to update user trait', ''); - return state; + return { + ...state, + traitRequestCount: state.traitRequestCount - 1, + }; } const newData = payload.result[0]; const newUserTraits = state.userTraits.filter(trait => trait.traitId !== payload.traitId); @@ -67,6 +86,7 @@ function onUpdateUserTrait(state, { error, payload }) { return { ...state, userTraits: newUserTraits, + traitRequestCount: state.traitRequestCount - 1, }; } @@ -80,12 +100,16 @@ function onDeleteUserTrait(state, { error, payload }) { if (error) { logger.error('Failed to delete user trait', payload); fireErrorMessage('Failed to delete user trait', ''); - return state; + return { + ...state, + traitRequestCount: state.traitRequestCount - 1, + }; } const newUserTraits = state.userTraits.filter(trait => trait.traitId !== payload.traitId); return { ...state, userTraits: newUserTraits, + traitRequestCount: state.traitRequestCount - 1, }; } @@ -96,11 +120,13 @@ function onDeleteUserTrait(state, { error, payload }) { * @return {Function} userTraits reducer. */ function create(initialState = { + traitRequestCount: 0, userTraits: [], }) { const a = actions.settings; return handleActions({ [a.getAllUserTraits]: onGetAllUserTraits, + [a.modifyUserTraitInit]: onModifyUserTraitInit, [a.addUserTrait]: onAddUserTrait, [a.deleteUserTrait]: onDeleteUserTrait, [a.updateUserTrait]: onUpdateUserTrait, pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy