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((ref) { const useMock = bool.fromEnvironment('YANTING_USE_MOCK', defaultValue: true); if (useMock) { return MockReportDataSource(); } return RnbApiDataSource(); }); final audioPlayerControllerProvider = StateNotifierProvider((ref) { return AudioPlayerController(); }); final reportRepositoryProvider = Provider((ref) { return ref.watch(reportDataSourceProvider); }); final userStateRepositoryProvider = Provider((ref) { return MemoryUserStateRepository(); }); final outboundRepositoryProvider = Provider((ref) { return MemoryOutboundRepository(); }); final recommendTopicProvider = StateNotifierProvider((ref) { return RecommendTopicController(); }); final reportFilterProvider = StateNotifierProvider((ref) { return ReportFilterController(); }); final authControllerProvider = StateNotifierProvider( (ref) { return AuthController(ref.watch(userStateRepositoryProvider)); }, ); final profileControllerProvider = StateNotifierProvider((ref) { return ProfileController(ref.watch(userStateRepositoryProvider)); }); final detailNavigationProvider = StateNotifierProvider(( ref, ) { return DetailNavigationController(); }); final sheetControllerProvider = StateNotifierProvider((ref) { return SheetController(); });