ahora si es la version final final ya neta enserio we

This commit is contained in:
shinra32
2026-05-23 09:02:03 -06:00
parent 56c51378b8
commit 9edb33d078
3 changed files with 33 additions and 66 deletions

View File

@@ -12,6 +12,7 @@ import '../../core/theme/app_theme.dart';
import '../../core/widgets/app_widgets.dart'; import '../../core/widgets/app_widgets.dart';
import '../home/colonias_data.dart'; import '../home/colonias_data.dart';
import 'colonias_provider.dart'; import 'colonias_provider.dart';
import '../../core/network/api_client.dart';
const Map<String, String> _cpToColonia = { const Map<String, String> _cpToColonia = {
'38000': 'Zona Centro', '38000': 'Zona Centro',
@@ -144,18 +145,7 @@ class _AddAddressPageState extends ConsumerState<AddAddressPage> {
setState(() => _loading = true); setState(() => _loading = true);
try { try {
const storage = FlutterSecureStorage(); final dio = ref.read(apiClientProvider);
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 body = <String, dynamic>{ final body = <String, dynamic>{
'label': _labelCtrl.text.trim().isEmpty 'label': _labelCtrl.text.trim().isEmpty
@@ -244,8 +234,9 @@ class _AddAddressPageState extends ConsumerState<AddAddressPage> {
padding: const EdgeInsets.all(14), padding: const EdgeInsets.all(14),
decoration: BoxDecoration( decoration: BoxDecoration(
color: AppTheme.primaryLight.withValues(alpha: 0.5), color: AppTheme.primaryLight.withValues(alpha: 0.5),
borderRadius: borderRadius: BorderRadius.circular(
BorderRadius.circular(AppTheme.radiusSm), AppTheme.radiusSm,
),
border: Border.all(color: AppTheme.primaryMid), border: Border.all(color: AppTheme.primaryMid),
), ),
child: Column( child: Column(
@@ -311,8 +302,9 @@ class _AddAddressPageState extends ConsumerState<AddAddressPage> {
Container( Container(
height: 220, height: 220,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: borderRadius: BorderRadius.circular(
BorderRadius.circular(AppTheme.radiusMd), AppTheme.radiusMd,
),
border: Border.all(color: AppTheme.border), border: Border.all(color: AppTheme.border),
boxShadow: AppTheme.softShadow, boxShadow: AppTheme.softShadow,
), ),
@@ -324,7 +316,8 @@ class _AddAddressPageState extends ConsumerState<AddAddressPage> {
initialZoom: 15.0, initialZoom: 15.0,
cameraConstraint: bounds != null cameraConstraint: bounds != null
? CameraConstraint.containCenter( ? CameraConstraint.containCenter(
bounds: bounds) bounds: bounds,
)
: const CameraConstraint.unconstrained(), : const CameraConstraint.unconstrained(),
onTap: (_, latlng) => _fetchStreetName(latlng), onTap: (_, latlng) => _fetchStreetName(latlng),
), ),

View File

@@ -13,6 +13,7 @@ import '../../core/theme/app_theme.dart';
import '../../core/widgets/app_widgets.dart'; import '../../core/widgets/app_widgets.dart';
import '../../core/constants/auth_constants.dart'; import '../../core/constants/auth_constants.dart';
import 'colonias_provider.dart'; import 'colonias_provider.dart';
import '../../core/network/api_client.dart';
const Map<String, String> _cpToColonia = { const Map<String, String> _cpToColonia = {
'38000': 'Zona Centro', '38000': 'Zona Centro',
@@ -139,37 +140,24 @@ class _NewAddressPageState extends ConsumerState<NewAddressPage> {
} }
try { try {
const storage = FlutterSecureStorage(); final dio = ref.read(apiClientProvider);
final token = await storage.read(key: authTokenStorageKey) ?? ''; await dio.post(
'/addresses',
data: {
'label': _labelController.text.trim(),
'calle': _streetController.text.trim(),
'colonia': _selectedColonia!.nombre,
},
);
if (token.isNotEmpty) { if (mounted) {
final dio = Dio( ScaffoldMessenger.of(context).showSnackBar(
BaseOptions( const SnackBar(content: Text('Domicilio agregado exitosamente')),
baseUrl: const String.fromEnvironment(
'API_BASE_URL',
defaultValue: 'http://localhost:8000',
),
headers: {'Authorization': 'Bearer $token'},
),
); );
await dio.post( Navigator.pop(
'/addresses', context,
data: { true,
'label': _labelController.text.trim(), ); // Devuelve true para recargar la lista en la pantalla anterior
'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
}
} }
} catch (e) { } catch (e) {
debugPrint('Error al guardar domicilio: $e'); debugPrint('Error al guardar domicilio: $e');

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.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:flutter_map/flutter_map.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
import 'package:latlong2/latlong.dart'; import 'package:latlong2/latlong.dart';
@@ -9,15 +10,16 @@ import '../../core/theme/app_theme.dart';
import '../../core/models/ui_models.dart'; import '../../core/models/ui_models.dart';
import 'colonias_data.dart'; import 'colonias_data.dart';
import '../../core/widgets/app_widgets.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}); const MyHouseScreen({super.key});
@override @override
State<MyHouseScreen> createState() => _MyHouseScreenState(); ConsumerState<MyHouseScreen> createState() => _MyHouseScreenState();
} }
class _MyHouseScreenState extends State<MyHouseScreen> { class _MyHouseScreenState extends ConsumerState<MyHouseScreen> {
bool _isLoading = true; bool _isLoading = true;
UIHouseModel? _casa; UIHouseModel? _casa;
@@ -29,23 +31,7 @@ class _MyHouseScreenState extends State<MyHouseScreen> {
Future<void> _cargarDomicilio() async { Future<void> _cargarDomicilio() async {
try { try {
const storage = FlutterSecureStorage(); final dio = ref.read(apiClientProvider);
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 res = await dio.get('/addresses'); final res = await dio.get('/addresses');
if (res.data is List && (res.data as List).isNotEmpty) { if (res.data is List && (res.data as List).isNotEmpty) {