Shyamnath's picture
Push UI dashboard and deployment files
c40c75a
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;
}
};