diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index dcf2d531..ed097893 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -290,6 +290,7 @@ function App() { formatBookName={formatBookName} user={user} onFavoriteChange={handleFavoriteChange} + version={versionId} /> ); }; diff --git a/frontend/src/components/BookSelector.tsx b/frontend/src/components/BookSelector.tsx index c46590ff..a0dbda68 100644 --- a/frontend/src/components/BookSelector.tsx +++ b/frontend/src/components/BookSelector.tsx @@ -7,9 +7,10 @@ interface BookSelectorProps { formatBookName: (bookName: string) => string; user?: any; onFavoriteChange?: () => void; + version?: string; } -const BookSelector: React.FC = ({ books, onBookSelect, formatBookName, user, onFavoriteChange }) => { +const BookSelector: React.FC = ({ books, onBookSelect, formatBookName, user, onFavoriteChange, version = 'esv' }) => { const [favorites, setFavorites] = useState>(new Set()); const [loading, setLoading] = useState(false); @@ -22,31 +23,31 @@ const BookSelector: React.FC = ({ books, onBookSelect, format } }, [user]); - // Also reload favorites when books change (page refresh) + // Also reload favorites when books or version change (page refresh/version switch) useEffect(() => { if (user && books.length > 0) { loadFavorites(); } - }, [books, user]); + }, [books, user, version]); const loadFavorites = async () => { if (!user) return; - + setLoading(true); try { const response = await fetch('/api/favorites', { credentials: 'include' }); - + if (response.ok) { const data = await response.json(); const favoriteBooks: string[] = data.favorites - .filter((fav: any) => !fav.chapter) // Only book-level favorites + .filter((fav: any) => !fav.chapter && fav.version === version) // Only book-level favorites for current version .map((fav: any) => fav.book); - + const bookFavorites = new Set(favoriteBooks); setFavorites(bookFavorites); - console.log('Loaded book favorites:', favoriteBooks); + console.log('Loaded book favorites for version:', version, favoriteBooks); } } catch (error) { console.error('Failed to load favorites:', error); @@ -99,7 +100,8 @@ const BookSelector: React.FC = ({ books, onBookSelect, format }, credentials: 'include', body: JSON.stringify({ - book: book + book: book, + version: version }) }); @@ -164,7 +166,7 @@ const BookSelector: React.FC = ({ books, onBookSelect, format

- ESV Bible + {version.toUpperCase()} Bible

Select a book to begin reading