messageReducer.js 929 B

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