index.ts 987 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { createReducer } from '@reduxjs/toolkit';
  2. import { IChatsState, IChatsPayload,IChatPayload } from '../../../typescript/redux/chats/interfaces';
  3. import {
  4. actionGetChatsSuccess,
  5. actionGetChatsReject,
  6. selectCompanionSuccess
  7. } from '../action';
  8. const initialState: IChatsState = {
  9. chat:{
  10. name: '',
  11. lastName: '',
  12. avatarUrl:'',
  13. color: '',
  14. _id: '',
  15. companionId: '',
  16. owner: {
  17. _id: '',
  18. },
  19. createdAt: '',
  20. updatedAt: '',
  21. __v: 0,
  22. },
  23. total: "0",
  24. limit: "0",
  25. page: "0",
  26. chats: []
  27. }
  28. const reducerChats = createReducer(initialState, {
  29. [actionGetChatsSuccess.type]: (state,{ payload }:IChatsPayload) => {
  30. return {...state,...payload};
  31. },
  32. [actionGetChatsReject.type]: (state, _) => {
  33. return state;
  34. },
  35. [selectCompanionSuccess.type]: (state, { payload }: IChatPayload) => {
  36. const newState = { ...state }
  37. newState.chat = payload
  38. return newState;
  39. },
  40. });
  41. export default reducerChats;