changed color theme to be black and added the ability to enter the amount in the recipient’s currency

This commit is contained in:
Arseni
2026-03-02 17:41:41 +03:00
parent 17e08ff26f
commit 6bb3ab5063
41 changed files with 618 additions and 239 deletions

View File

@@ -33,7 +33,8 @@ class QuoteStatusCard extends StatelessWidget {
Widget build(BuildContext context) {
final theme = Theme.of(context);
final foregroundColor = _resolveForegroundColor(theme, statusType);
final statusStyle = theme.textTheme.bodyMedium?.copyWith(color: foregroundColor);
final elementColor = _resolveElementColor(theme, statusType);
final statusStyle = theme.textTheme.bodyMedium?.copyWith(color: elementColor);
final helperStyle = theme.textTheme.bodySmall?.copyWith(
color: foregroundColor.withValues(alpha: 0.8),
);
@@ -43,6 +44,9 @@ class QuoteStatusCard extends StatelessWidget {
decoration: BoxDecoration(
color: _resolveCardColor(theme, statusType),
borderRadius: BorderRadius.circular(_cardRadius),
border: Border.all(
color: elementColor.withValues(alpha: 0.5),
),
),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
@@ -61,7 +65,7 @@ class QuoteStatusCard extends StatelessWidget {
: Icon(
_resolveIcon(statusType),
size: _iconSize,
color: foregroundColor,
color: elementColor,
),
),
const SizedBox(width: _cardSpacing),
@@ -98,28 +102,36 @@ class QuoteStatusCard extends StatelessWidget {
Color _resolveCardColor(ThemeData theme, QuoteStatusType status) {
switch (status) {
case QuoteStatusType.loading:
return theme.colorScheme.secondaryContainer;
case QuoteStatusType.active:
case QuoteStatusType.missing:
return theme.colorScheme.onSecondary;
case QuoteStatusType.error:
case QuoteStatusType.expired:
return theme.colorScheme.errorContainer;
case QuoteStatusType.active:
return theme.colorScheme.primaryContainer;
case QuoteStatusType.missing:
return theme.colorScheme.surfaceContainerHighest;
}
}
Color _resolveForegroundColor(ThemeData theme, QuoteStatusType status) {
switch (status) {
case QuoteStatusType.active:
case QuoteStatusType.missing:
case QuoteStatusType.loading:
return theme.colorScheme.onSecondaryContainer;
return theme.colorScheme.onSecondary;
case QuoteStatusType.error:
case QuoteStatusType.expired:
return theme.colorScheme.onErrorContainer;
}
}
Color _resolveElementColor(ThemeData theme, QuoteStatusType status) {
switch (status) {
case QuoteStatusType.active:
return theme.colorScheme.onPrimaryContainer;
case QuoteStatusType.missing:
return theme.colorScheme.onSurfaceVariant;
case QuoteStatusType.loading:
return theme.colorScheme.primary;
case QuoteStatusType.error:
case QuoteStatusType.expired:
return theme.colorScheme.onErrorContainer;
}
}