index.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. _id: '',
  32. companionId: '',
  33. owner: '',
  34. createdAt: '',
  35. updatedAt: '',
  36. __v: 0,
  37. }
  38. const reducerChat = createReducer(initialState, {
  39. [actionSelectChat.type]: (state, { payload }: IChatPayload) => {
  40. if (isEqual(state, payload) === false) return payload
  41. return state;
  42. },
  43. [actionGetChatById.type]: (state, { payload }: IChatPayload) => {
  44. if (isEqual(state, payload) === false) return payload
  45. return state;
  46. },
  47. [actionRemoveChat.type]: (_state,_payload) => {
  48. return initialState
  49. },
  50. });
  51. export default reducerChat;