mattermost-redux
Version:
Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client
50 lines (49 loc) • 1.85 kB
JavaScript
;
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
Object.defineProperty(exports, "__esModule", { value: true });
exports.handleUploadFilesRequest = handleUploadFilesRequest;
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 handleUploadFilesRequest(REQUEST, SUCCESS, FAILURE, CANCEL, state, action) {
switch (action.type) {
case REQUEST:
return {
...state,
status: constants_1.RequestStatus.STARTED,
};
case SUCCESS:
return {
...state,
status: constants_1.RequestStatus.SUCCESS,
error: null,
};
case FAILURE: {
let error = action.error;
if (error instanceof Error) {
error = Object.hasOwn(error, 'intl') ? { ...error } : error.toString();
}
return {
...state,
status: constants_1.RequestStatus.FAILURE,
error,
};
}
case CANCEL:
return {
...state,
status: constants_1.RequestStatus.CANCELLED,
error: null,
};
default:
return state;
}
}
function uploadFiles(state = (0, helpers_1.initialRequestState)(), action) {
return handleUploadFilesRequest(action_types_1.FileTypes.UPLOAD_FILES_REQUEST, action_types_1.FileTypes.UPLOAD_FILES_SUCCESS, action_types_1.FileTypes.UPLOAD_FILES_FAILURE, action_types_1.FileTypes.UPLOAD_FILES_CANCEL, state, action);
}
exports.default = (0, redux_1.combineReducers)({
uploadFiles,
});