"use client"; import { GradientSpinner } from "@/components/ui/GradientSpinner"; import { useImageColor } from "@/hooks/useImageColor"; import { formatTime } from "@/utils/formatTime"; // Hooks import { useAudiobookData } from "@/features/audiobook/hooks/useAudiobookData"; import { useAudiobookActions } from "@/features/audiobook/hooks/useAudiobookActions"; // Components import { AudiobookHero } from "@/features/audiobook/components/AudiobookHero"; import { AudiobookActionBar } from "@/features/audiobook/components/AudiobookActionBar"; export default function AudiobookDetailPage() { // Data hook const { audiobookId, audiobook, isLoading, refetch, heroImage, metadata } = useAudiobookData(); // Extract colors from the hero image const { colors } = useImageColor(heroImage); // Action hooks const { isThisBookPlaying, isPlaying, currentTime, handlePlayPause, handleMarkAsCompleted, handleResetProgress, } = useAudiobookActions(audiobookId, audiobook, refetch); // Loading state if (isLoading) { return (
Audiobook not found
{cleanDescription}
Use the player controls in the bottom bar for playback speed, seeking, and volume.