refactor: consolidate 3 identical Redux slices into one seleniumTaskSlice

This commit is contained in:
ff
2026-04-13 14:40:53 -04:00
parent 11a6d2e5a7
commit 4e981c644f
10 changed files with 87 additions and 113 deletions
@@ -0,0 +1,38 @@
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
export type TaskStatus = "idle" | "pending" | "success" | "error";
export type TaskKey = "claimSubmit" | "eligibilityCheck" | "eligibilityBatchCheck";
export interface SeleniumTaskState {
status: TaskStatus;
message: string;
show: boolean;
}
const emptyTask: SeleniumTaskState = { status: "idle", message: "", show: false };
const initialState: Record<TaskKey, SeleniumTaskState> = {
claimSubmit: { ...emptyTask },
eligibilityCheck: { ...emptyTask },
eligibilityBatchCheck: { ...emptyTask },
};
const seleniumTaskSlice = createSlice({
name: "seleniumTasks",
initialState,
reducers: {
setTaskStatus: (
state,
action: PayloadAction<{ key: TaskKey } & Partial<SeleniumTaskState>>
) => {
const { key, ...partial } = action.payload;
state[key] = { ...state[key], ...partial, show: true };
},
clearTaskStatus: (state, action: PayloadAction<TaskKey>) => {
state[action.payload] = { ...emptyTask };
},
},
});
export const { setTaskStatus, clearTaskStatus } = seleniumTaskSlice.actions;
export default seleniumTaskSlice.reducer;