diff --git a/app/_ui/ProjectDetailClient.tsx b/app/_ui/ProjectDetailClient.tsx index c079794..51abe32 100644 --- a/app/_ui/ProjectDetailClient.tsx +++ b/app/_ui/ProjectDetailClient.tsx @@ -3,10 +3,11 @@ import { motion } from "framer-motion"; import { ExternalLink, Calendar, ArrowLeft, Github as GithubIcon, Share2, Code } from "lucide-react"; import Link from "next/link"; -import { useEffect } from "react"; +import { useEffect, useState } from "react"; import ReactMarkdown from "react-markdown"; import { useTranslations } from "next-intl"; import Image from "next/image"; +import { useRouter } from "next/navigation"; export type ProjectDetailData = { id: number; @@ -35,9 +36,15 @@ export default function ProjectDetailClient({ }) { const tCommon = useTranslations("common"); const tDetail = useTranslations("projects.detail"); - const tShared = useTranslations("projects.shared"); + const router = useRouter(); + const [canGoBack, setCanGoBack] = useState(false); useEffect(() => { + // Prüfen, ob wir eine History haben (von Home gekommen) + if (typeof window !== 'undefined' && window.history.length > 1) { + setCanGoBack(true); + } + try { navigator.sendBeacon?.( "/api/analytics/track", @@ -46,18 +53,31 @@ export default function ProjectDetailClient({ } catch {} }, [project.id, project.slug, locale]); + const handleBack = (e: React.MouseEvent) => { + e.preventDefault(); + // Wenn wir direkt auf die Seite gekommen sind (Deep Link), gehen wir zur Projektliste + // Ansonsten nutzen wir den Browser-Back, um an die exakte Stelle der Home oder Liste zurückzukehren + if (canGoBack) { + router.back(); + } else { + router.push(`/${locale}/projects`); + } + }; + return (
Release Date
-{new Date(project.date).toLocaleDateString(locale, { year: 'numeric', month: 'long' })}
-Category
-{project.category}
-{tList("intro")}
- ++ {tList("intro")} +
+{project.description}
+{project.description}
- -{tList("noResults")}
- -