import { useTranslation } from "react-i18next"; import { fadeInUp } from "../Animation/OwnerPageAnimation"; import { motion, AnimatePresence } from "framer-motion"; import { User, Mail, Phone, Lock, Eye, EyeOff, MessageCircle, Camera, X, CheckCircle, XCircle } from "lucide-react"; import { CustomerTypeLabels, OwnerTypeLabels } from "@/app/enums"; import { useRef, useState } from "react"; import { handleImageUpload } from "@/app/HelperFunction/UploadImage"; import UploadImage from "./UploadImage"; export default function OwnerFormStepOne({ formData, errors, setFormData, setErrors, isCompany, idImagePreviews, setIdImagePreviews, setIdImages, type }) { const { t } = useTranslation(); const [showPassword, setShowPassword] = useState(false); const [showConfirmPassword, setShowConfirmPassword] = useState(false); const fileInputLicenseRef = useRef(null); return ( <> {t("register.firstName")} * { setFormData({ ...formData, firstName: e.target.value }); setErrors({ ...errors, firstName: null }); }} className={`w-full pr-12 pl-4 py-3 bg-white/5 border rounded-xl focus:outline-none focus:ring-2 focus:ring-amber-500 focus:border-transparent text-amber-50 placeholder-gray-500 transition-all ${errors.firstName ? "border-red-500" : "border-gray-700"}`} placeholder={t("register.firstName")} /> {errors.firstName && {errors.firstName}} {t("register.lastName")} * { setFormData({ ...formData, lastName: e.target.value }); setErrors({ ...errors, lastName: null }); }} className={`w-full px-4 py-3 bg-white/5 border rounded-xl focus:outline-none focus:ring-2 focus:ring-amber-500 focus:border-transparent text-amber-50 placeholder-gray-500 transition-all ${errors.lastName ? "border-red-500" : "border-gray-700"}`} placeholder={t("register.lastName")} /> {errors.lastName && {errors.lastName}} {t("register.email")} * { setFormData({ ...formData, email: e.target.value }); setErrors({ ...errors, email: null }); }} className={`w-full pr-12 pl-4 py-3 bg-white/5 border rounded-xl focus:outline-none focus:ring-2 focus:ring-amber-500 focus:border-transparent text-amber-50 placeholder-gray-500 transition-all ${errors.email ? "border-red-500" : "border-gray-700"}`} placeholder={t("register.emailPlaceholder")} /> {errors.email && {errors.email}} {t("register.phone")} ({t("register.optional")}) { setFormData({ ...formData, phone: e.target.value }); setErrors({ ...errors, phone: null }); }} className="w-full pr-12 pl-4 py-3 bg-white/5 border border-gray-700 rounded-xl focus:outline-none focus:ring-2 focus:ring-amber-500 focus:border-transparent text-amber-50 placeholder-gray-500 transition-all" placeholder={t("register.phoneOptionalPlaceholder")} /> {errors.phone && {errors.phone}} {t("register.whatsapp")} * { setFormData({ ...formData, whatsapp: e.target.value }); setErrors({ ...errors, whatsapp: null }); }} className={`w-full pr-12 pl-4 py-3 bg-white/5 border rounded-xl focus:outline-none focus:ring-2 focus:ring-amber-500 focus:border-transparent text-amber-50 placeholder-gray-500 transition-all ${errors.whatsapp ? "border-red-500" : "border-gray-700"}`} placeholder={t("register.whatsappPlaceholder")} /> {errors.whatsapp && {errors.whatsapp}} {t("register.phoneSecondary")} * { setFormData({ ...formData, phone2: e.target.value }); setErrors({ ...errors, phone2: null }); }} className={`w-full pr-12 pl-4 py-3 bg-white/5 border rounded-xl focus:outline-none focus:ring-2 focus:ring-amber-500 focus:border-transparent text-amber-50 placeholder-gray-500 transition-all ${errors.phone2 ? "border-red-500" : "border-gray-700"}`} placeholder={t("register.phoneSecondaryPlaceholder")} maxLength={7} /> {errors.phone2 && {errors.phone2}} {t("register.nationalNumber")} * { setFormData({ ...formData, nationalNumber: e.target.value }); setErrors({ ...errors, nationalNumber: null }); }} className={`w-full pr-12 pl-4 py-3 bg-white/5 border rounded-xl focus:outline-none focus:ring-2 focus:ring-amber-500 focus:border-transparent text-amber-50 placeholder-gray-500 transition-all ${errors.nationalNumber ? "border-red-500" : "border-gray-700"}`} placeholder={t("register.nationalNumberPlaceholder")} /> {errors.nationalNumber && {errors.nationalNumber}} {type === "owner" ? ( <> {t("register.ownerType")} * { const selectedType = parseInt(e.target.value, 10); setFormData((prev) => ({ ...prev, ownerType: selectedType })); }} className="w-full py-3 px-4 bg-white/5 border border-gray-700 rounded-xl focus:outline-none focus:ring-2 focus:ring-amber-500 focus:border-transparent appearance-none text-gray-900 cursor-pointer" > {Object.entries(OwnerTypeLabels).map(([value, label]) => ( {label} ))} > ) : ( <> {t("register.customerType")} * setFormData({ ...formData, customerType: e.target.value })} className="w-full py-3 px-4 bg-white/5 border border-gray-700 rounded-xl focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent text-white appearance-none cursor-pointer" > {Object.entries(CustomerTypeLabels).map(([value, label]) => ( {label} ))} > )} {isCompany && } {t("register.password")} * { setFormData({ ...formData, password: e.target.value }); setErrors({ ...errors, password: null }); }} className={`w-full pr-12 pl-12 py-3 bg-white/5 border rounded-xl focus:outline-none focus:ring-2 focus:ring-amber-500 focus:border-transparent text-amber-50 placeholder-gray-500 transition-all ${errors.password ? "border-red-500" : "border-gray-700"}`} placeholder={t("register.passwordPlaceholder")} /> setShowPassword(!showPassword)} className="absolute inset-y-0 left-0 pl-3 flex items-center"> {showPassword ? : } {errors.password && {errors.password}} {t("register.confirmPassword")} * { setFormData({ ...formData, confirmPassword: e.target.value }); setErrors({ ...errors, confirmPassword: null }); }} className={`w-full pr-12 pl-12 py-3 bg-white/5 border rounded-xl focus:outline-none focus:ring-2 focus:ring-amber-500 focus:border-transparent text-amber-50 placeholder-gray-500 transition-all ${errors.confirmPassword ? "border-red-500" : "border-gray-700"}`} placeholder={t("register.confirmPasswordPlaceholder")} /> setShowConfirmPassword(!showConfirmPassword)} className="absolute inset-y-0 left-0 pl-3 flex items-center"> {showConfirmPassword ? : } {formData.confirmPassword && ( {formData.password === formData.confirmPassword ? : } )} {errors.confirmPassword && {errors.confirmPassword}} > ); }
{errors.firstName}
{errors.lastName}
{errors.email}
{errors.phone}
{errors.whatsapp}
{errors.phone2}
{errors.nationalNumber}
{errors.password}
{errors.confirmPassword}