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

View File

@@ -1,32 +0,0 @@
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
export type TaskStatus = "idle" | "pending" | "success" | "error";
export interface SeleniumTaskState {
status: TaskStatus;
message: string;
show: boolean;
}
const initialState: SeleniumTaskState = {
status: "idle",
message: "",
show: false,
};
const seleniumClaimSubmitTaskSlice = createSlice({
name: "seleniumClaimSubmitTask",
initialState,
reducers: {
setTaskStatus: (
state: SeleniumTaskState,
action: PayloadAction<Partial<SeleniumTaskState>>
) => {
return { ...state, ...action.payload, show: true };
},
clearTaskStatus: () => initialState,
},
});
export const { setTaskStatus, clearTaskStatus } = seleniumClaimSubmitTaskSlice.actions;
export default seleniumClaimSubmitTaskSlice.reducer;

View File

@@ -1,32 +0,0 @@
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
export type TaskStatus = "idle" | "pending" | "success" | "error";
export interface SeleniumTaskState {
status: TaskStatus;
message: string;
show: boolean;
}
const initialState: SeleniumTaskState = {
status: "idle",
message: "",
show: false,
};
const seleniumEligibilityBatchCheckTaskSlice = createSlice({
name: "seleniumEligibilityBatchCheckTask",
initialState,
reducers: {
setTaskStatus: (
state: SeleniumTaskState,
action: PayloadAction<Partial<SeleniumTaskState>>
) => {
return { ...state, ...action.payload, show: true };
},
clearTaskStatus: () => initialState,
},
});
export const { setTaskStatus, clearTaskStatus } = seleniumEligibilityBatchCheckTaskSlice.actions;
export default seleniumEligibilityBatchCheckTaskSlice.reducer;

View File

@@ -1,32 +0,0 @@
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
export type TaskStatus = "idle" | "pending" | "success" | "error";
export interface SeleniumTaskState {
status: TaskStatus;
message: string;
show: boolean;
}
const initialState: SeleniumTaskState = {
status: "idle",
message: "",
show: false,
};
const seleniumEligibilityCheckTaskSlice = createSlice({
name: "seleniumEligibilityCheckTask",
initialState,
reducers: {
setTaskStatus: (
state: SeleniumTaskState,
action: PayloadAction<Partial<SeleniumTaskState>>
) => {
return { ...state, ...action.payload, show: true };
},
clearTaskStatus: () => initialState,
},
});
export const { setTaskStatus, clearTaskStatus } = seleniumEligibilityCheckTaskSlice.actions;
export default seleniumEligibilityCheckTaskSlice.reducer;

View File

@@ -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;

View File

@@ -1,13 +1,9 @@
import { configureStore } from "@reduxjs/toolkit";
import seleniumClaimSubmitTaskReducer from "./slices/seleniumClaimSubmitTaskSlice";
import seleniumEligibilityCheckTaskReducer from "./slices/seleniumEligibilityCheckTaskSlice";
import seleniumEligibilityBatchCheckTaskReducer from "./slices/seleniumEligibilityBatchCheckTaskSlice";
import seleniumTasksReducer from "./slices/seleniumTaskSlice";
export const store = configureStore({
reducer: {
seleniumClaimSubmitTask: seleniumClaimSubmitTaskReducer,
seleniumEligibilityCheckTask: seleniumEligibilityCheckTaskReducer,
seleniumEligibilityBatchCheckTask: seleniumEligibilityBatchCheckTaskReducer,
seleniumTasks: seleniumTasksReducer,
},
});