Files
react_admin_upload_cloudinary/src/stores/slices/user.slice.ts
2025-10-08 07:37:43 +07:00

51 lines
1.1 KiB
TypeScript

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
}