Files
LiquidCode_Frontend/src/redux/slices/store.ts
Виталий Лавшонок 56b6f9b339 group posts
2025-11-15 22:23:26 +03:00

51 lines
1.2 KiB
TypeScript

import { createSlice, PayloadAction } from '@reduxjs/toolkit';
// Типы данных
interface StorState {
menu: {
activePage: string;
activeProfilePage: string;
activeGroupPage: string;
};
}
// Инициализация состояния
const initialState: StorState = {
menu: {
activePage: '',
activeProfilePage: '',
activeGroupPage: '',
},
};
// Slice
const storeSlice = createSlice({
name: 'store',
initialState,
reducers: {
setMenuActivePage: (state, activePage: PayloadAction<string>) => {
state.menu.activePage = activePage.payload;
},
setMenuActiveProfilePage: (
state,
activeProfilePage: PayloadAction<string>,
) => {
state.menu.activeProfilePage = activeProfilePage.payload;
},
setMenuActiveGroupPage: (
state,
activeGroupPage: PayloadAction<string>,
) => {
state.menu.activeGroupPage = activeGroupPage.payload;
},
},
});
export const {
setMenuActivePage,
setMenuActiveProfilePage,
setMenuActiveGroupPage,
} = storeSlice.actions;
export const storeReducer = storeSlice.reducer;