Spaces:
Paused
Paused
| 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; | |
| } | |
| }; |