diff --git a/src/app/register/page.tsx b/src/app/register/page.tsx new file mode 100644 index 0000000..4cadf4f --- /dev/null +++ b/src/app/register/page.tsx @@ -0,0 +1,234 @@ +"use client"; + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen"; +import { useState } from "react"; +import { Input } from "@/components/form/Input"; +import FooterLogoReveal from "@/components/sections/footer/FooterLogoReveal"; + +export default function RegisterPage() { + const [formData, setFormData] = useState({ + firstName: "", lastName: "", email: "", phone: "", subject: "", message: ""}); + + const [errors, setErrors] = useState>({}); + const [submitted, setSubmitted] = useState(false); + + const navItems = [ + { name: "Ana Sayfa", id: "/" }, + { name: "Öğretmenler", id: "/teachers" }, + { name: "Kayıt", id: "/register" }, + { name: "Çalışma Programı", id: "schedule" }, + ]; + + const validateForm = () => { + const newErrors: Record = {}; + + if (!formData.firstName.trim()) { + newErrors.firstName = "Ad gereklidir"; + } + if (!formData.lastName.trim()) { + newErrors.lastName = "Soyadı gereklidir"; + } + if (!formData.email.trim()) { + newErrors.email = "E-posta gereklidir"; + } else if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(formData.email)) { + newErrors.email = "Geçerli bir e-posta adresi giriniz"; + } + if (!formData.phone.trim()) { + newErrors.phone = "Telefon numarası gereklidir"; + } else if (!/^[0-9+\-\s()]+$/.test(formData.phone)) { + newErrors.phone = "Geçerli bir telefon numarası giriniz"; + } + if (!formData.subject.trim()) { + newErrors.subject = "Konu gereklidir"; + } + if (!formData.message.trim()) { + newErrors.message = "Mesaj gereklidir"; + } else if (formData.message.trim().length < 10) { + newErrors.message = "Mesaj en az 10 karakter olmalıdır"; + } + + setErrors(newErrors); + return Object.keys(newErrors).length === 0; + }; + + const handleChange = (field: string, value: string) => { + setFormData((prev) => ({ + ...prev, + [field]: value, + })); + if (errors[field]) { + setErrors((prev) => ({ + ...prev, + [field]: ""})); + } + }; + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + if (validateForm()) { + console.log("Form gönderildi:", formData); + setSubmitted(true); + setFormData({ + firstName: "", lastName: "", email: "", phone: "", subject: "", message: ""}); + setTimeout(() => setSubmitted(false), 5000); + } + }; + + return ( + + + +
+
+
+

Öğrenci Kaydı

+

+ Platformumuza katılın ve eğitim yolculuğunuza başlayın +

+
+ + {submitted && ( +
+

Başarıyla gönderildi! Yakında sizinle iletişime geçeceğiz.

+
+ )} + +
+
+
+ + handleChange("firstName", value)} + type="text" + placeholder="Adınız" + required + className={errors.firstName ? "border-red-500" : ""} + /> + {errors.firstName && ( +

{errors.firstName}

+ )} +
+
+ + handleChange("lastName", value)} + type="text" + placeholder="Soyadınız" + required + className={errors.lastName ? "border-red-500" : ""} + /> + {errors.lastName && ( +

{errors.lastName}

+ )} +
+
+ +
+
+ + handleChange("email", value)} + type="email" + placeholder="örnek@email.com" + required + className={errors.email ? "border-red-500" : ""} + /> + {errors.email && ( +

{errors.email}

+ )} +
+
+ + handleChange("phone", value)} + type="tel" + placeholder="+90 555 123 4567" + required + className={errors.phone ? "border-red-500" : ""} + /> + {errors.phone && ( +

{errors.phone}

+ )} +
+
+ +
+ + handleChange("subject", value)} + type="text" + placeholder="Kayıt nedeni" + required + className={errors.subject ? "border-red-500" : ""} + /> + {errors.subject && ( +

{errors.subject}

+ )} +
+ +
+ +