34590/frontend/src/stores/mainSlice.ts
2025-10-02 09:01:19 +00:00

37 lines
888 B
TypeScript

import { createSlice, PayloadAction } from '@reduxjs/toolkit'
import { UserPayloadObject } from '../interfaces'
interface MainState {
userName: string
userEmail: null | string
userAvatar: null | string
isFieldFocusRegistered: boolean
}
const initialState: MainState = {
/* User */
userName: '',
userEmail: null,
userAvatar: null,
/* Field focus with ctrl+k (to register only once) */
isFieldFocusRegistered: false,
}
export const mainSlice = createSlice({
name: 'main',
initialState,
reducers: {
setUser: (state, action: PayloadAction<UserPayloadObject>) => {
state.userName = action.payload.name
state.userEmail = action.payload.email
state.userAvatar = action.payload.avatar
},
},
})
// Action creators are generated for each case reducer function
export const { setUser } = mainSlice.actions
export default mainSlice.reducer