import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; import type { User } from "../../types/user.type"; import { Apis } from "../../apis"; interface UserState { data: User | null, loading: boolean; } const InitUserState: UserState = { data: null, loading: false } const userSlice = createSlice({ name: "user", initialState: InitUserState, reducers: { }, extraReducers: (bd) => { bd.addCase(fetchUserData.pending, (state, action) => { state.loading = true }) bd.addCase(fetchUserData.fulfilled, (state, action) => { console.log("đã vào full", action.payload) state.loading = false state.data = action.payload }) bd.addCase(fetchUserData.rejected, (state, action) => { state.loading = false }) } }) const fetchUserData = createAsyncThunk( "user/fetchUserData", async () => { let result = await Apis.user.me(localStorage.getItem("token")) as any return result } ) export const userReducer = userSlice.reducer; export const userAction = { ...userSlice.actions, fetchUserData }