mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2024-12-23 20:19:25 +00:00
80 lines
3.3 KiB
Dart
80 lines
3.3 KiB
Dart
|
import 'package:cake_wallet/themes/extensions/indicator_dot_theme.dart';
|
||
|
import 'package:flutter/material.dart';
|
||
|
|
||
|
class DashboardPageTheme extends ThemeExtension<DashboardPageTheme> {
|
||
|
final Color firstGradientBackgroundColor;
|
||
|
final Color secondGradientBackgroundColor;
|
||
|
final Color thirdGradientBackgroundColor;
|
||
|
final Color textColor;
|
||
|
final Color cardTextColor;
|
||
|
final Color pageTitleTextColor;
|
||
|
final Color mainActionsIconColor;
|
||
|
|
||
|
final IndicatorDotTheme indicatorDotTheme;
|
||
|
|
||
|
DashboardPageTheme(
|
||
|
{required this.firstGradientBackgroundColor,
|
||
|
required this.secondGradientBackgroundColor,
|
||
|
required this.thirdGradientBackgroundColor,
|
||
|
required this.textColor,
|
||
|
required this.indicatorDotTheme,
|
||
|
Color? mainActionsIconColor,
|
||
|
Color? pageTitleTextColor,
|
||
|
Color? cardTextColor})
|
||
|
: pageTitleTextColor = pageTitleTextColor ?? textColor,
|
||
|
mainActionsIconColor = mainActionsIconColor ?? textColor,
|
||
|
cardTextColor = cardTextColor ?? textColor;
|
||
|
|
||
|
@override
|
||
|
DashboardPageTheme copyWith(
|
||
|
{Color? firstGradientBackgroundColor,
|
||
|
Color? secondGradientBackgroundColor,
|
||
|
Color? thirdGradientBackgroundColor,
|
||
|
Color? textColor,
|
||
|
IndicatorDotTheme? indicatorDotTheme,
|
||
|
Color? pageTitleTextColor,
|
||
|
Color? mainActionsIconColor,
|
||
|
Color? cardTextColor}) =>
|
||
|
DashboardPageTheme(
|
||
|
firstGradientBackgroundColor:
|
||
|
firstGradientBackgroundColor ?? this.firstGradientBackgroundColor,
|
||
|
secondGradientBackgroundColor: secondGradientBackgroundColor ??
|
||
|
this.secondGradientBackgroundColor,
|
||
|
thirdGradientBackgroundColor:
|
||
|
thirdGradientBackgroundColor ?? this.thirdGradientBackgroundColor,
|
||
|
textColor: textColor ?? this.textColor,
|
||
|
indicatorDotTheme: indicatorDotTheme ?? this.indicatorDotTheme,
|
||
|
pageTitleTextColor: pageTitleTextColor ?? this.pageTitleTextColor,
|
||
|
mainActionsIconColor:
|
||
|
mainActionsIconColor ?? this.mainActionsIconColor,
|
||
|
cardTextColor: cardTextColor ?? this.cardTextColor);
|
||
|
|
||
|
@override
|
||
|
DashboardPageTheme lerp(ThemeExtension<DashboardPageTheme>? other, double t) {
|
||
|
if (other is! DashboardPageTheme) {
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
return DashboardPageTheme(
|
||
|
firstGradientBackgroundColor: Color.lerp(firstGradientBackgroundColor,
|
||
|
other.firstGradientBackgroundColor, t) ??
|
||
|
firstGradientBackgroundColor,
|
||
|
secondGradientBackgroundColor: Color.lerp(secondGradientBackgroundColor,
|
||
|
other.secondGradientBackgroundColor, t) ??
|
||
|
secondGradientBackgroundColor,
|
||
|
thirdGradientBackgroundColor: Color.lerp(thirdGradientBackgroundColor,
|
||
|
other.thirdGradientBackgroundColor, t) ??
|
||
|
thirdGradientBackgroundColor,
|
||
|
textColor: Color.lerp(textColor, other.textColor, t) ?? textColor,
|
||
|
indicatorDotTheme: indicatorDotTheme.lerp(other.indicatorDotTheme, t),
|
||
|
pageTitleTextColor:
|
||
|
Color.lerp(pageTitleTextColor, other.pageTitleTextColor, t) ??
|
||
|
pageTitleTextColor,
|
||
|
mainActionsIconColor:
|
||
|
Color.lerp(mainActionsIconColor, other.mainActionsIconColor, t) ??
|
||
|
mainActionsIconColor,
|
||
|
cardTextColor:
|
||
|
Color.lerp(cardTextColor, other.cardTextColor, t) ?? cardTextColor);
|
||
|
}
|
||
|
}
|