"use client"; import { useState } from "react"; import { Eye, EyeOff } from "lucide-react"; interface Props { user: any; setUser: (user: any) => void; onClose: () => void; } export default function UsernameTab({ user, setUser, onClose }: Props) { const [newUsername, setNewUsername] = useState(""); const [currentPassword, setCurrentPassword] = useState(""); const [errorMsg, setErrorMsg] = useState(""); const [successMsg, setSuccessMsg] = useState(""); const [isSubmitting, setIsSubmitting] = useState(false); const [showCurrent, setShowCurrent] = useState(false); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setIsSubmitting(true); setErrorMsg(""); setSuccessMsg(""); try { const res = await fetch('/api/auth/change-username', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ currentPassword, newUsername }), }); const data = await res.json(); if (res.ok) { setSuccessMsg("Username changed successfully!"); setCurrentPassword(""); setNewUsername(""); if (user) { setUser({ ...user, username: data.newUsername }); } } else { setErrorMsg(data.error || "Failed to change username."); } } catch (err: any) { setErrorMsg(err.message || "A system error occurred."); } finally { setIsSubmitting(false); } }; return (
); }