"use client"; import { Disc3 } from "lucide-react"; import Link from "next/link"; import Image from "next/image"; import { Album, AlbumSource } from "../types"; import { ReactNode, lazy, Suspense } from "react"; import { useAlbumDisplayData } from "@/hooks/useMetadataDisplay"; // Lazy load MetadataEditor - modal component opened on user action const MetadataEditor = lazy(() => import("@/components/MetadataEditor").then(mod => ({ default: mod.MetadataEditor }))); interface AlbumHeroProps { album: Album; source: AlbumSource; coverUrl: string | null; colors: any; onReload: () => void; children?: ReactNode; } export function AlbumHero({ album, source, coverUrl, colors, onReload, children, }: AlbumHeroProps) { const displayData = useAlbumDisplayData(album); const formatDuration = (seconds?: number) => { if (!seconds) return ""; const hours = Math.floor(seconds / 3600); const mins = Math.floor((seconds % 3600) / 60); if (hours > 0) { return `${hours} hr ${mins} min`; } return `${mins} min`; }; const totalDuration = formatDuration(album.duration); return (
Album