import 'package:flutter/material.dart'; import 'package:lucide_icons_flutter/lucide_icons.dart'; import 'package:shadcn_ui/shadcn_ui.dart'; import '../../../../core/theme/app_color_scheme.dart'; import '../../../../core/theme/app_spacing.dart'; import '../kyc_page.dart'; import '../welfare_center_page.dart'; import 'menu_group_container.dart'; import 'menu_row.dart'; import 'menu_trailing_widgets.dart'; /// 菜单分组1 - 福利中心 / 实名认证 / 安全设置 / 消息通知 class MenuGroup1 extends StatelessWidget { final int kycStatus; final void Function(String) onShowComingSoon; const MenuGroup1({ super.key, required this.kycStatus, required this.onShowComingSoon, }); @override Widget build(BuildContext context) { final colorScheme = Theme.of(context).colorScheme; final isDark = Theme.of(context).brightness == Brightness.dark; return MenuGroupContainer( child: Column( children: [ // 福利中心 MenuRow( icon: LucideIcons.gift, iconColor: AppColorScheme.darkSecondary, // gold title: '福利中心', onTap: () { Navigator.push( context, MaterialPageRoute(builder: (_) => const WelfareCenterPage()), ); }, ), const Divider(height: 1), // 实名认证 MenuRow( icon: LucideIcons.shieldCheck, iconColor: AppColorScheme.getUpColor(isDark), title: '实名认证', trailing: KycBadge(kycStatus: kycStatus), onTap: () { if (kycStatus == 2) { showKycStatusDialog(context); } else { Navigator.push( context, MaterialPageRoute(builder: (_) => const KycPage()), ); } }, ), const Divider(height: 1), // 安全设置 MenuRow( icon: LucideIcons.lock, iconColor: colorScheme.onSurfaceVariant, title: '安全设置', onTap: () => onShowComingSoon('安全设置'), ), const Divider(height: 1), // 消息通知 MenuRow( icon: LucideIcons.bell, iconColor: colorScheme.onSurfaceVariant, title: '消息通知', trailing: const RedDotIndicator(), onTap: () => onShowComingSoon('消息通知'), ), ], ), ); } } /// 显示 KYC 认证状态对话框 void showKycStatusDialog(BuildContext context) { showShadDialog( context: context, builder: (ctx) => ShadDialog.alert( title: Row( children: [ Icon(Icons.check_circle, color: AppColorScheme.up, size: 20), SizedBox(width: AppSpacing.sm), const Text('实名认证'), ], ), description: const Text('您的实名认证已通过'), actions: [ ShadButton( child: const Text('确定'), onPressed: () => Navigator.of(ctx).pop(), ), ], ), ); }