"use client" import { useEffect, useState } from "react" import { getApiUrl } from "@/lib/api-config" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import Link from "next/link" import { Music } from "lucide-react" interface Song { id: number title: string slug?: string original_artist?: string } export default function SongsPage() { const [songs, setSongs] = useState([]) const [loading, setLoading] = useState(true) useEffect(() => { fetch(`${getApiUrl()}/songs/?limit=1000`) .then(res => res.json()) .then(data => { // Sort alphabetically const sorted = data.sort((a: Song, b: Song) => a.title.localeCompare(b.title)) setSongs(sorted) }) .catch(console.error) .finally(() => setLoading(false)) }, []) if (loading) return
Loading songs...
return (

Songs

Every song played, from originals to rare covers.

{songs.map((song) => ( {song.title} {song.original_artist && (

Original by {song.original_artist}

)}
))}
) }