diff --git a/app/api/book-reviews/route.ts b/app/api/book-reviews/route.ts
index 884cea6..ae4940e 100644
--- a/app/api/book-reviews/route.ts
+++ b/app/api/book-reviews/route.ts
@@ -25,6 +25,10 @@ export async function GET(request: NextRequest) {
const locale = searchParams.get('locale') || 'en';
const reviews = await getBookReviews(locale);
+
+ if (process.env.NODE_ENV === 'development') {
+ console.log(`[API] Book Reviews geladen für ${locale}:`, reviews?.length || 0);
+ }
if (reviews && reviews.length > 0) {
return NextResponse.json({
diff --git a/app/components/About.tsx b/app/components/About.tsx
index ff0e368..be85d0a 100644
--- a/app/components/About.tsx
+++ b/app/components/About.tsx
@@ -160,7 +160,8 @@ const About = () => {
Shield,
Activity,
Lightbulb,
- Gamepad2
+ Gamepad2,
+ Gamepad
};
// Fallback Hobbies
@@ -296,7 +297,7 @@ const About = () => {
>
{t("techStackTitle")}
-
+
{techStack.map((stack, idx) => (
{
- {/* Hobbies */}
-
-
- {t("hobbiesTitle")}
-
-
- {hobbies.map((hobby, idx) => (
-
-
-
- {String(hobby.text)}
-
-
- ))}
+ {/* Hobbies & Reading Grid */}
+
+ {/* Hobbies Column */}
+
+
+ {t("hobbiesTitle")}
+
+
+ {hobbies.map((hobby, idx) => (
+
+
+
+ {String(hobby.text)}
+
+
+ ))}
+
+
+
+ {/* Reading Column */}
+
+ {/* Currently Reading */}
+
+
+
+
+ {/* Read Books */}
+
+
+
-
- {/* Currently Reading */}
-
-
-
-
- {/* Read Books with Ratings */}
-
-
-
diff --git a/app/components/ReadBooks.tsx b/app/components/ReadBooks.tsx
index 8c46e6e..1f3169d 100644
--- a/app/components/ReadBooks.tsx
+++ b/app/components/ReadBooks.tsx
@@ -35,6 +35,12 @@ const StarRating = ({ rating }: { rating: number }) => {
);
};
+const stripHtml = (html: string) => {
+ if (typeof window === 'undefined') return html; // Fallback for SSR
+ const doc = new DOMParser().parseFromString(html, 'text/html');
+ return doc.body.textContent || "";
+};
+
const ReadBooks = () => {
const locale = useLocale();
const t = useTranslations("home.about.readBooks");
@@ -75,8 +81,12 @@ const ReadBooks = () => {
fetchReviews();
}, [locale]);
- if (loading || reviews.length === 0) {
- return null;
+ if (loading) {
+ return Lade Buch-Bewertungen...
;
+ }
+
+ if (reviews.length === 0) {
+ return null; // Hier kannst du temporär "Keine Bücher gefunden" reinschreiben zum Testen
}
const visibleReviews = expanded ? reviews : reviews.slice(0, INITIAL_SHOW);
@@ -169,7 +179,7 @@ const ReadBooks = () => {
{/* Review Text (Optional) */}
{review.review && (
- “{review.review}”
+ “{stripHtml(review.review)}”
)}
diff --git a/lib/directus.ts b/lib/directus.ts
index 64c1cce..51a930b 100644
--- a/lib/directus.ts
+++ b/lib/directus.ts
@@ -444,7 +444,7 @@ export async function getBookReviews(locale: string): Promise