mirror of
https://github.com/aljazceru/landscape-template.git
synced 2026-01-03 06:24:32 +01:00
34 lines
706 B
TypeScript
34 lines
706 B
TypeScript
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
|
|
import { MyProfile } from "src/graphql";
|
|
|
|
interface StoreState {
|
|
me: Pick<MyProfile,
|
|
| 'id'
|
|
| "name"
|
|
| "avatar"
|
|
| "bio"
|
|
| "jobTitle"
|
|
| 'join_date'>
|
|
| undefined // fetching user data if exist
|
|
| null // user not logged in
|
|
|
|
}
|
|
|
|
const initialState = {
|
|
me: undefined
|
|
} as StoreState;
|
|
|
|
export const userSlice = createSlice({
|
|
name: "user",
|
|
initialState,
|
|
reducers: {
|
|
setUser(state, action: PayloadAction<StoreState['me']>) {
|
|
state.me = action.payload;
|
|
},
|
|
},
|
|
});
|
|
|
|
export const { setUser } = userSlice.actions;
|
|
|
|
export default userSlice.reducer;
|