diff --git a/lib/app/theme/app_colors_scheme.dart b/lib/app/theme/app_colors_scheme.dart index 80df22c..d7d9c49 100644 --- a/lib/app/theme/app_colors_scheme.dart +++ b/lib/app/theme/app_colors_scheme.dart @@ -1,10 +1,13 @@ -import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:theme_tailor_annotation/theme_tailor_annotation.dart'; + +part 'app_colors_scheme.tailor.dart'; /// {@template app_colors} /// Класс, реализующий расширение для добавления токенов в цветовую схему /// {@endtemplate} -class AppColors extends ThemeExtension with DiagnosticableTreeMixin { +@TailorMixin(themeGetter: ThemeGetter.onBuildContext) +class AppColors extends ThemeExtension with _$AppColorsTailorMixin { /// {@macro app_colors} /// /// Принимает: @@ -23,18 +26,23 @@ class AppColors extends ThemeExtension with DiagnosticableTreeMixin { }); /// Цвет тестовый + @override final Color testColor; /// Цвет элемента текста + @override final Color itemTextColor; /// Цвет фона снекбара ошибки + @override final Color errorSnackbarBackground; /// Цвет фона снекбара успеха + @override final Color successSnackbarBackground; /// Цвет фона снекбара информации + @override final Color infoSnackbarBackground; /// Цвета светлой темы @@ -54,50 +62,4 @@ class AppColors extends ThemeExtension with DiagnosticableTreeMixin { infoSnackbarBackground: const Color.fromARGB(255, 35, 147, 178), itemTextColor: Colors.white, ); - - @override - ThemeExtension copyWith({ - Color? testColor, - Color? errorSnackbarBackground, - Color? successSnackbarBackground, - Color? infoSnackbarBackground, - Color? itemTextColor, - }) => AppColors( - testColor: testColor ?? this.testColor, - errorSnackbarBackground: - errorSnackbarBackground ?? this.errorSnackbarBackground, - successSnackbarBackground: - successSnackbarBackground ?? this.successSnackbarBackground, - infoSnackbarBackground: - infoSnackbarBackground ?? this.infoSnackbarBackground, - itemTextColor: itemTextColor ?? this.itemTextColor, - ); - - @override - ThemeExtension lerp( - covariant ThemeExtension? other, - double t, - ) { - if (other is! AppColors) return this; - - return AppColors( - testColor: Color.lerp(testColor, other.testColor, t)!, - errorSnackbarBackground: Color.lerp( - errorSnackbarBackground, - other.errorSnackbarBackground, - t, - )!, - successSnackbarBackground: Color.lerp( - successSnackbarBackground, - other.successSnackbarBackground, - t, - )!, - infoSnackbarBackground: Color.lerp( - infoSnackbarBackground, - other.infoSnackbarBackground, - t, - )!, - itemTextColor: Color.lerp(itemTextColor, other.itemTextColor, t)!, - ); - } }