File size: 1,418 Bytes
c40c75a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import { QueryClient } from "@tanstack/react-query";
import { uiSpendLogDetailsCall } from "../networking";
import { LogEntry } from "./columns";

export interface PrefetchedLog {
  id: string;
  messages: any;
  response: any;
}

export const prefetchLogDetails = async (
  logs: LogEntry[], 
  formattedStartTime: string,
  accessToken: string,
  queryClient: QueryClient
) => {
  console.log("prefetchLogDetails called with", logs.length, "logs");
  
  const promises = logs.map((log) => {
    if (log.request_id) {
      console.log("Prefetching details for request_id:", log.request_id);
      return queryClient.prefetchQuery({
        queryKey: ["logDetails", log.request_id, formattedStartTime],
        queryFn: async () => {
          console.log("Fetching details for", log.request_id);
          const result = await uiSpendLogDetailsCall(accessToken, log.request_id, formattedStartTime) as PrefetchedLog;
          console.log("Received details for", log.request_id, ":", result ? "success" : "failed");
          return result;
        },
        staleTime: 10 * 60 * 1000, // 10 minutes
        gcTime: 10 * 60 * 1000, // 10 minutes
      });
    }
  });

  try {
    const results = await Promise.all(promises);
    console.log("All prefetch promises completed:", results.length);
    return results;
  } catch (error) {
    console.error("Error in prefetchLogDetails:", error);
    throw error;
  }
};