mirror of
https://github.com/privacy-scaling-explorations/pse.dev.git
synced 2026-01-08 21:58:05 -05:00
32 lines
809 B
TypeScript
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
|
|
})
|
|
}
|