feat(genre): separate persistence for Home and Favorites contexts
- Refactor genreFilterStore to support multiple contexts - Each context (home, favorites) has independent selection state - Separate localStorage keys: qbz_genre_filter_home, qbz_genre_filter_favorites - GenreFilterButton/Popup accept context prop - FavoritesView uses 'favorites' context
This commit is contained in:
1 parent
65b42295e9
commit
2c886fae7a
4 files changed
+164
-98
No files matched your search
@@ -19,10 +19,13 @@
|
||||
import GenreFilterButton from '../GenreFilterButton.svelte';
|
||||
import {
|
||||
hasActiveFilter as hasGenreFilter,
|
||||
getSelectedGenreNames
|
||||
getSelectedGenreNames,
|
||||
type GenreFilterContext
|
||||
} from '$lib/stores/genreFilterStore';
|
||||
import type { FavoritesPreferences, QobuzAlbum } from '$lib/types';
|
||||
|
||||
const GENRE_CONTEXT: GenreFilterContext = 'favorites';
|
||||
|
||||
interface FavoriteAlbum {
|
||||
id: string;
|
||||
title: string;
|
||||
@@ -415,8 +418,8 @@
|
||||
|
||||
let albums = favoriteAlbums;
|
||||
|
||||
// Filter by genre
|
||||
const selectedGenreNames = getSelectedGenreNames();
|
||||
// Filter by genre (using favorites context)
|
||||
const selectedGenreNames = getSelectedGenreNames(GENRE_CONTEXT);
|
||||
if (selectedGenreNames.length > 0) {
|
||||
albums = albums.filter(a =>
|
||||
a.genre && selectedGenreNames.some(genreName =>
|
||||
@@ -1252,7 +1255,7 @@
|
||||
<div class="toolbar">
|
||||
{#if activeTab === 'albums'}
|
||||
<div class="toolbar-controls">
|
||||
<GenreFilterButton onFilterChange={handleGenreFilterChange} />
|
||||
<GenreFilterButton context={GENRE_CONTEXT} onFilterChange={handleGenreFilterChange} />
|
||||
<div class="dropdown-container">
|
||||
<button class="control-btn" onclick={() => (showAlbumGroupMenu = !showAlbumGroupMenu)}>
|
||||
<span>
|
||||
|
||||
Reference in new issue
Block a user