diff --git a/recolecta_app/lib/features/addresses/add_address_page.dart b/recolecta_app/lib/features/addresses/add_address_page.dart index 9b56f1d..86cd621 100644 --- a/recolecta_app/lib/features/addresses/add_address_page.dart +++ b/recolecta_app/lib/features/addresses/add_address_page.dart @@ -12,6 +12,7 @@ import '../../core/theme/app_theme.dart'; import '../../core/widgets/app_widgets.dart'; import '../home/colonias_data.dart'; import 'colonias_provider.dart'; +import '../../core/network/api_client.dart'; const Map _cpToColonia = { '38000': 'Zona Centro', @@ -144,18 +145,7 @@ class _AddAddressPageState extends ConsumerState { setState(() => _loading = true); try { - const storage = FlutterSecureStorage(); - final token = await storage.read(key: authTokenStorageKey) ?? ''; - - final dio = Dio( - BaseOptions( - baseUrl: const String.fromEnvironment( - 'API_BASE_URL', - defaultValue: 'http://localhost:8000', - ), - headers: {'Authorization': 'Bearer $token'}, - ), - ); + final dio = ref.read(apiClientProvider); final body = { 'label': _labelCtrl.text.trim().isEmpty @@ -244,8 +234,9 @@ class _AddAddressPageState extends ConsumerState { padding: const EdgeInsets.all(14), decoration: BoxDecoration( color: AppTheme.primaryLight.withValues(alpha: 0.5), - borderRadius: - BorderRadius.circular(AppTheme.radiusSm), + borderRadius: BorderRadius.circular( + AppTheme.radiusSm, + ), border: Border.all(color: AppTheme.primaryMid), ), child: Column( @@ -311,8 +302,9 @@ class _AddAddressPageState extends ConsumerState { Container( height: 220, decoration: BoxDecoration( - borderRadius: - BorderRadius.circular(AppTheme.radiusMd), + borderRadius: BorderRadius.circular( + AppTheme.radiusMd, + ), border: Border.all(color: AppTheme.border), boxShadow: AppTheme.softShadow, ), @@ -324,7 +316,8 @@ class _AddAddressPageState extends ConsumerState { initialZoom: 15.0, cameraConstraint: bounds != null ? CameraConstraint.containCenter( - bounds: bounds) + bounds: bounds, + ) : const CameraConstraint.unconstrained(), onTap: (_, latlng) => _fetchStreetName(latlng), ), diff --git a/recolecta_app/lib/features/addresses/new_address_page.dart b/recolecta_app/lib/features/addresses/new_address_page.dart index cb83173..042dfbe 100644 --- a/recolecta_app/lib/features/addresses/new_address_page.dart +++ b/recolecta_app/lib/features/addresses/new_address_page.dart @@ -13,6 +13,7 @@ import '../../core/theme/app_theme.dart'; import '../../core/widgets/app_widgets.dart'; import '../../core/constants/auth_constants.dart'; import 'colonias_provider.dart'; +import '../../core/network/api_client.dart'; const Map _cpToColonia = { '38000': 'Zona Centro', @@ -139,37 +140,24 @@ class _NewAddressPageState extends ConsumerState { } try { - const storage = FlutterSecureStorage(); - final token = await storage.read(key: authTokenStorageKey) ?? ''; + final dio = ref.read(apiClientProvider); + await dio.post( + '/addresses', + data: { + 'label': _labelController.text.trim(), + 'calle': _streetController.text.trim(), + 'colonia': _selectedColonia!.nombre, + }, + ); - if (token.isNotEmpty) { - final dio = Dio( - BaseOptions( - baseUrl: const String.fromEnvironment( - 'API_BASE_URL', - defaultValue: 'http://localhost:8000', - ), - headers: {'Authorization': 'Bearer $token'}, - ), + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Domicilio agregado exitosamente')), ); - await dio.post( - '/addresses', - data: { - 'label': _labelController.text.trim(), - 'calle': _streetController.text.trim(), - 'colonia': _selectedColonia!.nombre, - }, - ); - - if (mounted) { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('Domicilio agregado exitosamente')), - ); - Navigator.pop( - context, - true, - ); // Devuelve true para recargar la lista en la pantalla anterior - } + Navigator.pop( + context, + true, + ); // Devuelve true para recargar la lista en la pantalla anterior } } catch (e) { debugPrint('Error al guardar domicilio: $e'); diff --git a/recolecta_app/lib/features/home/house_screen.dart b/recolecta_app/lib/features/home/house_screen.dart index bcd9482..4d27646 100644 --- a/recolecta_app/lib/features/home/house_screen.dart +++ b/recolecta_app/lib/features/home/house_screen.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:dio/dio.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_map/flutter_map.dart'; import 'package:go_router/go_router.dart'; import 'package:latlong2/latlong.dart'; @@ -9,15 +10,16 @@ import '../../core/theme/app_theme.dart'; import '../../core/models/ui_models.dart'; import 'colonias_data.dart'; import '../../core/widgets/app_widgets.dart'; +import '../../core/network/api_client.dart'; -class MyHouseScreen extends StatefulWidget { +class MyHouseScreen extends ConsumerStatefulWidget { const MyHouseScreen({super.key}); @override - State createState() => _MyHouseScreenState(); + ConsumerState createState() => _MyHouseScreenState(); } -class _MyHouseScreenState extends State { +class _MyHouseScreenState extends ConsumerState { bool _isLoading = true; UIHouseModel? _casa; @@ -29,23 +31,7 @@ class _MyHouseScreenState extends State { Future _cargarDomicilio() async { try { - const storage = FlutterSecureStorage(); - final token = await storage.read(key: authTokenStorageKey) ?? ''; - - if (token.isEmpty) { - setState(() => _isLoading = false); - return; - } - - final dio = Dio( - BaseOptions( - baseUrl: const String.fromEnvironment( - 'API_BASE_URL', - defaultValue: 'http://localhost:8000', - ), - headers: {'Authorization': 'Bearer $token'}, - ), - ); + final dio = ref.read(apiClientProvider); final res = await dio.get('/addresses'); if (res.data is List && (res.data as List).isNotEmpty) {