blob: 8d61846c50cee9da499e4bf68ec34e8c04a402e0 [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
Krishyac6b24832025-06-05 20:13:20 +080047
Krishya7096ab12025-06-05 17:15:46 +080048import React, { useState } from 'react';
49import './UserInvite.css';
50import axios from 'axios';
51import { useUser } from '../../context/UserContext';
52
53const UserInvite = () => {
54 const { user } = useUser();
55 const [inviteCode, setInviteCode] = useState('');
56 const [loading, setLoading] = useState(false);
57
58 const handleGenerateInvite = async () => {
59 if (!user?.userId) {
60 alert('未获取到用户信息,无法生成邀请码');
61 return;
62 }
63
64 setLoading(true);
65 try {
66 const response = await axios.post('/echo/user/getInviteCode', {
67 user_id: user.userId,
68 });
69
70 const data = response.data;
71
72 if (data.status === 'success') {
73 setInviteCode(data.invite_code);
74 } else {
75 alert(`生成失败:${data.message}`);
76 }
77 } catch (error) {
78 console.error('生成邀请码失败:', error);
79 alert('生成邀请码失败,请稍后再试');
80 }
81 setLoading(false);
82 };
83
84 return (
85 <div className="user-invite-container">
86 <h2>邀请新用户</h2>
87 <button className="invite-button" onClick={handleGenerateInvite} disabled={loading}>
88 {loading ? '生成中...' : '生成邀请码'}
89 </button>
90 {inviteCode && (
91 <div className="invite-code">
92 邀请码:<span>{inviteCode}</span>
93 </div>
94 )}
95 </div>
96 );
97};
98
99export default UserInvite;