blob: aa6e559f9461843cd9af32afe7114c6179038539 [file] [log] [blame]
Krishya7096ab12025-06-05 17:15:46 +08001// 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
47import React, { useState } from 'react';
48import './UserInvite.css';
49import axios from 'axios';
50import { useUser } from '../../context/UserContext';
51
52const 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
98export default UserInvite;