refactor(theme): 迁移主题感知颜色至 ThemeExtension

- 创建 AppThemeColors ThemeExtension 类,统一管理主题感知颜色(涨跌色、卡片背景、渐变等)
- 从 AppColorScheme 移除主题感知辅助函数,仅保留静态颜色常量
- 在 AppTheme 中注册 ThemeExtension,支持深色/浅色主题工厂
- 重构所有 UI 组件使用 context.appColors 访问主题颜色,替代硬编码的 AppColorScheme 方法调用
- 移除组件中重复的 isDark 判断逻辑,简化颜色获取方式
- 保持向后兼容性,所有现有功能不变
This commit is contained in:
2026-04-06 01:58:08 +08:00
parent 396668aa43
commit 7ed2435a4c
36 changed files with 658 additions and 810 deletions

View File

@@ -4,6 +4,7 @@ import 'package:shadcn_ui/shadcn_ui.dart';
import 'package:lucide_icons_flutter/lucide_icons.dart';
import 'package:provider/provider.dart';
import '../../../../core/theme/app_theme.dart';
import '../../../../core/theme/app_theme_extension.dart';
import '../../../../core/theme/app_color_scheme.dart';
import '../../../../core/theme/app_spacing.dart';
import '../../../../core/utils/toast_utils.dart';
@@ -246,7 +247,6 @@ void showDepositResultDialog(BuildContext context, Map<String, dynamic> data) {
final walletAddress = data['walletAddress'] as String? ?? '';
final walletNetwork = data['walletNetwork'] as String? ?? 'TRC20';
final colorScheme = Theme.of(context).colorScheme;
final isDark = Theme.of(context).brightness == Brightness.dark;
showShadDialog(
context: context,
@@ -263,7 +263,7 @@ void showDepositResultDialog(BuildContext context, Map<String, dynamic> data) {
children: [
NeonIcon(
icon: Icons.check_circle,
color: AppColorScheme.getUpColor(isDark),
color: context.appColors.up,
size: 24,
),
const SizedBox(width: AppSpacing.sm),
@@ -361,7 +361,6 @@ void showWithdrawDialog(BuildContext context, String? balance) {
final contactController = TextEditingController();
final formKey = GlobalKey<ShadFormState>();
final colorScheme = Theme.of(context).colorScheme;
final isDark = Theme.of(context).brightness == Brightness.dark;
showShadDialog(
context: context,
@@ -412,10 +411,10 @@ void showWithdrawDialog(BuildContext context, String? balance) {
vertical: AppSpacing.sm,
),
decoration: BoxDecoration(
color: AppColorScheme.getUpBackgroundColor(isDark),
color: context.appColors.upBackground,
borderRadius: BorderRadius.circular(AppRadius.full),
border: Border.all(
color: AppColorScheme.getUpColor(isDark).withValues(alpha: 0.2),
color: context.appColors.up.withValues(alpha: 0.2),
),
),
child: Row(
@@ -431,7 +430,7 @@ void showWithdrawDialog(BuildContext context, String? balance) {
'$balance USDT',
style: AppTextStyles.labelLarge(context).copyWith(
fontWeight: FontWeight.bold,
color: AppColorScheme.getUpColor(isDark),
color: context.appColors.up,
),
),
],