* 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>
69 lines
2.2 KiB
TypeScript
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);
|