You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
pizza.krasnikov.pro/.history/redux/pizza/slice_20220529003215.ts

38 lines
1.1 KiB

import { createSlice, PayloadAction } from '@reduxjs/toolkit';
import { fetchCategories } from './stock';
import { Categories, CategoriesSliceState, Status } from './types';
const initialState: PizzaSliceState = {
pizza_items: [],
pizza_status: Status.LOADING, // loading | success | error
};
const pizzaSlice = createSlice({
name: 'pizza',
initialState,
reducers: {
setPizza(pizza_status, action: PayloadAction<Pizza[]>) {
pizza_status.pizza_items = action.payload;
},
},
extraReducers: (builder) => {
builder.addCase(fetchpizza.pending, (pizza_status, action) => {
pizza_status.pizza_status = Status.LOADING;
pizza_status.pizza_items = [];
});
builder.addCase(fetchPizza.fulfilled, (pizza_status, action) => {
pizza_status.pizza_status = Status.SUCCESS;
pizza_status.pizza_items = action.payload;
});
builder.addCase(fetchPizzas.rejected, (pizza_status, action) => {
pizza_status.pizza_status = Status.ERROR;
pizza_status.pizza_items = [];
});
},
});
export const { setPizza } = pizzaSlice.actions;
export default pizzaSlice.reducer;