import { createReducer, createAction } from '@reduxjs/toolkit'; // ─── Actions ────────────────────────────────────────────────────────────────── export const saveProfileData = createAction<{ name: string; email: string; gender: 'MALE' | 'FEMALE' | 'OTHER'; addressLine1: string; houseNumber: string; landmark: string; city: string; state: string; postalCode: string; addressPhone: string; addressLabel: string; }>('completeProfile/saveProfileData'); export const clearProfileData = createAction('completeProfile/clearProfileData'); // ─── State ──────────────────────────────────────────────────────────────────── export interface CompleteProfileState { name: string; email: string; gender: 'MALE' | 'FEMALE' | 'OTHER'; addressLine1: string; houseNumber: string; landmark: string; city: string; state: string; postalCode: string; addressPhone: string; addressLabel: string; } const initialState: CompleteProfileState = { name: '', email: '', gender: 'MALE', addressLine1: '', houseNumber: '', landmark: '', city: '', state: '', postalCode: '', addressPhone: '', addressLabel: 'Home', }; // ─── Reducer ────────────────────────────────────────────────────────────────── const completeProfileReducer = createReducer(initialState, builder => { builder .addCase(saveProfileData, (state, action) => { state.name = action.payload.name; state.email = action.payload.email; state.gender = action.payload.gender; state.addressLine1 = action.payload.addressLine1; state.houseNumber = action.payload.houseNumber; state.landmark = action.payload.landmark; state.city = action.payload.city; state.state = action.payload.state; state.postalCode = action.payload.postalCode; state.addressPhone = action.payload.addressPhone; state.addressLabel = action.payload.addressLabel; }) .addCase(clearProfileData, () => initialState); }); export default completeProfileReducer;