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:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user