Krishya | 7096ab1 | 2025-06-05 17:15:46 +0800 | [diff] [blame] | 1 | // import React, { useState } from 'react'; |
| 2 | // import './UserInvite.css'; |
| 3 | // import axios from 'axios'; |
| 4 | // import { useUser } from '../../context/UserContext'; // 根据实际路径调整 |
| 5 | |
| 6 | // const UserInvite = () => { |
| 7 | // const { user } = useUser(); |
| 8 | // const [inviteCode, setInviteCode] = useState(''); |
| 9 | // const [loading, setLoading] = useState(false); |
| 10 | |
| 11 | // const handleGenerateInvite = async () => { |
| 12 | // if (!user?.userId) { |
| 13 | // alert('未获取到用户信息,无法生成邀请码'); |
| 14 | // return; |
| 15 | // } |
| 16 | |
| 17 | // setLoading(true); |
| 18 | // try { |
| 19 | // const response = await axios.get('/echo/user/getInviteCode', { |
| 20 | // params: { user_id: user.userId }, |
| 21 | // }); |
| 22 | // setInviteCode(response.data.invite_code); |
| 23 | // } catch (error) { |
| 24 | // console.error('生成邀请码失败:', error); |
| 25 | // alert('生成邀请码失败,请稍后再试'); |
| 26 | // } |
| 27 | // setLoading(false); |
| 28 | // }; |
| 29 | |
| 30 | // return ( |
| 31 | // <div className="user-invite-container"> |
| 32 | // <h2>邀请新用户</h2> |
| 33 | // <button className="invite-button" onClick={handleGenerateInvite} disabled={loading}> |
| 34 | // {loading ? '生成中...' : '生成邀请码'} |
| 35 | // </button> |
| 36 | // {inviteCode && ( |
| 37 | // <div className="invite-code"> |
| 38 | // 邀请码:<span>{inviteCode}</span> |
| 39 | // </div> |
| 40 | // )} |
| 41 | // </div> |
| 42 | // ); |
| 43 | // }; |
| 44 | |
| 45 | // export default UserInvite; |
| 46 | |
| 47 | import React, { useState } from 'react'; |
| 48 | import './UserInvite.css'; |
| 49 | import axios from 'axios'; |
| 50 | import { useUser } from '../../context/UserContext'; |
| 51 | |
| 52 | const UserInvite = () => { |
| 53 | const { user } = useUser(); |
| 54 | const [inviteCode, setInviteCode] = useState(''); |
| 55 | const [loading, setLoading] = useState(false); |
| 56 | |
| 57 | const handleGenerateInvite = async () => { |
| 58 | if (!user?.userId) { |
| 59 | alert('未获取到用户信息,无法生成邀请码'); |
| 60 | return; |
| 61 | } |
| 62 | |
| 63 | setLoading(true); |
| 64 | try { |
| 65 | const response = await axios.post('/echo/user/getInviteCode', { |
| 66 | user_id: user.userId, |
| 67 | }); |
| 68 | |
| 69 | const data = response.data; |
| 70 | |
| 71 | if (data.status === 'success') { |
| 72 | setInviteCode(data.invite_code); |
| 73 | } else { |
| 74 | alert(`生成失败:${data.message}`); |
| 75 | } |
| 76 | } catch (error) { |
| 77 | console.error('生成邀请码失败:', error); |
| 78 | alert('生成邀请码失败,请稍后再试'); |
| 79 | } |
| 80 | setLoading(false); |
| 81 | }; |
| 82 | |
| 83 | return ( |
| 84 | <div className="user-invite-container"> |
| 85 | <h2>邀请新用户</h2> |
| 86 | <button className="invite-button" onClick={handleGenerateInvite} disabled={loading}> |
| 87 | {loading ? '生成中...' : '生成邀请码'} |
| 88 | </button> |
| 89 | {inviteCode && ( |
| 90 | <div className="invite-code"> |
| 91 | 邀请码:<span>{inviteCode}</span> |
| 92 | </div> |
| 93 | )} |
| 94 | </div> |
| 95 | ); |
| 96 | }; |
| 97 | |
| 98 | export default UserInvite; |