mirror of
https://github.com/smmarty/friflex_flutter_starter.git
synced 2025-12-22 09:30:45 +00:00
refactor(app): Обновить описание и структуру файлов конфигурации, улучшить документацию (#14)
Co-authored-by: PetrovY <y.petrov@friflex.com>
This commit is contained in:
@@ -1,12 +1,20 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
/// Тип функции для построения виджета с учетом темы
|
||||
typedef ThemeBuilder = Widget Function();
|
||||
|
||||
/// Виджет для подписки на изменение темы приложения
|
||||
/// {@template theme_consumer}
|
||||
/// Виджет для подписки на изменения темы приложения.
|
||||
///
|
||||
/// Автоматически перестраивает дочерние виджеты при изменении темы,
|
||||
/// обеспечивая реактивность интерфейса к изменениям настроек темы.
|
||||
/// {@endtemplate}
|
||||
class ThemeConsumer extends StatelessWidget {
|
||||
/// {@macro theme_consumer}
|
||||
const ThemeConsumer({required this.builder, super.key});
|
||||
|
||||
/// Функция для построения виджета с учетом текущей темы
|
||||
final ThemeBuilder builder;
|
||||
|
||||
@override
|
||||
@@ -19,12 +27,29 @@ class ThemeConsumer extends StatelessWidget {
|
||||
}
|
||||
}
|
||||
|
||||
/// Класс для управления темой приложения
|
||||
/// {@template theme_notifier}
|
||||
/// Класс для управления темой приложения.
|
||||
///
|
||||
/// Отвечает за:
|
||||
/// - Хранение текущего режима темы (светлая/темная/системная)
|
||||
/// - Уведомление подписчиков об изменениях темы
|
||||
/// - Переключение между режимами темы
|
||||
/// {@endtemplate}
|
||||
final class ThemeNotifier extends ChangeNotifier {
|
||||
/// {@macro theme_notifier}
|
||||
ThemeNotifier();
|
||||
|
||||
/// Текущий режим темы приложения
|
||||
/// По умолчанию используется системная тема
|
||||
ThemeMode _themeMode = ThemeMode.system;
|
||||
|
||||
/// Получение текущего режима темы
|
||||
ThemeMode get themeMode => _themeMode;
|
||||
|
||||
/// Метод для переключения темы приложения.
|
||||
///
|
||||
/// Переключает между светлой и темной темой.
|
||||
/// Если текущая тема светлая, переключает на темную и наоборот.
|
||||
void changeTheme() {
|
||||
_themeMode = _themeMode == ThemeMode.light
|
||||
? ThemeMode.dark
|
||||
|
||||
Reference in New Issue
Block a user