socketReducer.js 2.0 KB

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