"use client"; import { useQuery } from "@tanstack/react-query"; import { generationsApi } from "@/lib/api"; import { GenerationCard } from "@/components/generation-card"; import { Loader2 } from "lucide-react"; export function GenerationsList() { const { data, isLoading, error } = useQuery({ queryKey: ["generations"], queryFn: () => generationsApi.list(1, 20), refetchInterval: (query) => { // Refetch if there are pending/processing generations const hasActive = query.state.data?.items.some( (item) => item.status === "pending" || item.status === "processing" ); return hasActive ? 2000 : 10000; // Poll every 2s if active, 10s otherwise }, }); if (isLoading) { return (

Loading your creations...

); } if (error) { return (
😔

Oops! Something went wrong

Failed to load generations. Please try again.

); } if (!data || data.items.length === 0) { return (
🎵

Your Canvas Awaits

No generations yet. Time to create your first masterpiece!

👈 Start by describing your music on the left
); } return (

Your Creations

{data.items.length} track{data.items.length !== 1 ? 's' : ''}
{data.items.map((generation, index) => (
))}
); }