diff --git a/src/lib/api/services/sounds.ts b/src/lib/api/services/sounds.ts index 520ba66..9d47a8d 100644 --- a/src/lib/api/services/sounds.ts +++ b/src/lib/api/services/sounds.ts @@ -41,6 +41,7 @@ export interface GetSoundsParams { sort_order?: SortOrder limit?: number offset?: number + favorites_only?: boolean } export interface GetSoundsResponse { @@ -77,6 +78,9 @@ export class SoundsService { if (params?.offset) { searchParams.append('offset', params.offset.toString()) } + if (params?.favorites_only) { + searchParams.append('favorites_only', 'true') + } const url = searchParams.toString() ? `/api/v1/sounds/?${searchParams.toString()}` diff --git a/src/pages/SoundsPage.tsx b/src/pages/SoundsPage.tsx index 4d90053..7065a6b 100644 --- a/src/pages/SoundsPage.tsx +++ b/src/pages/SoundsPage.tsx @@ -148,6 +148,7 @@ export function SoundsPage() { search: debouncedSearchQuery.trim() || undefined, sort_by: sortBy, sort_order: sortOrder, + favorites_only: showFavoritesOnly, }) setSounds(sdbSounds) } catch (err) { @@ -173,7 +174,7 @@ export function SoundsPage() { useEffect(() => { fetchSounds() - }, [debouncedSearchQuery, sortBy, sortOrder]) + }, [debouncedSearchQuery, sortBy, sortOrder, showFavoritesOnly]) // Listen for sound_played events and update play_count useEffect(() => { @@ -224,10 +225,7 @@ export function SoundsPage() { ) } - // Filter sounds based on favorites filter - const filteredSounds = showFavoritesOnly ? sounds.filter(sound => sound.is_favorited) : sounds - - if (filteredSounds.length === 0) { + if (sounds.length === 0) { return (