Files
pse.dev/hooks/useYoutube.ts
Kalidou Diagne 31763f7662 feat: PageSpeed Insights improvements (#545)
* feat: PageSpeed Insights improvements
2025-09-01 06:01:00 +02:00

32 lines
809 B
TypeScript

import { useQuery } from "@tanstack/react-query"
async function fetchYoutubeVideos() {
try {
const response = await fetch("/api/youtube", {
cache: "default",
})
if (!response.ok) {
throw new Error(`Failed to fetch videos: ${response.status}`)
}
const data = await response.json()
return data.videos || []
} catch (error) {
console.error("Error fetching videos:", error)
return []
}
}
export const useYoutube = () => {
return useQuery({
queryKey: ["pse-youtube-videos"],
queryFn: () => fetchYoutubeVideos(),
staleTime: 5 * 60 * 1000, // 5 minutes - videos don't change frequently
gcTime: 30 * 60 * 1000, // 30 minutes cache time
retry: 2,
retryDelay: 1000,
refetchOnWindowFocus: false, // Don't refetch on window focus
})
}