import 'package:cake_wallet/themes/extensions/indicator_dot_theme.dart'; import 'package:flutter/material.dart'; class DashboardPageTheme extends ThemeExtension { 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? 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); } }