{"version":3,"file":"ResetPwdPage-2074eb70.js","sources":["../src/public/ResetPwdPage.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport styles from '@styles/ResetPwdPage.module.css';\nimport { useNavigate } from 'react-router-dom';\nimport * as config from '../config';\nimport Footer from '../components/Footer';\nimport { Alert, Form, Button, Input } from 'antd';\nimport { UserOutlined, LockOutlined, ArrowLeftOutlined } from '@ant-design/icons';\n\nconst controller = new AbortController();\n\nfunction ResetPwdPage() {\n const navigate = useNavigate();\n const [submitting, setSubmitting] = useState(false);\n const [successMsg, setSuccessMsg] = useState('');\n const [errMsg, setErrMsg] = useState('');\n const [form] = Form.useForm();\n\n useEffect(() => {\n return () => {\n // cleanup\n if (submitting) {\n controller.abort();\n }\n };\n }, []);\n\n const onFinish = async (values) => {\n const req = {\n email: values.email,\n password: values.password,\n repassword: values.repassword,\n };\n // console.log(req);\n setSuccessMsg('');\n // setErrMsg('');\n setSubmitting(true);\n try {\n const response = await fetch(`${config.apiURL}/password`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(req),\n signal: controller.signal,\n });\n if (!response.ok) {\n const data = await response.json();\n throw new Error(data.error || 'Failed to reset password');\n }\n const data = await response.json();\n setSuccessMsg(data.reply);\n form.resetFields();\n } catch (error) {\n // console.log('Error:', error);\n setErrMsg(error.message);\n } finally {\n setSubmitting(false);\n }\n };\n\n const Success = () => (\n
\n
\n \n
\n \n
\n
\n );\n\n if (successMsg) {\n return ;\n }\n\n return (\n <>\n
\n
\n \n

密码重置

\n {!!errMsg && (\n <>\n setErrMsg()} />\n
\n \n )}\n
\n \n } autoComplete=\"off\" placeholder=\"用户名(邮箱)\" />\n \n\n \n } autoComplete=\"off\" placeholder=\"新密码\" />\n \n\n \n } autoComplete=\"off\" placeholder=\"确认新密码\" />\n \n\n \n \n \n \n
\n
\n