import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../../app/error_message.dart'; import '../../../app/load_state.dart'; import '../../../models/stats_summary.dart'; import '../../shared/providers/core_providers.dart'; final statsProvider = NotifierProvider>( () => StatsNotifier(), ); class StatsNotifier extends Notifier> { @override LoadState build() => const LoadState.idle(StatsSummary.empty); Future load({int days = 7}) async { state = LoadState.loading(state.data); try { final api = ref.read(apiProvider); final res = await api.getStatsSummary(days: days); final stats = StatsSummary.fromApi(res.data); state = stats.groups.isEmpty ? LoadState.empty(stats) : LoadState.data(stats); } catch (e) { state = LoadState.error(state.data, describeLoadError(e)); } } }