MostOfLuck/frontend-project-12

View on GitHub
frontend/src/slices/messageSlice.js

Summary

Maintainability
A
0 mins
Test Coverage
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;