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: (
打开微信小程序 - 我的 - 修改资料 - 用户安全 - 重置密码
), }); }, [modal]); const navigate = useNavigate(); if (isBindReq.data?.isBinded === undefined) return null; if (isBindReq.data?.isBinded) { return ( navigate(`/profile/${isBindReq.data?.uid}`)}> UID: {isBindReq.data?.uid ?? '-'} ); } return ( <> setOpen(false)} >
); }