(feat:upload) dismiss, but notify on completion

This commit is contained in:
ManishMadan2882
2025-10-03 19:55:41 +05:30
parent f09fa8231a
commit 6bb4195393
2 changed files with 162 additions and 142 deletions

View File

@@ -24,6 +24,7 @@ export interface UploadTask {
status: UploadTaskStatus;
taskId?: string;
errorMessage?: string;
dismissed?: boolean;
}
interface UploadState {
@@ -83,10 +84,30 @@ export const uploadSlice = createSlice({
const index = state.tasks.findIndex(
(task) => task.id === action.payload.id,
);
if (index !== -1) {
const updates = action.payload.updates;
// When task completes or fails, set dismissed to false to notify user
if (updates.status === 'completed' || updates.status === 'failed') {
state.tasks[index] = {
...state.tasks[index],
...updates,
dismissed: false,
};
} else {
state.tasks[index] = {
...state.tasks[index],
...updates,
};
}
}
},
dismissUploadTask: (state, action: PayloadAction<string>) => {
const index = state.tasks.findIndex((task) => task.id === action.payload);
if (index !== -1) {
state.tasks[index] = {
...state.tasks[index],
...action.payload.updates,
dismissed: true,
};
}
},
@@ -111,6 +132,7 @@ export const {
clearAttachments,
addUploadTask,
updateUploadTask,
dismissUploadTask,
removeUploadTask,
clearCompletedTasks,
} = uploadSlice.actions;