Add i18n to home sections, improve consent management and middleware asset handling

Co-authored-by: dennis <dennis@konkol.net>
This commit is contained in:
Cursor Agent
2026-01-12 15:57:28 +00:00
parent 6a4055500b
commit 683735cc63
11 changed files with 173 additions and 85 deletions

View File

@@ -4,20 +4,16 @@ import { useState, useEffect } from "react";
import { motion } from "framer-motion";
import { Mail, MapPin, Send } from "lucide-react";
import { useToast } from "@/components/Toast";
import { useLocale } from "next-intl";
import { useLocale, useTranslations } from "next-intl";
import type { JSONContent } from "@tiptap/react";
import RichTextClient from "./RichTextClient";
const Contact = () => {
const [mounted, setMounted] = useState(false);
const { showEmailSent, showEmailError } = useToast();
const locale = useLocale();
const t = useTranslations("home.contact");
const [cmsDoc, setCmsDoc] = useState<JSONContent | null>(null);
useEffect(() => {
setMounted(true);
}, []);
useEffect(() => {
(async () => {
try {
@@ -164,10 +160,6 @@ const Contact = () => {
},
];
if (!mounted) {
return null;
}
return (
<section
id="contact"
@@ -183,14 +175,13 @@ const Contact = () => {
className="text-center mb-16"
>
<h2 className="text-4xl md:text-5xl font-bold mb-6 text-stone-900">
Contact Me
{t("title")}
</h2>
{cmsDoc ? (
<RichTextClient doc={cmsDoc} className="prose prose-stone max-w-2xl mx-auto mt-4 text-stone-700" />
) : (
<p className="text-xl text-stone-700 max-w-2xl mx-auto mt-4">
Interested in working together or have questions about my projects?
Feel free to reach out!
{t("subtitle")}
</p>
)}
</motion.div>
@@ -206,12 +197,10 @@ const Contact = () => {
>
<div>
<h3 className="text-2xl font-bold text-stone-900 mb-6">
Get In Touch
{t("getInTouch")}
</h3>
<p className="text-stone-700 leading-relaxed">
I&apos;m always available to discuss new opportunities,
interesting projects, or simply chat about technology and
innovation.
{t("getInTouchBody")}
</p>
</div>