import 'package:flutter/material.dart'; class AccountListTheme extends ThemeExtension { final Color tilesTextColor; final Color tilesAmountColor; final Color tilesBackgroundColor; final Color currentAccountBackgroundColor; final Color currentAccountTextColor; final Color currentAccountAmountColor; AccountListTheme( {required this.tilesTextColor, required this.tilesAmountColor, required this.tilesBackgroundColor, required this.currentAccountBackgroundColor, required this.currentAccountTextColor, required this.currentAccountAmountColor}); @override AccountListTheme copyWith( {Color? tilesTextColor, Color? tilesAmountColor, Color? tilesBackgroundColor, Color? currentAccountBackgroundColor, Color? currentAccountTextColor, Color? currentAccountAmountColor}) => AccountListTheme( tilesTextColor: tilesTextColor ?? this.tilesTextColor, tilesAmountColor: tilesAmountColor ?? this.tilesAmountColor, tilesBackgroundColor: tilesBackgroundColor ?? this.tilesBackgroundColor, currentAccountBackgroundColor: currentAccountBackgroundColor ?? this.currentAccountBackgroundColor, currentAccountTextColor: currentAccountTextColor ?? this.currentAccountTextColor, currentAccountAmountColor: currentAccountAmountColor ?? this.currentAccountAmountColor); @override AccountListTheme lerp(ThemeExtension? other, double t) { if (other is! AccountListTheme) { return this; } return AccountListTheme( tilesTextColor: Color.lerp(tilesTextColor, other.tilesTextColor, t)!, tilesAmountColor: Color.lerp(tilesAmountColor, other.tilesAmountColor, t)!, tilesBackgroundColor: Color.lerp(tilesBackgroundColor, other.tilesBackgroundColor, t)!, currentAccountBackgroundColor: Color.lerp(currentAccountBackgroundColor, other.currentAccountBackgroundColor, t)!, currentAccountTextColor: Color.lerp( currentAccountTextColor, other.currentAccountTextColor, t)!, currentAccountAmountColor: Color.lerp( currentAccountAmountColor, other.currentAccountAmountColor, t)!); } }