20 lines
831 B
Dart
20 lines
831 B
Dart
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
|
import '../../../core/providers/database_provider.dart';
|
|
import '../data/repositories/settings_repository_impl.dart';
|
|
import '../domain/entities/settings.dart';
|
|
import '../domain/repositories/settings_repository.dart';
|
|
|
|
part 'settings_providers.g.dart';
|
|
|
|
/// DI-провайдер репозитория настроек.
|
|
@Riverpod(keepAlive: true)
|
|
SettingsRepository settingsRepository(SettingsRepositoryRef ref) {
|
|
final db = ref.watch(appDatabaseProvider);
|
|
return SettingsRepositoryImpl(db.settingsDao);
|
|
}
|
|
|
|
/// Реактивный поток настроек для конкретного пользователя.
|
|
@riverpod
|
|
Stream<Settings?> settingsStream(SettingsStreamRef ref, int userId) =>
|
|
ref.watch(settingsRepositoryProvider).watchSettings(userId);
|