mattermost-mobile/app/mm-redux/reducers/requests/users.ts
Miguel Alatzar 9a0bce5b6d [MM-23698] [MM-19559] Remove redux-offline and updated redux-persist (#4120)
* Remove redux-offline and configure redux-persist

* Fix typo

* Fix configure store

* Upgrade to redux-persist 6.0.0

* Add migration from redux-persist v4 to v6

* Replace AsyncStorage with MMKVStorage to boost storage speed

* Mock RNFastStorage

* Fix reactions test

* Fix clearing the store on logout

* Remove the need for LOGOUT_SUCCESS

* No need to pass persistConfig to middlewares()

* Remove unused imports

* Export connection

Accidentally removed this export.

* Add batch action name

Co-Authored-By: Elias Nahum <nahumhbl@gmail.com>

* Add batch action name

Co-Authored-By: Elias Nahum <nahumhbl@gmail.com>

* Add batch action name

Co-Authored-By: Elias Nahum <nahumhbl@gmail.com>

* Add batch action name

Co-Authored-By: Elias Nahum <nahumhbl@gmail.com>

* Fix delete post

* Fix leave channel

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2020-04-17 22:30:27 -07:00

69 lines
2.2 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {combineReducers} from 'redux';
import {RequestStatus} from '../../constants';
import {UserTypes} from '@mm-redux/action_types';
import {GenericAction} from '@mm-redux/types/actions';
import {UsersRequestsStatuses, RequestStatusType} from '@mm-redux/types/requests';
import {handleRequest, initialRequestState} from './helpers';
function checkMfa(state: RequestStatusType = initialRequestState(), action: GenericAction): RequestStatusType {
switch (action.type) {
case UserTypes.CHECK_MFA_REQUEST:
return {...state, status: RequestStatus.STARTED};
case UserTypes.CHECK_MFA_SUCCESS:
return {...state, status: RequestStatus.SUCCESS, error: null};
case UserTypes.CHECK_MFA_FAILURE:
return {...state, status: RequestStatus.FAILURE, error: action.error};
default:
return state;
}
}
function login(state: RequestStatusType = initialRequestState(), action: GenericAction): RequestStatusType {
switch (action.type) {
case UserTypes.LOGIN_REQUEST:
return {...state, status: RequestStatus.STARTED};
case UserTypes.LOGIN_SUCCESS:
return {...state, status: RequestStatus.SUCCESS, error: null};
case UserTypes.LOGIN_FAILURE:
return {...state, status: RequestStatus.FAILURE, error: action.error};
default:
return state;
}
}
function autocompleteUsers(state: RequestStatusType = initialRequestState(), action: GenericAction): RequestStatusType {
return handleRequest(
UserTypes.AUTOCOMPLETE_USERS_REQUEST,
UserTypes.AUTOCOMPLETE_USERS_SUCCESS,
UserTypes.AUTOCOMPLETE_USERS_FAILURE,
state,
action,
);
}
function updateMe(state: RequestStatusType = initialRequestState(), action: GenericAction): RequestStatusType {
return handleRequest(
UserTypes.UPDATE_ME_REQUEST,
UserTypes.UPDATE_ME_SUCCESS,
UserTypes.UPDATE_ME_FAILURE,
state,
action,
);
}
export default (combineReducers({
checkMfa,
login,
autocompleteUsers,
updateMe,
}) as (b: UsersRequestsStatuses, a: GenericAction) => UsersRequestsStatuses);