71 lines
2.1 KiB
Dart
71 lines
2.1 KiB
Dart
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
|
|
import 'api/mock_report_data_source.dart';
|
|
import 'api/report_data_source.dart';
|
|
import 'audio_player_controller.dart';
|
|
import 'repositories/outbound_repository.dart';
|
|
import 'repositories/report_repository.dart';
|
|
import 'repositories/user_state_repository.dart';
|
|
import 'state/app_interaction_state.dart';
|
|
import 'state/app_state_controllers.dart';
|
|
import 'state/report_query.dart';
|
|
import '../widgets/mini_player.dart';
|
|
|
|
final reportDataSourceProvider = Provider<ReportDataSource>((ref) {
|
|
const useMock = bool.fromEnvironment('YANTING_USE_MOCK', defaultValue: true);
|
|
if (useMock) {
|
|
return MockReportDataSource();
|
|
}
|
|
return RnbApiDataSource();
|
|
});
|
|
|
|
final audioPlayerControllerProvider =
|
|
StateNotifierProvider<AudioPlayerController, PlayerStateModel>((ref) {
|
|
return AudioPlayerController();
|
|
});
|
|
|
|
final reportRepositoryProvider = Provider<ReportRepository>((ref) {
|
|
return ref.watch(reportDataSourceProvider);
|
|
});
|
|
|
|
final userStateRepositoryProvider = Provider<UserStateRepository>((ref) {
|
|
return MemoryUserStateRepository();
|
|
});
|
|
|
|
final outboundRepositoryProvider = Provider<OutboundRepository>((ref) {
|
|
return MemoryOutboundRepository();
|
|
});
|
|
|
|
final recommendTopicProvider =
|
|
StateNotifierProvider<RecommendTopicController, String>((ref) {
|
|
return RecommendTopicController();
|
|
});
|
|
|
|
final reportFilterProvider =
|
|
StateNotifierProvider<ReportFilterController, ReportQuery>((ref) {
|
|
return ReportFilterController();
|
|
});
|
|
|
|
final authControllerProvider = StateNotifierProvider<AuthController, AuthState>(
|
|
(ref) {
|
|
return AuthController(ref.watch(userStateRepositoryProvider));
|
|
},
|
|
);
|
|
|
|
final profileControllerProvider =
|
|
StateNotifierProvider<ProfileController, ProfileState>((ref) {
|
|
return ProfileController(ref.watch(userStateRepositoryProvider));
|
|
});
|
|
|
|
final detailNavigationProvider =
|
|
StateNotifierProvider<DetailNavigationController, DetailNavigationState>((
|
|
ref,
|
|
) {
|
|
return DetailNavigationController();
|
|
});
|
|
|
|
final sheetControllerProvider =
|
|
StateNotifierProvider<SheetController, SheetState>((ref) {
|
|
return SheetController();
|
|
});
|