Merge version_3 into main #3

Merged
bender merged 4 commits from version_3 into main 2026-03-05 23:54:31 +00:00
4 changed files with 301 additions and 77 deletions

107
src/app/dashboard/page.tsx Normal file
View File

@@ -0,0 +1,107 @@
"use client";
import { useEffect, useState } from "react";
import { useRouter } from "next/navigation";
export default function DashboardPage() {
const router = useRouter();
const [userEmail, setUserEmail] = useState("");
const [isLoading, setIsLoading] = useState(true);
useEffect(() => {
// Check if user is logged in
const email = localStorage.getItem("user_email");
if (!email) {
router.push("/login");
return;
}
setUserEmail(email);
setIsLoading(false);
}, [router]);
const handleLogout = () => {
localStorage.removeItem("user_email");
router.push("/");
};
if (isLoading) {
return (
<div className="min-h-screen flex items-center justify-center">
<div className="text-center">
<h1 className="text-2xl font-bold text-gray-800">Loading...</h1>
</div>
</div>
);
}
return (
<div className="min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100">
<nav className="bg-white shadow-md">
<div className="max-w-6xl mx-auto px-4 py-4 flex justify-between items-center">
<h1 className="text-2xl font-bold text-gray-800">Learn German</h1>
<div className="flex items-center gap-4">
<span className="text-gray-700 text-sm">{userEmail}</span>
<button
onClick={handleLogout}
className="bg-red-600 hover:bg-red-700 text-white font-semibold py-2 px-4 rounded-lg transition"
>
Logout
</button>
</div>
</div>
</nav>
<div className="max-w-6xl mx-auto px-4 py-12">
<div className="bg-white rounded-lg shadow-lg p-8">
<h2 className="text-3xl font-bold text-gray-800 mb-4">
Welcome to Your Dashboard!
</h2>
<p className="text-gray-600 mb-6">
You have successfully registered and logged in to Learn German. Your teacher will be in touch with you soon to schedule your first lesson.
</p>
<div className="grid md:grid-cols-3 gap-6">
<div className="bg-blue-50 rounded-lg p-6">
<h3 className="text-lg font-semibold text-gray-800 mb-2">
Your Lessons
</h3>
<p className="text-gray-600">View and manage your scheduled German lessons</p>
</div>
<div className="bg-green-50 rounded-lg p-6">
<h3 className="text-lg font-semibold text-gray-800 mb-2">
Chat with Teacher
</h3>
<p className="text-gray-600">Send messages to your German teacher</p>
</div>
<div className="bg-purple-50 rounded-lg p-6">
<h3 className="text-lg font-semibold text-gray-800 mb-2">
Progress Tracking
</h3>
<p className="text-gray-600">Monitor your German learning progress</p>
</div>
</div>
<div className="mt-8 bg-blue-50 border border-blue-200 rounded-lg p-6">
<h3 className="text-lg font-semibold text-gray-800 mb-2">
Getting Started
</h3>
<ul className="list-disc list-inside text-gray-700 space-y-2">
<li>Complete your profile information</li>
<li>Schedule your first lesson with the teacher</li>
<li>Start learning German in a safe, friendly environment</li>
</ul>
</div>
<button
onClick={() => router.push("/")}
className="mt-6 text-blue-600 hover:text-blue-700 font-semibold"
>
Back to Home
</button>
</div>
</div>
</div>
);
}

View File

@@ -1,34 +1,23 @@
import type { Metadata } from "next";
import { Halant } from "next/font/google";
import { Inter } from "next/font/google";
import { Montserrat } from "next/font/google";
import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
const halant = Halant({
variable: "--font-halant", subsets: ["latin"],
weight: ["300", "400", "500", "600", "700"],
});
const inter = Inter({
variable: "--font-inter", subsets: ["latin"],
});
const montserrat = Montserrat({
variable: "--font-montserrat", subsets: ["latin"],
});
export const metadata: Metadata = {
title: "Deutsch Lernen für Kinder | Sicherer Online-Unterricht", description: "Deutschunterricht für Kinder (5-12 Jahre) mit persönlicher Betreuung. Sicher, kinderfreundlich und mit direktem Chat zur Lehrerin.", keywords: "Deutschunterricht Kinder, Deutsch lernen, Online Unterricht Kinder, Sprachunterricht", metadataBase: new URL("https://deutsch-lernen-kinder.example.com"),
title: "Learn German for Kids | Safe Online Tutoring", description: "German lessons for children (5-12 years) with personal attention. Safe, child-friendly, and direct chat with the teacher.", keywords: "German lessons kids, learn German, online lessons kids, language tutoring", metadataBase: new URL("https://learn-german-kids.example.com"),
openGraph: {
title: "Deutsch Lernen für Kinder 🌸", description: "Sicherer und freundlicher Deutschunterricht speziell für Kinder zwischen 5 und 12 Jahren.", siteName: "Deutsch Lernen", type: "website", images: [
title: "Learn German for Kids", description: "Safe and friendly German lessons specifically for children ages 5-12.", siteName: "Learn German", type: "website", images: [
{
url: "http://img.b2bpic.net/free-photo/row-multiethnic-elementary-students-reading-book-classroom-vintage-effect-style-pictures_1253-1577.jpg", alt: "Kinder lernen Deutsch"},
url: "http://img.b2bpic.net/free-photo/row-multiethnic-elementary-students-reading-book-classroom-vintage-effect-style-pictures_1253-1577.jpg", alt: "Children learning German"},
],
},
twitter: {
card: "summary_large_image", title: "Deutsch Lernen für Kinder", description: "Freundlicher Online-Deutschunterricht für Kinder (5-12 Jahre)", images: ["http://img.b2bpic.net/free-photo/row-multiethnic-elementary-students-reading-book-classroom-vintage-effect-style-pictures_1253-1577.jpg"],
card: "summary_large_image", title: "Learn German for Kids", description: "Friendly online German lessons for children (5-12 years)", images: ["http://img.b2bpic.net/free-photo/row-multiethnic-elementary-students-reading-book-classroom-vintage-effect-style-pictures_1253-1577.jpg"],
},
robots: {
index: true,
@@ -45,7 +34,7 @@ export default function RootLayout({
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body
className={`${halant.variable} ${inter.variable} ${montserrat.variable} antialiased`}
className={`${inter.variable} antialiased`}
>
<Tag />
{children}

121
src/app/login/page.tsx Normal file
View File

@@ -0,0 +1,121 @@
"use client";
import { useState } from "react";
import { useRouter } from "next/navigation";
export default function LoginPage() {
const router = useRouter();
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const [error, setError] = useState("");
const [isLoading, setIsLoading] = useState(false);
const handleLogin = async (e: React.FormEvent) => {
e.preventDefault();
setError("");
setIsLoading(true);
try {
// Simulate login API call
if (!email || !password) {
setError("Please enter both email and password.");
return;
}
// Here you would typically make an API call to authenticate
// For now, we'll simulate a successful login
console.log("Login attempt:", { email, password });
// Simulate successful login
localStorage.setItem("user_email", email);
router.push("/dashboard");
} catch (err) {
setError("Login failed. Please try again.");
console.error(err);
} finally {
setIsLoading(false);
}
};
const handleRegister = () => {
router.push("/#contact");
};
return (
<div className="min-h-screen flex items-center justify-center bg-gradient-to-br from-blue-50 to-indigo-100 p-4">
<div className="w-full max-w-md">
<div className="bg-white rounded-lg shadow-lg p-8">
<h1 className="text-3xl font-bold text-center mb-2 text-gray-800">
Learn German
</h1>
<p className="text-center text-gray-600 mb-8">Login to your account</p>
<form onSubmit={handleLogin} className="space-y-4">
<div>
<label className="block text-sm font-medium text-gray-700 mb-2">
Email
</label>
<input
type="email"
value={email}
onChange={(e) => setEmail(e.target.value)}
placeholder="Enter your email"
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent outline-none transition"
disabled={isLoading}
/>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 mb-2">
Password
</label>
<input
type="password"
value={password}
onChange={(e) => setPassword(e.target.value)}
placeholder="Enter your password"
className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent outline-none transition"
disabled={isLoading}
/>
</div>
{error && (
<div className="bg-red-50 border border-red-200 text-red-700 px-4 py-3 rounded-lg text-sm">
{error}
</div>
)}
<button
type="submit"
disabled={isLoading}
className="w-full bg-blue-600 hover:bg-blue-700 text-white font-semibold py-2 px-4 rounded-lg transition disabled:opacity-50 disabled:cursor-not-allowed"
>
{isLoading ? "Logging in..." : "Login"}
</button>
</form>
<div className="mt-6 text-center">
<p className="text-gray-600 text-sm">
Don't have an account?{" "}
<button
onClick={handleRegister}
className="text-blue-600 hover:text-blue-700 font-semibold"
>
Register here
</button>
</p>
</div>
<div className="mt-6 text-center">
<button
onClick={() => router.push("/")}
className="text-gray-600 hover:text-gray-700 text-sm"
>
Back to Home
</button>
</div>
</div>
</div>
</div>
);
}

View File

@@ -12,6 +12,12 @@ import FooterLogoEmphasis from "@/components/sections/footer/FooterLogoEmphasis"
import { Heart, HelpCircle, Sparkles, Star, Zap } from "lucide-react";
export default function LandingPage() {
const handleRegistrationSubmit = (data: Record<string, string>) => {
console.log("Registration form submitted:", data);
// Handle registration logic here
window.location.href = "/login";
};
return (
<ThemeProvider
defaultButtonVariant="hover-magnetic"
@@ -27,15 +33,15 @@ export default function LandingPage() {
>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingInline
brandName="🌸 Deutsch Lernen"
brandName="Learn German"
navItems={[
{ name: "Start", id: "hero" },
{ name: "Über Uns", id: "about" },
{ name: "Home", id: "hero" },
{ name: "About", id: "about" },
{ name: "Features", id: "features" },
{ name: "Fragen?", id: "faq" },
{ name: "FAQ", id: "faq" },
]}
button={{
text: "Jetzt Anmelden", href: "#contact"}}
text: "Sign Up Now", href: "#contact"}}
animateOnLoad={true}
className="backdrop-blur-sm bg-opacity-90"
/>
@@ -43,23 +49,23 @@ export default function LandingPage() {
<div id="hero" data-section="hero">
<HeroBillboardGallery
title="Deutsch lernen mit Spaß 🌸"
description="Willkommen! Hier lernen Kinder zwischen 5 und 12 Jahren Deutsch in einer sicheren, freundlichen Umgebung. Mit persönlichem Einzelunterricht und viel Geduld!"
tag="Für Kinder"
title="Learn German with Fun"
description="Welcome! Children ages 5-12 learn German in a safe, friendly environment. With personalized one-on-one lessons and lots of patience!"
tag="For Kids"
tagIcon={Sparkles}
tagAnimation="slide-up"
background={{ variant: "plain" }}
mediaItems={[
{
imageSrc: "http://img.b2bpic.net/free-photo/row-multiethnic-elementary-students-reading-book-classroom-vintage-effect-style-pictures_1253-1577.jpg?_wi=1", imageAlt: "Kinder lernen gemeinsam Deutsch"},
imageSrc: "http://img.b2bpic.net/free-photo/row-multiethnic-elementary-students-reading-book-classroom-vintage-effect-style-pictures_1253-1577.jpg?_wi=1", imageAlt: "Children learning German together"},
{
imageSrc: "http://img.b2bpic.net/free-photo/schoolchildren-reading-library_1098-4048.jpg?_wi=1", imageAlt: "Spielerisches Deutschlernen"},
imageSrc: "http://img.b2bpic.net/free-photo/schoolchildren-reading-library_1098-4048.jpg?_wi=1", imageAlt: "Fun German learning"},
{
imageSrc: "http://img.b2bpic.net/free-vector/bubbles-chat-messenger-app-flat-style_23-2147792777.jpg?_wi=1", imageAlt: "Direkte Kommunikation mit der Lehrerin"},
imageSrc: "http://img.b2bpic.net/free-vector/bubbles-chat-messenger-app-flat-style_23-2147792777.jpg?_wi=1", imageAlt: "Direct communication with the teacher"},
]}
buttons={[
{ text: "Jetzt Registrieren", href: "#contact" },
{ text: "Mehr erfahren", href: "#about" },
{ text: "Register Now", href: "#contact" },
{ text: "Learn More", href: "#about" },
]}
buttonAnimation="blur-reveal"
mediaAnimation="slide-up"
@@ -70,13 +76,13 @@ export default function LandingPage() {
<div id="about" data-section="about">
<TextAbout
tag="Über die Lehrerin"
tag="About the Teacher"
tagIcon={Heart}
tagAnimation="slide-up"
title="10+ Years Teaching German to Children\n\nIch lebe mein ganzes Leben in der Schweiz und spreche perfektes Deutsch. Obwohl ich kein Studium absolviert habe, habe ich viel Erfahrung mit Kindern und liebe es, ihnen die deutsche Sprache auf spielerische und geduldig Weise beizubringen. Mit mir lernst du Deutsch in einer warmen, sicheren Umgebung!\n\nTrusted by 500+ Families"
title="10+ Years Teaching German to Children\n\nI have lived my whole life in Switzerland and speak perfect German. Although I have not studied formally, I have lots of experience with children and love teaching them German in a playful and patient way. With me, you learn German in a warm, safe environment!\n\nTrusted by 500+ Families"
useInvertedBackground={false}
buttons={[
{ text: "Schreib mir eine Nachricht", href: "#contact" },
{ text: "Send me a Message", href: "#contact" },
]}
buttonAnimation="slide-up"
className="py-16"
@@ -85,32 +91,32 @@ export default function LandingPage() {
<div id="features" data-section="features">
<FeatureCardNine
title="Wie das Lernen funktioniert"
description="Unser System ist einfach, sicher und speziell für Kinder designed"
tag="Unser Angebot"
title="How Learning Works"
description="Our system is simple, safe, and designed especially for kids"
tag="What We Offer"
tagIcon={Zap}
tagAnimation="slide-up"
features={[
{
id: 1,
title: "Einfache Anmeldung", description: "Du registrierst dich mit deiner E-Mail und kannst sofort mit dem Deutschunterricht beginnen. Deine Daten sind sicher und privat.", phoneOne: {
imageSrc: "http://img.b2bpic.net/free-photo/row-multiethnic-elementary-students-reading-book-classroom-vintage-effect-style-pictures_1253-1577.jpg?_wi=2", imageAlt: "Einfache Anmeldung - Phone 1"},
title: "Easy Registration", description: "You register with your email and can start German lessons immediately. Your data is safe and private.", phoneOne: {
imageSrc: "http://img.b2bpic.net/free-photo/row-multiethnic-elementary-students-reading-book-classroom-vintage-effect-style-pictures_1253-1577.jpg?_wi=2", imageAlt: "Easy Registration - Phone 1"},
phoneTwo: {
imageSrc: "http://img.b2bpic.net/free-photo/schoolchildren-reading-library_1098-4048.jpg?_wi=2", imageAlt: "Einfache Anmeldung - Phone 2"},
imageSrc: "http://img.b2bpic.net/free-photo/schoolchildren-reading-library_1098-4048.jpg?_wi=2", imageAlt: "Easy Registration - Phone 2"},
},
{
id: 2,
title: "Direkter Chat", description: "Du kannst direkt mit deiner Deutschlehrerin chatten. Sie antwortet dir schnell und freundlich - wie eine echte Freundin!", phoneOne: {
imageSrc: "http://img.b2bpic.net/free-vector/bubbles-chat-messenger-app-flat-style_23-2147792777.jpg?_wi=2", imageAlt: "Direkter Chat - Phone 1"},
title: "Direct Chat", description: "You can chat directly with your German teacher. She responds quickly and friendly - like a real friend!", phoneOne: {
imageSrc: "http://img.b2bpic.net/free-vector/bubbles-chat-messenger-app-flat-style_23-2147792777.jpg?_wi=2", imageAlt: "Direct Chat - Phone 1"},
phoneTwo: {
imageSrc: "http://img.b2bpic.net/free-photo/schoolchildren-reading-library_1098-4048.jpg?_wi=3", imageAlt: "Direkter Chat - Phone 2"},
imageSrc: "http://img.b2bpic.net/free-photo/schoolchildren-reading-library_1098-4048.jpg?_wi=3", imageAlt: "Direct Chat - Phone 2"},
},
{
id: 3,
title: "Persönlicher Unterricht", description: "Du bekommst Einzelunterricht - genau für dich! Keine Gruppen, keine anderen Kinder - nur du und die Lehrerin.", phoneOne: {
imageSrc: "http://img.b2bpic.net/free-photo/row-multiethnic-elementary-students-reading-book-classroom-vintage-effect-style-pictures_1253-1577.jpg?_wi=3", imageAlt: "Persönlicher Unterricht - Phone 1"},
title: "Personal Lessons", description: "You get one-on-one lessons - just for you! No groups, no other kids - just you and the teacher.", phoneOne: {
imageSrc: "http://img.b2bpic.net/free-photo/row-multiethnic-elementary-students-reading-book-classroom-vintage-effect-style-pictures_1253-1577.jpg?_wi=3", imageAlt: "Personal Lessons - Phone 1"},
phoneTwo: {
imageSrc: "http://img.b2bpic.net/free-vector/bubbles-chat-messenger-app-flat-style_23-2147792777.jpg?_wi=3", imageAlt: "Persönlicher Unterricht - Phone 2"},
imageSrc: "http://img.b2bpic.net/free-vector/bubbles-chat-messenger-app-flat-style_23-2147792777.jpg?_wi=3", imageAlt: "Personal Lessons - Phone 2"},
},
]}
showStepNumbers={true}
@@ -118,7 +124,7 @@ export default function LandingPage() {
useInvertedBackground={true}
animationType="slide-up"
buttons={[
{ text: "Jetzt starten", href: "#contact" },
{ text: "Get Started", href: "#contact" },
]}
buttonAnimation="slide-up"
className="py-16"
@@ -127,20 +133,20 @@ export default function LandingPage() {
<div id="testimonial" data-section="testimonial">
<TestimonialCardTen
title="Das sagen Eltern und Kinder"
description="Echte Erfahrungen von Kindern und ihren Eltern"
tag="Bewertungen"
title="What Parents and Kids Say"
description="Real experiences from children and their parents"
tag="Reviews"
tagIcon={Star}
tagAnimation="slide-up"
testimonials={[
{
id: "1", title: "Meine Tochter liebt es!", quote: "Anna war anfangs nervös, aber die Lehrerin ist so freundlich und geduldig. Jetzt freut sich Anna jede Woche auf ihren Deutschunterricht!", name: "Maria Schmidt", role: "Mutter", imageSrc: "http://img.b2bpic.net/free-photo/girl-smiling-school_1098-311.jpg?_wi=1", imageAlt: "Zufriedene Mutter"},
id: "1", title: "My daughter loves it!", quote: "Anna was nervous at first, but the teacher is so friendly and patient. Now Anna looks forward to German lessons every week!", name: "Maria Schmidt", role: "Parent", imageSrc: "http://img.b2bpic.net/free-photo/girl-smiling-school_1098-311.jpg?_wi=1", imageAlt: "Happy parent"},
{
id: "2", title: "Schnelle Fortschritte", quote: "Mein Sohn hat in 3 Monaten so viel gelernt! Die Lehrerin erklärt alles so, dass er es versteht. Super!", name: "Thomas Müller", role: "Vater", imageSrc: "http://img.b2bpic.net/free-photo/girl-smiling-school_1098-311.jpg?_wi=2", imageAlt: "Stolzer Vater"},
id: "2", title: "Fast Progress", quote: "My son has learned so much in 3 months! The teacher explains everything so he understands. Great!", name: "Thomas Müller", role: "Parent", imageSrc: "http://img.b2bpic.net/free-photo/girl-smiling-school_1098-311.jpg?_wi=2", imageAlt: "Proud parent"},
{
id: "3", title: "Sicher und privat", quote: "Ich mag, dass mein Kind sicher mit der Lehrerin chattet. Es gibt keine anderen Kinder - nur persönlicher Unterricht. Das ist genau das, was wir wollten!", name: "Sandra Fischer", role: "Mutter", imageSrc: "http://img.b2bpic.net/free-photo/cheerful-girl-with-big-copy-space_329181-14216.jpg?_wi=1", imageAlt: "Vertraute Mutter"},
id: "3", title: "Safe and Private", quote: "I like that my child chats safely with the teacher. There are no other kids - just personal lessons. That's exactly what we wanted!", name: "Sandra Fischer", role: "Parent", imageSrc: "http://img.b2bpic.net/free-photo/cheerful-girl-with-big-copy-space_329181-14216.jpg?_wi=1", imageAlt: "Trusting parent"},
{
id: "4", title: "Der beste Deutschunterricht!", quote: "Die Lehrerin ist nicht nur nett, sondern auch sehr gut! Ich habe Deutsch viel besser verstanden seit ich hier lerne.", name: "Lucas Wagner", role: "Schüler (10 Jahre)", imageSrc: "http://img.b2bpic.net/free-photo/cheerful-girl-with-big-copy-space_329181-14216.jpg?_wi=2", imageAlt: "Glücklicher Schüler"},
id: "4", title: "Best German Lessons!", quote: "The teacher is not only nice, but also very good! I understood German much better since I started learning here.", name: "Lucas Wagner", role: "Student (10 Years)", imageSrc: "http://img.b2bpic.net/free-photo/cheerful-girl-with-big-copy-space_329181-14216.jpg?_wi=2", imageAlt: "Happy student"},
]}
textboxLayout="default"
useInvertedBackground={false}
@@ -150,24 +156,24 @@ export default function LandingPage() {
<div id="faq" data-section="faq">
<FaqDouble
title="Häufig Gestellte Fragen"
description="Alles, was du über unseren Deutschunterricht wissen musst"
tag="Fragen?"
title="Frequently Asked Questions"
description="Everything you need to know about our German lessons"
tag="Questions?"
tagIcon={HelpCircle}
tagAnimation="slide-up"
faqs={[
{
id: "1", title: "Für welches Alter ist der Unterricht?", content: "Unser Deutschunterricht ist für Kinder zwischen 5 und 12 Jahren perfekt. Jeder Unterricht wird speziell auf das Alter und den Lernstand des Kindes angepasst!"},
id: "1", title: "What age is the lesson for?", content: "Our German lessons are perfect for children ages 5-12. Every lesson is specially adapted to the child's age and learning level!"},
{
id: "2", title: "Wie funktioniert die Anmeldung?", content: "Die Anmeldung ist super einfach! Klick auf 'Jetzt Registrieren', gib deine E-Mail ein, wähle ein sicheres Passwort und los geht's! Du kannst sofort anfangen zu chatten."},
id: "2", title: "How does registration work?", content: "Registration is super easy! Click 'Register Now', enter your email, choose a secure password and you're ready to go! You can start chatting right away."},
{
id: "3", title: "Kann ich die Lehrerin direkt kontaktieren?", content: "Ja, genau! Du kannst direkt in unserem Chat-System mit der Lehrerin schreiben. Sie antwortet dir freundlich und hilft dir mit deinen Fragen zum Deutschunterricht."},
id: "3", title: "Can I contact the teacher directly?", content: "Yes, exactly! You can chat directly with your German teacher in our chat system. She responds friendly and helps you with your German lesson questions."},
{
id: "4", title: "Ist meine Privatsphäre sicher?", content: "Deine Sicherheit ist uns sehr wichtig! Es gibt keine Werbung, kein Tracking und keine öffentlichen Profile. Nur du und die Lehrerin können eure Chats sehen - komplett privat!"},
id: "4", title: "Is my privacy safe?", content: "Your safety is very important to us! There is no advertising, no tracking, and no public profiles. Only you and the teacher can see your chats - completely private!"},
{
id: "5", title: "Wie viel kostet der Unterricht?", content: "Die genauen Preise werden dir bei der Registrierung angezeigt. Wir bieten flexible Pakete für verschiedene Budgets!"},
id: "5", title: "How much do the lessons cost?", content: "The exact prices will be shown to you during registration. We offer flexible packages for different budgets!"},
{
id: "6", title: "Kann ich jederzeit anfangen?", content: "Ja! Du kannst dich jederzeit anmelden und sofort anfangen. Die Lehrerin freut sich schon auf dich!"},
id: "6", title: "Can I start anytime?", content: "Yes! You can register anytime and start right away. The teacher is already looking forward to meeting you!"},
]}
faqsAnimation="slide-up"
textboxLayout="default"
@@ -179,29 +185,30 @@ export default function LandingPage() {
<div id="contact" data-section="contact">
<ContactSplitForm
title="Registriere dich jetzt!"
description="Tritt unserem Deutschunterricht bei und beginne deine Lernreise. Es ist kostenlos, einfach und sicher!"
title="Register Now!"
description="Join our German lessons and start your learning journey. It's free, easy, and safe!"
inputs={[
{
name: "name", type: "text", placeholder: "Dein Name", required: true,
name: "name", type: "text", placeholder: "Your Name", required: true,
},
{
name: "email", type: "email", placeholder: "Deine E-Mail", required: true,
name: "email", type: "email", placeholder: "Your Email", required: true,
},
{
name: "alter", type: "text", placeholder: "Dein Alter", required: false,
name: "age", type: "text", placeholder: "Your Age", required: false,
},
]}
textarea={{
name: "nachricht", placeholder: "Schreib uns eine kurze Nachricht oder Frage...", rows: 4,
name: "message", placeholder: "Write us a short message or question...", rows: 4,
required: false,
}}
useInvertedBackground={false}
imageSrc="http://img.b2bpic.net/free-photo/close-up-smiley-woman-library_23-2149204737.jpg"
imageAlt="Die freundliche Deutschlehrerin"
imageAlt="The friendly German teacher"
mediaAnimation="slide-up"
mediaPosition="right"
buttonText="Jetzt Registrieren"
buttonText="Register Now"
onSubmit={handleRegistrationSubmit}
className="py-16"
containerClassName="max-w-6xl mx-auto px-4"
/>
@@ -209,27 +216,27 @@ export default function LandingPage() {
<div id="footer" data-section="footer">
<FooterLogoEmphasis
logoText="🌸 Deutsch Lernen"
logoText="Learn German"
columns={[
{
items: [
{ label: "Startseite", href: "#hero" },
{ label: "Über uns", href: "#about" },
{ label: "Home", href: "#hero" },
{ label: "About", href: "#about" },
{ label: "Features", href: "#features" },
],
},
{
items: [
{ label: "Fragen?", href: "#faq" },
{ label: "Registrieren", href: "#contact" },
{ label: "FAQ", href: "#faq" },
{ label: "Register", href: "#contact" },
{ label: "Login", href: "/login" },
],
},
{
items: [
{ label: "Datenschutz", href: "#" },
{ label: "Impressum", href: "#" },
{ label: "Kontakt", href: "#contact" },
{ label: "Privacy Policy", href: "#" },
{ label: "Imprint", href: "#" },
{ label: "Contact", href: "#contact" },
],
},
]}