mattermost-redux
Version:
Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client
49 lines (48 loc) • 2.47 kB
JavaScript
;
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
Object.defineProperty(exports, "__esModule", { value: true });
const redux_1 = require("redux");
const action_types_1 = require("mattermost-redux/action_types");
const constants_1 = require("mattermost-redux/constants");
const helpers_1 = require("./helpers");
function login(state = (0, helpers_1.initialRequestState)(), action) {
switch (action.type) {
case action_types_1.UserTypes.LOGIN_REQUEST:
return { ...state, status: constants_1.RequestStatus.STARTED };
case action_types_1.UserTypes.LOGIN_SUCCESS:
return { ...state, status: constants_1.RequestStatus.SUCCESS, error: null };
case action_types_1.UserTypes.LOGIN_FAILURE:
return { ...state, status: constants_1.RequestStatus.FAILURE, error: action.error };
case action_types_1.UserTypes.LOGOUT_SUCCESS:
return { ...state, status: constants_1.RequestStatus.NOT_STARTED, error: null };
default:
return state;
}
}
function logout(state = (0, helpers_1.initialRequestState)(), action) {
switch (action.type) {
case action_types_1.UserTypes.LOGOUT_REQUEST:
return { ...state, status: constants_1.RequestStatus.STARTED };
case action_types_1.UserTypes.LOGOUT_SUCCESS:
return { ...state, status: constants_1.RequestStatus.SUCCESS, error: null };
case action_types_1.UserTypes.LOGOUT_FAILURE:
return { ...state, status: constants_1.RequestStatus.FAILURE, error: action.error };
case action_types_1.UserTypes.RESET_LOGOUT_STATE:
return (0, helpers_1.initialRequestState)();
default:
return state;
}
}
function autocompleteUsers(state = (0, helpers_1.initialRequestState)(), action) {
return (0, helpers_1.handleRequest)(action_types_1.UserTypes.AUTOCOMPLETE_USERS_REQUEST, action_types_1.UserTypes.AUTOCOMPLETE_USERS_SUCCESS, action_types_1.UserTypes.AUTOCOMPLETE_USERS_FAILURE, state, action);
}
function updateMe(state = (0, helpers_1.initialRequestState)(), action) {
return (0, helpers_1.handleRequest)(action_types_1.UserTypes.UPDATE_ME_REQUEST, action_types_1.UserTypes.UPDATE_ME_SUCCESS, action_types_1.UserTypes.UPDATE_ME_FAILURE, state, action);
}
exports.default = (0, redux_1.combineReducers)({
login,
logout,
autocompleteUsers,
updateMe,
});