refactor: split providers into feature modules

This commit is contained in:
Artem Kokos
2026-04-27 23:21:47 +07:00
parent eed04e9122
commit 872ddf9513
12 changed files with 925 additions and 924 deletions

View File

@@ -0,0 +1,30 @@
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../../../app/error_message.dart';
import '../../../app/load_state.dart';
import '../../../models/event_log_item.dart';
import '../../shared/providers/core_providers.dart';
final eventLogProvider =
NotifierProvider<EventLogNotifier, LoadState<List<EventLogItem>>>(
() => EventLogNotifier(),
);
class EventLogNotifier extends Notifier<LoadState<List<EventLogItem>>> {
@override
LoadState<List<EventLogItem>> build() =>
const LoadState.idle(<EventLogItem>[]);
Future<void> load({int limit = 100}) async {
state = LoadState.loading(state.data);
try {
final api = ref.read(apiProvider);
final res = await api.getStatsLog(limit: limit);
final events = EventLogItem.listFromApi(res.data);
state = events.isEmpty ? LoadState.empty(events) : LoadState.data(events);
} catch (e) {
state = LoadState.error(state.data, describeLoadError(e));
}
}
}

View File

@@ -0,0 +1,29 @@
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, LoadState<StatsSummary>>(
() => StatsNotifier(),
);
class StatsNotifier extends Notifier<LoadState<StatsSummary>> {
@override
LoadState<StatsSummary> build() => const LoadState.idle(StatsSummary.empty);
Future<void> 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));
}
}
}