communication-react-19
Version:
React library for building modern communication user experiences utilizing Azure Communication Services (React 19 compatible fork)
41 lines • 2.02 kB
JavaScript
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
/**
* @private
*/
export var AttachmentUploadActionType;
(function (AttachmentUploadActionType) {
AttachmentUploadActionType["Set"] = "set";
AttachmentUploadActionType["Progress"] = "progress";
AttachmentUploadActionType["Completed"] = "completed";
AttachmentUploadActionType["Failed"] = "failed";
AttachmentUploadActionType["Remove"] = "remove";
AttachmentUploadActionType["Clear"] = "clear";
})(AttachmentUploadActionType || (AttachmentUploadActionType = {}));
/* @conditional-compile-remove(file-sharing-acs) */
/**
* @internal
*/
export const AttachmentUploadReducer = (state, action) => {
switch (action.type) {
case AttachmentUploadActionType.Set:
return state.filter((v) => !v.metadata.error).concat(action.newUploads);
case AttachmentUploadActionType.Completed:
return state.map((v) => v.taskId === action.taskId
? Object.assign(Object.assign({}, v), { metadata: Object.assign(Object.assign({}, v.metadata), { id: action.id, url: action.url, progress: 1 }) }) : v);
case AttachmentUploadActionType.Failed:
return state.map((v) => v.taskId === action.taskId
? Object.assign(Object.assign({}, v), { metadata: Object.assign(Object.assign({}, v.metadata), { error: {
message: action.message
} }) }) : v);
case AttachmentUploadActionType.Remove:
return state.filter((v) => !v.metadata.error).filter((v) => v.metadata.id !== action.id);
case AttachmentUploadActionType.Progress:
return state.map((v) => v.taskId === action.taskId ? Object.assign(Object.assign({}, v), { metadata: Object.assign(Object.assign({}, v.metadata), { progress: action.progress }) }) : v);
case AttachmentUploadActionType.Clear:
return [];
default:
return state;
}
};
//# sourceMappingURL=AttachmentUpload.js.map