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 '../../../../core/theme/app_theme_extension.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) { 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: context.appColors.up, 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: context.colors.onSurfaceVariant, title: '安全設置', onTap: () => onShowComingSoon('安全設置'), ), const Divider(height: 1), // 消息通知 MenuRow( icon: LucideIcons.bell, iconColor: context.colors.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(), ), ], ), ); }