import { createSlice, PayloadAction } from '@reduxjs/toolkit'; import { DayEarning } from '@app-types/index'; import { mockWeeklyEarnings, mockTodayEarnings } from '@store/mockData/mockEarnings'; interface EarningsState { todayEarnings: number; completedCount: number; onlineMinutes: number; weeklyData: DayEarning[]; } const initialState: EarningsState = { todayEarnings: mockTodayEarnings.total, completedCount: mockTodayEarnings.completedCount, onlineMinutes: mockTodayEarnings.onlineMinutes, weeklyData: mockWeeklyEarnings, }; const earningsSlice = createSlice({ name: 'earnings', initialState, reducers: { addEarning: (state, action: PayloadAction) => { state.todayEarnings += action.payload; state.completedCount += 1; }, setEarnings: (state, action: PayloadAction>) => { return { ...state, ...action.payload }; }, incrementOnlineMinutes: (state) => { state.onlineMinutes += 1; }, resetTodayEarnings: (state) => { state.todayEarnings = 0; state.completedCount = 0; state.onlineMinutes = 0; }, }, }); export const { addEarning, setEarnings, incrementOnlineMinutes, resetTodayEarnings, } = earningsSlice.actions; export default earningsSlice.reducer;