sg-delivery-partner/app/store/slices/earningsSlice.ts
2026-07-02 14:34:19 +05:30

49 lines
1.3 KiB
TypeScript

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<number>) => {
state.todayEarnings += action.payload;
state.completedCount += 1;
},
setEarnings: (state, action: PayloadAction<Partial<EarningsState>>) => {
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;