import { createReducer } from '@reduxjs/toolkit'; import { sendFcmToken } from './thunk'; export interface FcmTokenState { loading: boolean; success: boolean; error: string | null; } const initialState: FcmTokenState = { loading: false, success: false, error: null, }; export const fcmTokenReducer = createReducer(initialState, builder => { builder .addCase(sendFcmToken.pending, acc => { acc.loading = true; acc.success = false; acc.error = null; }) .addCase(sendFcmToken.fulfilled, acc => { acc.loading = false; acc.success = true; acc.error = null; }) .addCase(sendFcmToken.rejected, (acc, action) => { acc.loading = false; acc.success = false; acc.error = (action.payload as string) ?? action.error.message ?? 'Failed to send FCM token'; }); }); export default fcmTokenReducer;