diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 33145418..4636e5eb 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -34,6 +34,13 @@ function App() { checkAuthStatus(); }, []); + // Load user preferences when user changes + useEffect(() => { + if (user) { + loadUserPreferences(); + } + }, [user]); + // Load user preferences from database const loadUserPreferences = async () => { if (!user) return; @@ -84,8 +91,6 @@ function App() { const userData = await response.json(); setUser(userData.user); setAuthAvailable(true); - // Load user preferences after setting user - setTimeout(() => loadUserPreferences(), 100); } else if (response.status === 501) { // Authentication not configured setAuthAvailable(false); diff --git a/frontend/src/components/BookSelector.tsx b/frontend/src/components/BookSelector.tsx index df4d3184..6113ee9e 100644 --- a/frontend/src/components/BookSelector.tsx +++ b/frontend/src/components/BookSelector.tsx @@ -88,8 +88,11 @@ const BookSelector: React.FC = ({ books, onBookSelect, format }) }); - if (response.ok) { + if (response.ok || response.status === 409) { + // 409 means it already exists, which is fine - just update the UI setFavorites(prev => new Set(prev).add(book)); + } else { + console.error('Failed to add favorite:', response.status, response.statusText); } } } catch (error) {