messageReducer.js 1.4 KB

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