@@ -108,36 +108,24 @@ export default async function BookDetailPage({
{/* Info */}
-
-
-
{book.title}
- {book.author && (
-
{book.author}
- )}
-
-
-
+ {/* Title */}
+
{book.title}
- {/* Series + Volume link */}
- {book.series && (
-
+ {/* Author + Series + Volume + Reading status badges */}
+
+ {book.author && (
+
{book.author}
+ )}
+ {book.series && (
{book.series}
+ {book.volume != null &&
Vol. {book.volume}}
- {book.volume != null && (
-
- Vol. {book.volume}
-
- )}
-
- )}
-
- {/* Reading status + actions */}
-
-
+ )}
+
{statusLabel}
{book.reading_status === "reading" && book.reading_current_page != null && ` ยท p. ${book.reading_current_page}`}
@@ -146,35 +134,24 @@ export default async function BookDetailPage({
{new Date(book.reading_last_read_at).toLocaleDateString(locale)}
)}
-
- {book.file_format === "cbr" && }
-
- {/* Metadata pills */}
-
-
+ {/* Metadata stats */}
+
+
{formatBadge}
{book.page_count && (
-
- {book.page_count} {t("dashboard.pages").toLowerCase()}
-
+ {book.page_count} {t("dashboard.pages").toLowerCase()}
)}
{book.language && (
-
- {book.language.toUpperCase()}
-
+ {book.language.toUpperCase()}
)}
{book.isbn && (
-
- ISBN {book.isbn}
-
+ ISBN {book.isbn}
)}
{book.publish_date && (
-
- {book.publish_date}
-
+ {book.publish_date}
)}
@@ -182,6 +159,14 @@ export default async function BookDetailPage({
{book.summary && (
)}
+
+ {/* Action buttons toolbar */}
+
+
+
+ {book.file_format === "cbr" && }
+
+
diff --git a/apps/backoffice/app/components/ConvertButton.tsx b/apps/backoffice/app/components/ConvertButton.tsx
index 1130274..74cb05e 100644
--- a/apps/backoffice/app/components/ConvertButton.tsx
+++ b/apps/backoffice/app/components/ConvertButton.tsx
@@ -61,13 +61,13 @@ export function ConvertButton({ bookId }: ConvertButtonProps) {
}
return (
-
+
);
}
diff --git a/apps/backoffice/app/components/DeleteBookButton.tsx b/apps/backoffice/app/components/DeleteBookButton.tsx
index d1dd475..5a0501b 100644
--- a/apps/backoffice/app/components/DeleteBookButton.tsx
+++ b/apps/backoffice/app/components/DeleteBookButton.tsx
@@ -26,15 +26,15 @@ export function DeleteBookButton({ bookId, libraryId }: { bookId: string; librar
return (
<>
-
+ {t("bookDetail.delete")}
+
setShowConfirm(false)} maxWidth="sm">
diff --git a/apps/backoffice/app/components/MarkBookReadButton.tsx b/apps/backoffice/app/components/MarkBookReadButton.tsx
index 548aa0a..9df8fd1 100644
--- a/apps/backoffice/app/components/MarkBookReadButton.tsx
+++ b/apps/backoffice/app/components/MarkBookReadButton.tsx
@@ -40,11 +40,15 @@ export function MarkBookReadButton({ bookId, currentStatus }: MarkBookReadButton
};
return (
-
+
);
}