messageReducer.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { createSlice} from '@reduxjs/toolkit';
  2. const initialState = {
  3. startMessages: [],
  4. message:'',
  5. editMessage: ''
  6. }
  7. export const sendMessageToSocket = (state, data) => {
  8. if (state.message && state.message.length < 200) { //remove to other file
  9. data.socket.emit('message', {...data.user, message: state.message});
  10. }
  11. };
  12. export const editMessageToSocket = (state, data) => {
  13. if (state.message && state.message.length < 200) {
  14. data.socket.emit('editmessage', {...data.user, message: state.message}); //add backend functional later find by id and edit
  15. }
  16. };
  17. const messageReducerSlice = createSlice({
  18. name: 'messageReducer',
  19. initialState,
  20. reducers: {
  21. storeMessage: (state, action) => {state.message = action.payload.message},
  22. editMessage: (state, action) => {state.editMessage = action.payload.editMessage},
  23. sendMessage: (state, action) => sendMessageToSocket(state, action.payload),
  24. clearMessage: (state) => {state.message = ''}
  25. },
  26. });
  27. const {actions, reducer} = messageReducerSlice;
  28. const messageReducer = reducer;
  29. export default messageReducer;
  30. export const {
  31. storeMessage,
  32. sendMessage,
  33. clearMessage,
  34. editMessage
  35. } = actions;