headerSlice.ts 715 Bytes
Newer Older
Ken's avatar
Ken committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
import { createAsyncThunk, createSlice, PayloadAction } from "@reduxjs/toolkit";
import categoryApi from "api/categoryApi";
import { ICategory } from "components/interface";

const initialState: { data: ICategory[] } = {
  data: [],
};

export const getCategories = createAsyncThunk("header/categories", async () => {
  const res = await categoryApi.getCategories();
  return res;
});

const header = createSlice({
  name: "header",
  initialState,
  reducers: {},
  extraReducers: (builder) => {
    builder.addCase(
      getCategories.fulfilled,
      (state, action: PayloadAction<any>) => {
        state.data = action.payload.data;
      }
    );
  },
});

const { reducer } = header;
export default reducer;