fix: clear password form after async update
This commit is contained in:
parent
4b3e82568a
commit
789086830b
@ -39,12 +39,13 @@ export function AccountPanel() {
|
|||||||
|
|
||||||
async function changePassword(event: FormEvent<HTMLFormElement>) {
|
async function changePassword(event: FormEvent<HTMLFormElement>) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
const form = event.currentTarget;
|
||||||
setPasswordMessage("");
|
setPasswordMessage("");
|
||||||
const data = new FormData(event.currentTarget);
|
const data = new FormData(form);
|
||||||
const response = await fetch(`${apiBase}/auth/password/change`, { method: "POST", credentials: "include", headers: { "Content-Type": "application/json", "X-CSRF-Token": csrf }, body: JSON.stringify({ current_password: data.get("current_password"), new_password: data.get("new_password") }) });
|
const response = await fetch(`${apiBase}/auth/password/change`, { method: "POST", credentials: "include", headers: { "Content-Type": "application/json", "X-CSRF-Token": csrf }, body: JSON.stringify({ current_password: data.get("current_password"), new_password: data.get("new_password") }) });
|
||||||
const body = await response.json().catch(() => ({}));
|
const body = await response.json().catch(() => ({}));
|
||||||
if (!response.ok) setPasswordMessage(body.error?.message ?? "密码修改失败");
|
if (!response.ok) setPasswordMessage(body.error?.message ?? "密码修改失败");
|
||||||
else { setPasswordMessage("密码已修改,其他会话已撤销"); event.currentTarget.reset(); }
|
else { setPasswordMessage("密码已修改,其他会话已撤销"); form.reset(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
if (error) return <div className="mt-8"><PreviewNotice>{error}。<Link className="text-cyan underline" href="/login">前往登录</Link></PreviewNotice></div>;
|
if (error) return <div className="mt-8"><PreviewNotice>{error}。<Link className="text-cyan underline" href="/login">前往登录</Link></PreviewNotice></div>;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user