Fix 409 conflict error in BookSelector and improve dark mode preference loading
This commit is contained in:
@@ -34,6 +34,13 @@ function App() {
|
|||||||
checkAuthStatus();
|
checkAuthStatus();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
// Load user preferences when user changes
|
||||||
|
useEffect(() => {
|
||||||
|
if (user) {
|
||||||
|
loadUserPreferences();
|
||||||
|
}
|
||||||
|
}, [user]);
|
||||||
|
|
||||||
// Load user preferences from database
|
// Load user preferences from database
|
||||||
const loadUserPreferences = async () => {
|
const loadUserPreferences = async () => {
|
||||||
if (!user) return;
|
if (!user) return;
|
||||||
@@ -84,8 +91,6 @@ function App() {
|
|||||||
const userData = await response.json();
|
const userData = await response.json();
|
||||||
setUser(userData.user);
|
setUser(userData.user);
|
||||||
setAuthAvailable(true);
|
setAuthAvailable(true);
|
||||||
// Load user preferences after setting user
|
|
||||||
setTimeout(() => loadUserPreferences(), 100);
|
|
||||||
} else if (response.status === 501) {
|
} else if (response.status === 501) {
|
||||||
// Authentication not configured
|
// Authentication not configured
|
||||||
setAuthAvailable(false);
|
setAuthAvailable(false);
|
||||||
|
|||||||
@@ -88,8 +88,11 @@ const BookSelector: React.FC<BookSelectorProps> = ({ 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));
|
setFavorites(prev => new Set(prev).add(book));
|
||||||
|
} else {
|
||||||
|
console.error('Failed to add favorite:', response.status, response.statusText);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user