All files / app/features/messages useMessageListsAutoRefetch.ts

30.76% Statements 4/13
100% Branches 0/0
0% Functions 0/2
30.76% Lines 4/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 281x 1x 1x 1x                                                
import { useQueryClient } from "@tanstack/react-query";
import { messageThreadsListKey } from "features/queryKeys";
import useNotifications from "features/useNotifications";
import { useEffect } from "react";
 
/**
 * Refetches the unified message-threads list whenever any of the unseen counts
 * on the ping query change, so badge counts and list contents stay in sync.
 */
export default function useMessageListsAutoRefetch() {
  const { data: notifications } = useNotifications();
  const queryClient = useQueryClient();
  const unseenMessageCount = notifications?.unseenMessageCount;
  const unseenHostingHostRequestCount = notifications?.unseenHostingHostRequestCount;
  const unseenSurfingHostRequestCount = notifications?.unseenSurfingHostRequestCount;
  const unseenPublicTripOfferCount = notifications?.unseenPublicTripOfferCount;
 
  useEffect(() => {
    queryClient.invalidateQueries({ queryKey: messageThreadsListKey() });
  }, [
    unseenMessageCount,
    unseenHostingHostRequestCount,
    unseenSurfingHostRequestCount,
    unseenPublicTripOfferCount,
    queryClient,
  ]);
}