import formatPhone from "@/shared/lib/formatPhone"; import { Button } from "@/shared/ui/button"; import { Input } from "@/shared/ui/input"; import { Label } from "@/shared/ui/label"; import clsx from "clsx"; import { ArrowLeft, Mail, Phone, Save, User } from "lucide-react"; import React, { useEffect, useState } from "react"; import { useNavigate, useParams } from "react-router-dom"; export default function EditUser() { const navigate = useNavigate(); const { id } = useParams(); const [formData, setFormData] = useState({ username: "", email: "", phone: "+998", }); const [errors, setErrors] = useState>({}); useEffect(() => { setFormData({ username: "john_doe", email: "john@example.com", phone: "+998901234567", }); }, [id]); const validateForm = () => { const newErrors: Record = {}; if (!formData.username.trim()) { newErrors.username = "Username majburiy"; } else if (formData.username.length < 3) { newErrors.username = "Username kamida 3 ta belgidan iborat bo'lishi kerak"; } if (!formData.email.trim() && !formData.phone.trim()) { newErrors.contact = "Email yoki telefon raqami kiritilishi shart"; } if (formData.email && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(formData.email)) { newErrors.email = "Email formati noto'g'ri"; } if ( formData.phone && !/^\+998\d{9}$/.test(formData.phone.replace(/\s/g, "")) ) { newErrors.phone = "Telefon raqami formati: +998901234567"; } setErrors(newErrors); return Object.keys(newErrors).length === 0; }; const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); if (validateForm()) { navigate("/"); } }; return (
{/* Header */}

Tahrirlash

Ma'lumotlarni yangilang

{/* Form Card */}
{/* Username */}
{ setFormData((p) => ({ ...p, username: e.target.value })); setErrors((p) => ({ ...p, username: "" })); }} placeholder="john_doe" className={clsx( "h-11 pl-10 rounded-lg border transition-colors bg-slate-800/50 text-slate-200 placeholder:text-slate-500", errors.username ? "border-red-500/50 focus:border-red-500 bg-red-500/10" : "border-slate-700/50 focus:border-emerald-500 hover:border-slate-600/50", )} />
{errors.username && (

{errors.username}

)}
{/* Email */}
{ setFormData((p) => ({ ...p, email: e.target.value })); setErrors((p) => ({ ...p, email: "", contact: "" })); }} placeholder="email@example.com" className={clsx( "h-11 pl-10 rounded-lg border transition-colors bg-slate-800/50 text-slate-200 placeholder:text-slate-500", errors.email ? "border-red-500/50 focus:border-red-500 bg-red-500/10" : "border-slate-700/50 focus:border-emerald-500 hover:border-slate-600/50", )} />
{errors.email && (

{errors.email}

)}
{/* Phone */}
{ setFormData((p) => ({ ...p, phone: e.target.value })); setErrors((p) => ({ ...p, phone: "", contact: "" })); }} placeholder="+998 90 123 45 67" className={clsx( "h-11 pl-10 rounded-lg border transition-colors bg-slate-800/50 text-slate-200 placeholder:text-slate-500", errors.phone ? "border-red-500/50 focus:border-red-500 bg-red-500/10" : "border-slate-700/50 focus:border-emerald-500 hover:border-slate-600/50", )} />
{errors.phone && (

{errors.phone}

)}
{/* Contact Error */} {errors.contact && (

{errors.contact}

)} {/* Action Buttons */}
); }