index.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import isEqual from 'lodash.isequal';
  2. import { createReducer } from '@reduxjs/toolkit';
  3. import { IChatPayload } from '../../../typescript/redux/chat/interfaces';
  4. import { TChat} from '../../../typescript/redux/chat/types';
  5. import {
  6. actionSelectChat,
  7. actionGetChatById,
  8. actionRemoveChat
  9. } from '../action';
  10. const initialState: TChat = {
  11. name: '',
  12. lastName: '',
  13. originalName: '',
  14. originalLastName: '',
  15. avatarUrl: '',
  16. avatarsArr: [],
  17. color: '',
  18. online: '',
  19. lastMessage: '',
  20. lastMessageCreatedAt:'',
  21. mute: false,
  22. sort:false,
  23. seen: 0,
  24. seenCompanion: 0,
  25. total: 0,
  26. watched: false,
  27. typing: false,
  28. number: '',
  29. country: '',
  30. pinned: false,
  31. socketId: "",
  32. mutedMyVideo: true,
  33. mutedMyAudio: false,
  34. companionMutedVideo: true,
  35. companionMutedAudio: false,
  36. _id: '',
  37. companionId: '',
  38. owner: '',
  39. createdAt: '',
  40. updatedAt: '',
  41. __v: 0,
  42. }
  43. const reducerChat = createReducer(initialState, {
  44. [actionSelectChat.type]: (state, { payload }: IChatPayload) => {
  45. if (isEqual(state, payload) === false) return payload
  46. return state;
  47. },
  48. [actionGetChatById.type]: (state, { payload }: IChatPayload) => {
  49. if (isEqual(state, payload) === false) return payload
  50. return state;
  51. },
  52. [actionRemoveChat.type]: (_state,_payload) => {
  53. return initialState
  54. },
  55. });
  56. export default reducerChat;