frontend/src/slices/messageSlice.js
import { createEntityAdapter, createSlice } from '@reduxjs/toolkit';
import fetchInitialData from '../context/InitialDataThunk';
const messagesAdapter = createEntityAdapter();
const initialState = messagesAdapter.getInitialState();
const messageSlice = createSlice({
name: 'messages',
initialState,
reducers: {
addMessage: messagesAdapter.addOne,
addMessages: messagesAdapter.addMany,
},
extraReducers: (builder) => {
builder.addCase(fetchInitialData.fulfilled, (state, { payload }) => {
messagesAdapter.setAll(state, payload.messages);
});
},
});
export const { addMessage } = messageSlice.actions;
export { messagesAdapter };
export default messageSlice.reducer;