import { Input } from '@heroui/input'; import { useLocalStorage } from '@uidotdev/usehooks'; import { Controller, useForm } from 'react-hook-form'; import toast from 'react-hot-toast'; import { useNavigate } from 'react-router-dom'; import key from '@/const/key'; import SaveButtons from '@/components/button/save_buttons'; import WebUIManager from '@/controllers/webui_manager'; const ChangePasswordCard = () => { const { control, handleSubmit: handleWebuiSubmit, formState: { isSubmitting, errors }, reset, watch, } = useForm<{ oldToken: string; newToken: string; }>({ defaultValues: { oldToken: '', newToken: '', }, }); const navigate = useNavigate(); const [, setToken] = useLocalStorage(key.token, ''); // 监听旧密码的值 const oldTokenValue = watch('oldToken'); const onSubmit = handleWebuiSubmit(async (data) => { try { // 使用正常密码更新流程 await WebUIManager.changePassword(data.oldToken, data.newToken); toast.success('修改成功'); setToken(''); localStorage.removeItem(key.token); navigate('/web_login'); } catch (error) { const msg = (error as Error).message; toast.error(`修改失败: ${msg}`); } }); return ( <>