RocketChat/Rocket.Chat

View on GitHub
apps/meteor/client/sidebarv2/header/MatrixFederationSearch/useInfiniteFederationSearchPublicRooms.ts

Summary

Maintainability
B
4 hrs
Test Coverage
import { useEndpoint } from '@rocket.chat/ui-contexts';
import { useInfiniteQuery } from '@tanstack/react-query';

const tenMinutes = 10 * 60 * 1000;

export const useInfiniteFederationSearchPublicRooms = (serverName: string, roomName?: string, count?: number) => {
    const fetchRoomList = useEndpoint('GET', '/v1/federation/searchPublicRooms');
    return useInfiniteQuery(
        ['federation/searchPublicRooms', serverName, roomName, count],
        async ({ pageParam }) => fetchRoomList({ serverName, roomName, count, pageToken: pageParam }),
        {
            getNextPageParam: (lastPage) => lastPage.nextPageToken,
            useErrorBoundary: true,
            staleTime: tenMinutes,
            cacheTime: tenMinutes,
        },
    );
};