From 1abaff16778ba68ce3dc2cbded083abe5781804a Mon Sep 17 00:00:00 2001 From: Orvanix Date: Sat, 14 Mar 2026 17:45:31 +0000 Subject: [PATCH] feat(audiobook): add language, format and publisher to details modal --- .../audiobooks/AudiobookDetailsModal.tsx | 24 +++++++++++++++++++ src/lib/hooks/useAudiobooks.ts | 3 +++ src/lib/integrations/audible.service.ts | 6 +++++ 3 files changed, 33 insertions(+) diff --git a/src/components/audiobooks/AudiobookDetailsModal.tsx b/src/components/audiobooks/AudiobookDetailsModal.tsx index a3a79fc..5bf23b8 100644 --- a/src/components/audiobooks/AudiobookDetailsModal.tsx +++ b/src/components/audiobooks/AudiobookDetailsModal.tsx @@ -548,6 +548,30 @@ export function AudiobookDetailsModal({ + {/* Language */} + {audiobook.language && ( +
+

Language

+

{audiobook.language.charAt(0).toUpperCase() + audiobook.language.slice(1)}

+
+ )} + + {/* Format */} + {audiobook.formatType && ( +
+

Format

+

{audiobook.formatType.charAt(0).toUpperCase() + audiobook.formatType.slice(1)}

+
+ )} + + {/* Publisher */} + {audiobook.publisherName && ( +
+

Publisher

+

{audiobook.publisherName}

+
+ )} + {/* Download Link - subtle utility, visible from any context */} {isAvailable && downloadAvailable && requestId && user?.permissions?.download !== false && (
diff --git a/src/lib/hooks/useAudiobooks.ts b/src/lib/hooks/useAudiobooks.ts index 9380f40..4aa94c5 100644 --- a/src/lib/hooks/useAudiobooks.ts +++ b/src/lib/hooks/useAudiobooks.ts @@ -34,6 +34,9 @@ export interface Audiobook { requestedByUsername?: string | null; // Username who requested (only if not current user) hasReportedIssue?: boolean; // True if an open issue exists for this audiobook isIgnored?: boolean; // True if this user has ignored this audiobook from auto-requests + language?: string; + formatType?: string; + publisherName?: string; } export function useAudiobooks(type: 'popular' | 'new-releases', limit: number = 20, page: number = 1, hideAvailable: boolean = false) { diff --git a/src/lib/integrations/audible.service.ts b/src/lib/integrations/audible.service.ts index bc1bd90..954511d 100644 --- a/src/lib/integrations/audible.service.ts +++ b/src/lib/integrations/audible.service.ts @@ -50,6 +50,9 @@ export interface AudibleAudiobook { series?: string; seriesPart?: string; seriesAsin?: string; + language?: string; + formatType?: string; + publisherName?: string; } export interface AudibleSearchResult { @@ -774,6 +777,9 @@ export class AudibleService { series: data.seriesPrimary?.name || undefined, seriesPart: data.seriesPrimary?.position || undefined, seriesAsin: data.seriesPrimary?.asin || undefined, + language: data.language || undefined, + formatType: data.formatType || undefined, + publisherName: data.publisherName || undefined, }; // Ensure cover art URL is high quality