import { createReducer } from '@reduxjs/toolkit'; import { addCustomer, resetAddCustomerState } from './thunk'; export interface AddCustomerState { loading: boolean; error: string | null; successMessage: string | null; } const initialState: AddCustomerState = { loading: false, error: null, successMessage: null, }; export const addCustomerReducer = createReducer(initialState, builder => { builder .addCase(resetAddCustomerState, () => initialState) .addCase(addCustomer.pending, acc => { acc.loading = true; acc.error = null; acc.successMessage = null; }) .addCase(addCustomer.fulfilled, (acc, action) => { acc.loading = false; acc.successMessage = 'Customer Added Successfully.'; acc.error = null; }) .addCase(addCustomer.rejected, (acc, action) => { acc.loading = false; acc.error = (action.payload as string) ?? action.error.message ?? 'Failed to add customer'; }); }); export default addCustomerReducer;