import 'package:flutter/material.dart'; import 'package:lucide_icons_flutter/lucide_icons.dart'; import '../../../core/theme/app_theme.dart'; import '../../../core/theme/app_spacing.dart'; /// 首頁快捷操作欄 - 充值/提現/劃轉/盈虧/賬單 class QuickActionsRow extends StatelessWidget { const QuickActionsRow({ super.key, this.onDeposit, this.onWithdraw, this.onTransfer, this.onProfit, this.onBills, }); final VoidCallback? onDeposit; final VoidCallback? onWithdraw; final VoidCallback? onTransfer; final VoidCallback? onProfit; final VoidCallback? onBills; @override Widget build(BuildContext context) { final colorScheme = Theme.of(context).colorScheme; final isDark = colorScheme.brightness == Brightness.dark; // Light: #FFFFFF, Dark: #0F172A final containerBg = isDark ? const Color(0xFF0F172A) : const Color(0xFFFFFFFF); // Light: #E2E8F0, Dark: #1E293B final borderColor = isDark ? const Color(0xFF1E293B) : const Color(0xFFE2E8F0); return Container( padding: const EdgeInsets.all(16), decoration: BoxDecoration( color: containerBg, border: Border.all( color: borderColor, width: 1, ), borderRadius: BorderRadius.circular(AppRadius.lg), ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ _ActionItem( icon: LucideIcons.arrowDownToLine, label: '充值', colorScheme: colorScheme, onTap: onDeposit, ), _ActionItem( icon: LucideIcons.arrowUpFromLine, label: '提現', colorScheme: colorScheme, onTap: onWithdraw, ), _ActionItem( icon: LucideIcons.repeat, label: '劃轉', colorScheme: colorScheme, onTap: onTransfer, ), _ActionItem( icon: LucideIcons.chartPie, label: '盈虧', colorScheme: colorScheme, onTap: onProfit, ), _ActionItem( icon: LucideIcons.fileText, label: '賬單', colorScheme: colorScheme, onTap: onBills, ), ], ), ); } } class _ActionItem extends StatelessWidget { const _ActionItem({ required this.icon, required this.label, required this.colorScheme, required this.onTap, }); final IconData icon; final String label; final ColorScheme colorScheme; final VoidCallback? onTap; @override Widget build(BuildContext context) { // Light: #F3F4F6, Dark: #1E293B final isDark = colorScheme.brightness == Brightness.dark; final iconBgColor = isDark ? const Color(0xFF1E293B) : const Color(0xFFF3F4F6); // Light: #4B5563, Dark: 根據主題 final iconColor = isDark ? colorScheme.onSurfaceVariant : const Color(0xFF4B5563); return GestureDetector( onTap: onTap, behavior: HitTestBehavior.opaque, child: Column( mainAxisSize: MainAxisSize.min, children: [ Container( width: 40, height: 40, decoration: BoxDecoration( color: iconBgColor, borderRadius: BorderRadius.circular(AppRadius.md), ), alignment: Alignment.center, child: Icon( icon, size: 18, color: iconColor, ), ), const SizedBox(height: AppSpacing.xs + 2), Text( label, style: AppTextStyles.labelMedium(context), ), ], ), ); } }