import 'package:dio/dio.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'api_config.dart'; import 'token_storage.dart'; final tokenStorageProvider = Provider((ref) => TokenStorage()); final dioProvider = Provider((ref) { final storage = ref.watch(tokenStorageProvider); final dio = Dio( BaseOptions( baseUrl: ApiConfig.baseUrl, connectTimeout: const Duration(seconds: 15), receiveTimeout: const Duration(seconds: 30), headers: {'Content-Type': 'application/json'}, ), ); dio.interceptors.add( InterceptorsWrapper( onRequest: (options, handler) async { final t = await storage.readToken(); if (t != null && t.isNotEmpty) { options.headers['Authorization'] = 'Bearer $t'; } handler.next(options); }, ), ); return dio; });