import 'package:cookie_jar/cookie_jar.dart'; import 'package:dio/dio.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../data/api/api_client.dart'; import '../data/api/auth_api.dart'; import '../data/api/chat_api.dart'; import '../data/api/notes_api.dart'; import '../data/api/tasks_api.dart'; import '../data/repositories/auth_repository.dart'; import '../data/repositories/chat_repository.dart'; import '../data/repositories/notes_repository.dart'; import '../data/repositories/tasks_repository.dart'; import 'settings_provider.dart'; final cookieJarProvider = Provider((ref) { final cookiesPath = ref.watch(cookiesPathProvider); return buildCookieJar(cookiesPath); }); final dioProvider = Provider((ref) { final url = ref.watch(serverUrlProvider) ?? ''; final jar = ref.watch(cookieJarProvider); return buildDio(url, jar); }); final authApiProvider = Provider((ref) { return AuthApi(ref.watch(dioProvider)); }); final notesApiProvider = Provider((ref) { return NotesApi(ref.watch(dioProvider)); }); final tasksApiProvider = Provider((ref) { return TasksApi(ref.watch(dioProvider)); }); final chatApiProvider = Provider((ref) { return ChatApi(ref.watch(dioProvider)); }); final authRepositoryProvider = Provider((ref) { return AuthRepository(ref.watch(authApiProvider)); }); final notesRepositoryProvider = Provider((ref) { return NotesRepository(ref.watch(notesApiProvider)); }); final tasksRepositoryProvider = Provider((ref) { return TasksRepository(ref.watch(tasksApiProvider)); }); final chatRepositoryProvider = Provider((ref) { return ChatRepository(ref.watch(chatApiProvider)); });