import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import '../../../../core/theme/app_color_scheme.dart'; import '../../../../core/theme/app_spacing.dart'; /// 交易按钮组件 /// /// CTA 买入/卖出按钮。profit-green底 / sell-red底,圆角lg,高48,白字16px bold。 class TradeButton extends StatelessWidget { final bool isBuy; final String? coinCode; final bool enabled; final bool isLoading; final VoidCallback onPressed; const TradeButton({ super.key, required this.isBuy, required this.coinCode, required this.enabled, required this.isLoading, required this.onPressed, }); @override Widget build(BuildContext context) { final colorScheme = Theme.of(context).colorScheme; final fillColor = isBuy ? AppColorScheme.buyButtonFill : AppColorScheme.sellButtonFill; return GestureDetector( onTap: enabled ? onPressed : null, child: AnimatedContainer( duration: const Duration(milliseconds: 200), height: 48, decoration: BoxDecoration( color: enabled ? fillColor : colorScheme.onSurface.withOpacity(0.08), borderRadius: BorderRadius.circular(AppRadius.lg), ), child: Center( child: isLoading ? const SizedBox( width: 20, height: 20, child: CircularProgressIndicator( strokeWidth: 2, color: Colors.white, ), ) : Text( '${isBuy ? '买入' : '卖出'} ${coinCode ?? ""}', style: GoogleFonts.inter( fontSize: 16, fontWeight: FontWeight.w700, color: enabled ? Colors.white : colorScheme.onSurface.withOpacity(0.3), ), ), ), ), ); } }