selectors.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { createSelector } from '@reduxjs/toolkit';
  2. import { RootState, TopicMessagesState } from 'redux/interfaces';
  3. const topicMessagesState = ({ topicMessages }: RootState): TopicMessagesState =>
  4. topicMessages;
  5. export const getTopicMessges = createSelector(
  6. topicMessagesState,
  7. ({ messages }) => messages
  8. );
  9. export const getTopicMessgesPhase = createSelector(
  10. topicMessagesState,
  11. ({ phase }) => phase
  12. );
  13. export const getTopicMessgesMeta = createSelector(
  14. topicMessagesState,
  15. ({ meta }) => meta
  16. );
  17. export const getTopicMessgesCursor = createSelector(
  18. topicMessagesState,
  19. ({ cursor }) => cursor
  20. );
  21. export const getTopicMessgesCurrentPage = createSelector(
  22. topicMessagesState,
  23. ({ currentPage }) => currentPage
  24. );
  25. export const getTopicMessgesLastLoadedPage = createSelector(
  26. topicMessagesState,
  27. ({ lastLoadedPage }) => lastLoadedPage
  28. );
  29. export const getIsTopicMessagesFetching = createSelector(
  30. topicMessagesState,
  31. ({ isFetching }) => isFetching
  32. );
  33. export const getIsTopicMessagesType = createSelector(
  34. topicMessagesState,
  35. ({ messageEventType }) => messageEventType
  36. );