messageReducer.js 897 B

123456789101112131415161718192021222324252627282930313233
  1. import { createSlice} from '@reduxjs/toolkit';
  2. const initialState = {
  3. message:''
  4. }
  5. export const sendMessageToSocket = (state, data) => {
  6. if (state.message && state.message.length < 200) { //remove to other file
  7. data.socket.emit('message', {...data.user, message: state.message});
  8. }
  9. };
  10. const messageReducerSlice = createSlice({
  11. name: 'messageReducer',
  12. initialState,
  13. reducers: {
  14. storeMessage: (state, action) => {state.message = action.payload.message},
  15. sendMessage: (state, action) => sendMessageToSocket(state, action.payload),
  16. clearMessage: (state) => {state.message = ''}
  17. },
  18. });
  19. const {actions, reducer} = messageReducerSlice;
  20. const messageReducer = reducer;
  21. export default messageReducer;
  22. export const {
  23. storeMessage,
  24. sendMessage,
  25. clearMessage
  26. } = actions;