feat(web): bibliothèque et lecteur — grilles de livres bornées à 5 colonnes (max-width calc sur .book-grid et .home-book-grid), retrait du bandeau « API absente ou incomplete » de l'accueil, et véritables pages d'erreur « Livre introuvable » sur fiche et lecteur (suppression de getApiFallback, retour à l'accueil + réessayer — évolution #46)

This commit is contained in:
Git Agent
2026-08-28 23:29:03 +02:00
parent 644a4b0183
commit c2cdb07f9a
6 changed files with 106 additions and 34 deletions

View File

@ -8,14 +8,12 @@ import { navigate } from "../router";
export function HomePage() {
const [state, setState] = useState<DashboardData | null>(null);
const [fallback, setFallback] = useState(false);
useEffect(() => {
let alive = true;
Promise.all([api.books(), api.continueReading(), api.libraries(), api.jobs()])
.then(([books, continueReading, libraries, jobs]) => {
if (!alive) return;
setFallback(books.some((book) => book.filePath.startsWith("/library/")) && jobs.length === 1);
setState({ books, continueReading, libraries, jobs });
})
.catch(() => {
@ -50,7 +48,7 @@ export function HomePage() {
<div>
<p>Bibliotheque personnelle</p>
<h1>Reprendre la lecture.</h1>
<span>{fallback ? "API absente ou incomplete : specimens de demonstration actifs." : "Catalogue branche sur le serveur local."}</span>
<span>Catalogue branche sur le serveur local.</span>
</div>
<button className="primary-button" onClick={() => navigate("/search")}>
<ScanLine size={18} />