socketReducer.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import {createSlice } from '@reduxjs/toolkit';
  2. const initialState = {
  3. socketStatus: 'idle',
  4. socket: null,
  5. socketUserData: {},
  6. usersOnline: [],
  7. startMessages: [],
  8. allUsers: [],
  9. writing: false,
  10. usersWriting: [],
  11. newMessages : [],
  12. newPrivateMessages: {},
  13. newPrivateMessagesArray: [],
  14. friends: []
  15. }
  16. export const getUserSocketSlice = createSlice({
  17. name: 'userSocket',
  18. initialState,
  19. reducers: {
  20. removeSocket: state => {
  21. state.socket = null
  22. state.socketStatus = 'disconnected'},
  23. getSocket: (state, action) => {
  24. state.socket = action.payload
  25. state.socketStatus = 'connected';
  26. },
  27. getUser: (state, action) => {state.socketUserData = action.payload},
  28. getAllMessages: (state, action) => {state.startMessages = action.payload},
  29. getUsersOnline: (state, action) => {state.usersOnline = action.payload},
  30. getAllUsers: (state, action) => {state.allUsers = action.payload},
  31. addNewMessage: (state, action) => {state.newMessages.push(action.payload)},
  32. addNewPrivateMessage: (state, action) => {
  33. state.newPrivateMessages = action.payload
  34. state.newPrivateMessagesArray.push(action.payload)
  35. },
  36. // addNewPrivateMessage: (state, action) => {state.newPrivateMessages = action.payload},
  37. // friendsFromSocket:(state, action) => {state.friends = action.payload}
  38. }
  39. });
  40. const {actions, reducer} = getUserSocketSlice;
  41. const getUserSocketReducer = reducer;
  42. export default getUserSocketReducer;
  43. export const {
  44. removeSocket,
  45. getSocket,
  46. getUser,
  47. getAllMessages,
  48. getUsersOnline,
  49. addNewMessage,
  50. addNewPrivateMessage,
  51. getAllUsers,
  52. friendsFromSocket,
  53. writing
  54. } = actions;