import React, { useState, useRef, useEffect } from "react"; import { useNavigate } from "react-router-dom"; import styles from "./ProfileTab.module.css"; const ProfileTab = () => { const menuRef = useRef(null); const navigate = useNavigate(); const [isEditing, setIsEditing] = useState(false); const [isMenuOpen, setIsMenuOpen] = useState(false); const [profile, setProfile] = useState({}); const [profileTemp, setProfileTemp] = useState({}); useEffect(() => { const handleClickOutside = (event) => { if (menuRef.current && !menuRef.current.contains(event.target)) { setIsMenuOpen(false); } }; document.addEventListener("mousedown", handleClickOutside); return () => document.removeEventListener("mousedown", handleClickOutside); }, []); const handleLogout = () => { localStorage.removeItem("token"); localStorage.removeItem("user"); window.location.reload(); }; useEffect(() => { const dummyProfile = { username: "admin", }; setProfile(dummyProfile); setProfileTemp(dummyProfile); }, []); const handleChange = (e) => { const { name, value } = e.target; setProfile((prev) => ({ ...prev, [name]: value })); }; const handleSave = async () => { try { if (!profile.oldPassword || !profile.newPassword) { alert("Password lama dan baru tidak boleh kosong."); return; } const payload = { username: profile.username, oldPassword: profile.oldPassword, newPassword: profile.newPassword, }; const response = await fetch( "https://bot.kediritechnopark.com/webhook/reset-password/psi", { method: "PUT", headers: { "Content-Type": "application/json", Authorization: `Bearer ${localStorage.getItem("token")}`, }, body: JSON.stringify(payload), } ); if (!response.ok) throw new Error("Gagal menyimpan profil"); alert("Berhasil mengubah password"); setIsEditing(false); } catch (error) { console.error("Error saat menyimpan profil:", error); alert("Terjadi kesalahan saat menyimpan profil."); } }; const handleCancel = () => { setIsEditing(false); setProfile(profileTemp); }; return (
Profile Avatar

Kawal PSI Profile

{isMenuOpen && (
)}

Account

{!isEditing ? ( ) : (
)}
{!isEditing && (
)} {isEditing && ( <>
)}
© 2025 Kediri Technopark • Dermalounge AI Admin
); }; export default ProfileTab;