import { createSlice, PayloadAction } from '@reduxjs/toolkit'; import { fetchPizzaToCard } from './stock'; import { PizzaToCard, PizzaToCardSliceState, Status } from './types'; const initialState: PizzaToCardSliceState = { pizzaToCard_items: [], pizzaToCard_status: Status.LOADING, // loading | success | error }; const pizzaToCardSlice = createSlice({ name: 'pizza', initialState, reducers: { setPizzaToCard(pizzaToCard_status, action: PayloadAction) { pizzaToCard_status.pizzaToCard_items = action.payload; }, }, extraReducers: (builder) => { builder.addCase(fetchPizzaToCard.pending, (pizzaToCard_status, action) => { pizzaToCard_status.pizzaToCard_status = Status.LOADING; pizzaToCard_status.pizzaToCard_items = []; }); builder.addCase(fetchPizzaToCard.fulfilled, (pizzaToCard_status, action) => { pizzaToCard_status.pizzaToCard_status = Status.SUCCESS; pizzaToCard_status.pizzaToCard_items = action.payload; }); builder.addCase(fetchPizzaToCard.rejected, (pizzaToCard_status, action) => { pizzaToCard_status.pizzaToCard_status = Status.ERROR; pizzaToCard_status.pizzaToCard_items = []; }); }, }); export const { setPizzaToCard } = pizzaToCardSlice.actions; export default pizzaToCardSlice.reducer;