Make favorites version-aware - verses only appear favorited in the version they were saved in

- Updated loadFavorites to filter favorites by version: only show favorites for current version
- Modified removeFavorite to match version when deleting specific favorites
- Added version to useEffect dependencies so favorites refresh when version changes
- Backend already supports version-specific favorites via database schema

Now users can favorite Genesis 1:1 in both ESV and NKJV independently - switching versions shows correct favorited states.
This commit is contained in:
Ryderjj89
2025-09-28 13:50:57 -04:00
parent e21bc59463
commit 213c8394c3

View File

@@ -48,12 +48,12 @@ const BibleReader: React.FC<BibleReaderProps> = ({ book, chapter, onBack, format
}
}, [loading, content]);
// Load favorites when user is available
// Load favorites when user is available and reload when version changes
useEffect(() => {
if (user) {
loadFavorites();
}
}, [user, book, chapter]);
}, [user, book, chapter, version]);
const loadFavorites = async () => {
if (!user) return;
@@ -66,12 +66,12 @@ const BibleReader: React.FC<BibleReaderProps> = ({ book, chapter, onBack, format
if (response.ok) {
const data = await response.json();
const favoriteStrings: string[] = data.favorites
.filter((fav: any) => fav.book === book && fav.chapter === chapter && fav.verse_start) // Only verse-level favorites for this chapter
.filter((fav: any) => fav.book === book && fav.chapter === chapter && fav.verse_start && fav.version === version) // Only verse-level favorites for this chapter and version
.map((fav: any) => fav.verse_end ? `${fav.verse_start}-${fav.verse_end}` : fav.verse_start.toString());
const verseFavorites = new Set<string>(favoriteStrings);
setFavorites(verseFavorites);
console.log('Loaded verse favorites:', favoriteStrings);
console.log('Loaded verse favorites for version:', version, favoriteStrings);
}
} catch (error) {
console.error('Failed to load favorites:', error);
@@ -95,7 +95,8 @@ const BibleReader: React.FC<BibleReaderProps> = ({ book, chapter, onBack, format
const verseFavorite = data.favorites.find((fav: any) =>
fav.book === book &&
fav.chapter === chapter &&
fav.verse_start === parseInt(verseNumber)
fav.verse_start === parseInt(verseNumber) &&
fav.version === version
);
if (verseFavorite) {