superxuu commited on
Commit
951cee4
·
1 Parent(s): be8b6db

feat: link user info modal with payment flow for VIP renewal

Browse files
frontend/src/components/UserInfoModal.tsx CHANGED
@@ -8,9 +8,10 @@ interface UserInfoModalProps {
8
  username: string;
9
  isVip: boolean;
10
  vipExpireAt: string | null;
 
11
  }
12
 
13
- export default function UserInfoModal({ isOpen, onClose, username, isVip, vipExpireAt }: UserInfoModalProps) {
14
  if (!isOpen) return null;
15
 
16
  // 格式化到期日期
@@ -87,10 +88,11 @@ export default function UserInfoModal({ isOpen, onClose, username, isVip, vipExp
87
 
88
  {/* 按钮 */}
89
  <button
90
- onClick={onClose}
91
- className="w-full mt-8 bg-gray-700 hover:bg-gray-600 text-white font-bold py-3 rounded-xl transition-colors"
92
  >
93
- 我知道了
 
94
  </button>
95
  </div>
96
  </div>
 
8
  username: string;
9
  isVip: boolean;
10
  vipExpireAt: string | null;
11
+ onRenewVip?: () => void;
12
  }
13
 
14
+ export default function UserInfoModal({ isOpen, onClose, username, isVip, vipExpireAt, onRenewVip }: UserInfoModalProps) {
15
  if (!isOpen) return null;
16
 
17
  // 格式化到期日期
 
88
 
89
  {/* 按钮 */}
90
  <button
91
+ onClick={onRenewVip || onClose}
92
+ className="w-full mt-8 bg-gradient-to-r from-yellow-500 to-orange-600 hover:from-yellow-400 hover:to-orange-500 text-white font-bold py-3.5 rounded-xl transition-all shadow-lg shadow-orange-900/20 active:scale-[0.98] flex items-center justify-center gap-2"
93
  >
94
+ <Crown size={16} />
95
+ <span>会员续费</span>
96
  </button>
97
  </div>
98
  </div>
frontend/src/components/UserMenu.tsx CHANGED
@@ -165,6 +165,10 @@ export default function UserMenu({ compact = false }: UserMenuProps) {
165
  username={username || ''}
166
  isVip={isVip}
167
  vipExpireAt={vipExpireAt}
 
 
 
 
168
  />
169
  <AdminPanel
170
  isOpen={showAdminPanel}
 
165
  username={username || ''}
166
  isVip={isVip}
167
  vipExpireAt={vipExpireAt}
168
+ onRenewVip={() => {
169
+ setShowUserInfo(false);
170
+ setShowPayment(true);
171
+ }}
172
  />
173
  <AdminPanel
174
  isOpen={showAdminPanel}