index.ts 1.3 KB

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