// src/app/(app)/management/change-password/page.tsx "use client"; import { useState } from "react"; import { changePassword } from "@/app/(app)/management/actions"; export default function ChangePasswordPage() { const [oldPassword, setOldPassword] = useState(""); const [newPassword, setNewPassword] = useState(""); const [confirmPassword, setConfirmPassword] = useState(""); const [showSuccess, setShowSuccess] = useState(false); const getPasswordStrength = (password: string) => { if (password.length < 6) return "weak"; if (/[A-Za-z]/.test(password) && /\d/.test(password)) return "medium"; return "strong"; }; const strengthText = getPasswordStrength(newPassword); let strengthColor = ""; let strengthLabel = ""; switch (strengthText) { case "weak": strengthColor = "bg-red-500"; strengthLabel = "弱"; break; case "medium": strengthColor = "bg-yellow-500"; strengthLabel = "中等"; break; case "strong": strengthColor = "bg-green-500"; strengthLabel = "强"; break; } const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (newPassword !== confirmPassword) { alert("两次输入的密码不一致!"); return; } const formData = new FormData(); formData.append("oldPassword", oldPassword); formData.append("newPassword", newPassword); try { await changePassword(formData); setShowSuccess(true); setTimeout(() => setShowSuccess(false), 3000); } catch (error: any) { alert(error.message); } }; return (