diff --git a/apps/backoffice/app/authors/[name]/page.tsx b/apps/backoffice/app/authors/[name]/page.tsx
index b04e7d6..3885f5b 100644
--- a/apps/backoffice/app/authors/[name]/page.tsx
+++ b/apps/backoffice/app/authors/[name]/page.tsx
@@ -95,7 +95,7 @@ export default async function AuthorDetailPage({
alt={s.name}
fill
className="object-cover"
- unoptimized
+ sizes="(max-width: 640px) 50vw, (max-width: 768px) 33vw, (max-width: 1024px) 25vw, 16vw"
/>
diff --git a/apps/backoffice/app/books/[id]/page.tsx b/apps/backoffice/app/books/[id]/page.tsx
index 65b0822..01a8d26 100644
--- a/apps/backoffice/app/books/[id]/page.tsx
+++ b/apps/backoffice/app/books/[id]/page.tsx
@@ -95,7 +95,7 @@ export default async function BookDetailPage({
alt={t("bookDetail.coverOf", { title: book.title })}
fill
className="object-cover"
- unoptimized
+ sizes="192px"
loading="lazy"
/>
diff --git a/apps/backoffice/app/books/page.tsx b/apps/backoffice/app/books/page.tsx
index c882f79..4848fda 100644
--- a/apps/backoffice/app/books/page.tsx
+++ b/apps/backoffice/app/books/page.tsx
@@ -170,7 +170,7 @@ export default async function BooksPage({
alt={t("books.coverOf", { name: s.name })}
fill
className="object-cover"
- unoptimized
+ sizes="(max-width: 640px) 50vw, (max-width: 768px) 33vw, (max-width: 1024px) 25vw, 16vw"
/>
diff --git a/apps/backoffice/app/components/BookCard.tsx b/apps/backoffice/app/components/BookCard.tsx
index d6b5fbb..5e1e330 100644
--- a/apps/backoffice/app/components/BookCard.tsx
+++ b/apps/backoffice/app/components/BookCard.tsx
@@ -51,7 +51,6 @@ function BookImage({ src, alt }: { src: string; alt: string }) {
sizes="(max-width: 640px) 50vw, (max-width: 768px) 33vw, (max-width: 1024px) 25vw, 16vw"
onLoad={() => setIsLoaded(true)}
onError={() => setHasError(true)}
- unoptimized
/>
);
diff --git a/apps/backoffice/app/libraries/[id]/series/[name]/page.tsx b/apps/backoffice/app/libraries/[id]/series/[name]/page.tsx
index 5a37ce5..dfc5f8d 100644
--- a/apps/backoffice/app/libraries/[id]/series/[name]/page.tsx
+++ b/apps/backoffice/app/libraries/[id]/series/[name]/page.tsx
@@ -94,7 +94,7 @@ export default async function SeriesDetailPage({
alt={t("books.coverOf", { name: displayName })}
fill
className="object-cover"
- unoptimized
+ sizes="160px"
/>
diff --git a/apps/backoffice/app/libraries/[id]/series/page.tsx b/apps/backoffice/app/libraries/[id]/series/page.tsx
index 45b0c44..ea811b1 100644
--- a/apps/backoffice/app/libraries/[id]/series/page.tsx
+++ b/apps/backoffice/app/libraries/[id]/series/page.tsx
@@ -86,7 +86,7 @@ export default async function LibrarySeriesPage({
alt={t("books.coverOf", { name: s.name })}
fill
className="object-cover"
- unoptimized
+ sizes="(max-width: 640px) 50vw, (max-width: 768px) 33vw, (max-width: 1024px) 25vw, 20vw"
/>
diff --git a/apps/backoffice/app/libraries/page.tsx b/apps/backoffice/app/libraries/page.tsx
index 948b055..772c247 100644
--- a/apps/backoffice/app/libraries/page.tsx
+++ b/apps/backoffice/app/libraries/page.tsx
@@ -1,4 +1,5 @@
import { revalidatePath } from "next/cache";
+import Image from "next/image";
import Link from "next/link";
import { listFolders, createLibrary, deleteLibrary, fetchLibraries, getBookCoverUrl, LibraryDto, FolderItem } from "../../lib/api";
import type { TranslationKey } from "../../lib/i18n/fr";
@@ -88,10 +89,12 @@ export default async function LibrariesPage() {
{/* Thumbnail fan */}
{thumbnails.length > 0 ? (
-
@@ -104,17 +107,20 @@ export default async function LibrariesPage() {
const cx = Math.cos(rad) * radius;
const cy = Math.sin(rad) * radius;
return (
-

);
diff --git a/apps/backoffice/app/series/page.tsx b/apps/backoffice/app/series/page.tsx
index 509bd7a..98751e0 100644
--- a/apps/backoffice/app/series/page.tsx
+++ b/apps/backoffice/app/series/page.tsx
@@ -138,7 +138,7 @@ export default async function SeriesPage({
alt={t("books.coverOf", { name: s.name })}
fill
className="object-cover"
- unoptimized
+ sizes="(max-width: 640px) 50vw, (max-width: 768px) 33vw, (max-width: 1024px) 25vw, 16vw"
/>
diff --git a/apps/backoffice/next.config.mjs b/apps/backoffice/next.config.mjs
index ed75d0a..d366921 100644
--- a/apps/backoffice/next.config.mjs
+++ b/apps/backoffice/next.config.mjs
@@ -1,7 +1,10 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
output: "standalone",
- typedRoutes: true
+ typedRoutes: true,
+ images: {
+ minimumCacheTTL: 86400,
+ },
};
export default nextConfig;