Files
2026-07-14 11:11:36 +08:00

29 lines
862 B
Dart

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../../providers/appearance_provider.dart';
import 'app_theme.dart';
class AppThemeScope extends ConsumerWidget {
final Widget child;
const AppThemeScope({super.key, required this.child});
@override
Widget build(BuildContext context, WidgetRef ref) {
final mode = ref.watch(
appearanceProvider.select((a) => a.value?.themeMode ?? ThemeMode.system),
);
final brightness = switch (mode) {
ThemeMode.light => Brightness.light,
ThemeMode.dark => Brightness.dark,
ThemeMode.system => MediaQuery.platformBrightnessOf(context),
};
return Theme(
data: brightness == Brightness.dark ? AppTheme.dark() : AppTheme.light(),
child: Material(type: MaterialType.transparency, child: child),
);
}
}