UNPKG

stream-chat-react

Version:

React components to create chat conversations or livestream style chat

34 lines (33 loc) 1.39 kB
import { useCallback } from 'react'; import { useManagePollVotesRealtime } from './useManagePollVotesRealtime'; import { useCursorPaginator } from '../../InfiniteScrollPaginator/hooks/useCursorPaginator'; import { useStateStore } from '../../../store'; import { usePollContext } from '../../../context'; const paginationStateSelector = (state) => [ state.error, state.hasNextPage, state.loading, ]; export const usePollOptionVotesPagination = ({ paginationParams, }) => { const { poll } = usePollContext(); const paginationFn = useCallback(async (next) => { const { next: newNext, votes } = await poll.queryOptionVotes({ filter: paginationParams.filter, options: !next ? paginationParams?.options : { ...paginationParams?.options, next }, sort: { created_at: -1, ...paginationParams?.sort }, }); return { items: votes, next: newNext }; }, [paginationParams, poll]); const { cursorPaginatorState, loadMore } = useCursorPaginator(paginationFn, true); const votes = useManagePollVotesRealtime('vote', cursorPaginatorState, paginationParams.filter.option_id); const [error, hasNextPage, loading] = useStateStore(cursorPaginatorState, paginationStateSelector); return { error, hasNextPage, loading, loadMore, votes, }; };