import produce from "immer"; const initialState = { files: [] }; const uploadReducer = produce((draft, action) => { switch (action.type) { case 'ADD_FILE': draft.files.push(action.payload); break; case 'UPDATE_PROGRESS': const file = draft.files.find(file => file.id === action.payload.id); if (file) { file.progress = action.payload.progress; } break; default: break; } }, initialState); function updateProgress(id, progress) { return { type: 'UPDATE_PROGRESS', payload: { id, progress } }; }