34097/frontend/src/stores/mainSlice.ts
2025-09-16 12:15:20 +00:00

37 lines
901 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;