import { createSlice, PayloadAction } from '@reduxjs/toolkit'; import { Task } from '@/domain/work'; import { RegisterInfo } from '@/API/patient/workActions'; interface ReRegisterState { sourceTask: Task | null; registerInfo: RegisterInfo | null; loading: boolean; error: string | null; } const initialState: ReRegisterState = { sourceTask: null, registerInfo: null, loading: false, error: null, }; export const reregisterSlice = createSlice({ name: 'reregister', initialState, reducers: { setSourceTask: (state, action: PayloadAction) => { state.sourceTask = action.payload; }, setRegisterInfo: (state, action: PayloadAction) => { state.registerInfo = action.payload; }, clearReRegister: (state) => { state.sourceTask = null; state.registerInfo = null; state.error = null; }, setLoading: (state, action: PayloadAction) => { state.loading = action.payload; }, setError: (state, action: PayloadAction) => { state.error = action.payload; }, }, }); export const { setSourceTask, setRegisterInfo, clearReRegister, setLoading, setError } = reregisterSlice.actions; // Selectors export const selectSourceTask = (state: { reregister: ReRegisterState }) => state.reregister.sourceTask; export const selectRegisterInfo = (state: { reregister: ReRegisterState }) => state.reregister.registerInfo; export const selectReRegisterLoading = (state: { reregister: ReRegisterState }) => state.reregister.loading; export const selectReRegisterError = (state: { reregister: ReRegisterState }) => state.reregister.error; export type { ReRegisterState }; export default reregisterSlice.reducer;