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),
    );
  }
}
