import { useRequest } from "ahooks"; import { useAuthHeaders } from "../hooks/useAuthHeaders"; import { Alert, App, Button, Drawer, Flex, Form, Input, Spin, Typography } from "antd"; import { ExportOutlined, LinkOutlined } from "@ant-design/icons"; import { useCallback, useState } from "react"; import { useNavigate } from "react-router"; export const BindKaiqiuAccount = () => { const headers = useAuthHeaders(); const isBindReq = useRequest<{ isBinded: boolean; uid?: string; }, []>(async () => { return fetch('/api/account/bind', { headers }).then(res => res.json()); }, { manual: false, debounceWait: 300, refreshDeps: [headers] }); const [open, setOpen] = useState(false); const [form] = Form.useForm<{ password: string, username: string }>(); const { modal, message } = App.useApp(); const bindRequest = useRequest(async (data) => { const result = await fetch('/api/account/bind', { method: 'PUT', body: JSON.stringify(data), headers, }).then(res => res.json()); return result; }, { manual: true, refreshDeps: [headers] }); const handleBind = useCallback(async () => { const data = await form.validateFields().catch(() => Promise.reject()); const result = await bindRequest.runAsync(data); if (!result.success) { message.error(result.message); return; } await isBindReq.runAsync(); message.success('绑定成功'); setOpen(false); }, [form, headers, isBindReq, message]); const handleForgotPass = useCallback(() => { modal.info({ title: '忘记密码', content: (