Minor bug fix for discover filter not save the "All Genres" state.

Refactor genre saving and loading logic

Updated genre handling to save empty string for 'All genres' and adjusted loading logic accordingly.
This commit is contained in:
AdityasahuX07 2026-01-12 15:38:39 +05:30 committed by GitHub
parent 7bf3a344f3
commit 15af3e1dc2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -153,13 +153,18 @@ const SearchScreen = () => {
type: catalog.type,
};
await mmkvStorage.setItem(DISCOVER_CATALOG_KEY, JSON.stringify(catalogData));
} else {
// Clear catalog if null
await mmkvStorage.removeItem(DISCOVER_CATALOG_KEY);
}
// Save genre
// Save genre - use empty string to indicate "All genres"
// This way we distinguish between "not set" and "All genres"
if (genre) {
await mmkvStorage.setItem(DISCOVER_GENRE_KEY, genre);
} else {
await mmkvStorage.removeItem(DISCOVER_GENRE_KEY);
// Save empty string to indicate "All genres" is selected
await mmkvStorage.setItem(DISCOVER_GENRE_KEY, '');
}
} catch (error) {
logger.error('Failed to save discover settings:', error);
@ -188,11 +193,21 @@ const SearchScreen = () => {
// Load saved genre
const savedGenre = await mmkvStorage.getItem(DISCOVER_GENRE_KEY);
if (savedGenre && foundCatalog.genres.includes(savedGenre)) {
setSelectedDiscoverGenre(savedGenre);
} else if (foundCatalog.genres.length > 0) {
// Set first genre as default if saved genre not available
setSelectedDiscoverGenre(foundCatalog.genres[0]);
if (savedGenre !== null) {
if (savedGenre === '') {
// Empty string means "All genres" was selected
setSelectedDiscoverGenre(null);
} else if (foundCatalog.genres.includes(savedGenre)) {
setSelectedDiscoverGenre(savedGenre);
} else if (foundCatalog.genres.length > 0) {
// Set first genre as default if saved genre not available
setSelectedDiscoverGenre(foundCatalog.genres[0]);
}
} else {
// No saved genre, default to first genre
if (foundCatalog.genres.length > 0) {
setSelectedDiscoverGenre(foundCatalog.genres[0]);
}
}
return;
}
@ -688,7 +703,7 @@ const SearchScreen = () => {
const handleGenreSelect = (genre: string | null) => {
setSelectedDiscoverGenre(genre);
// Save genre setting
// Save genre setting - this will save empty string for null (All genres)
saveDiscoverSettings(selectedDiscoverType, selectedCatalog, genre);
genreSheetRef.current?.dismiss();