import 'package:flutter/material.dart'; import 'panel_configuracion_bottom_sheet.dart'; import 'tarjetaeta.dart'; // Importamos el widget externo estilizado // ========================================== // 1. MODELO DE DATOS // ========================================== class Domicilio { final String id; final String etiqueta; final String direccion; Domicilio({required this.id, required this.etiqueta, required this.direccion}); } // ========================================== // 2. PANTALLA PRINCIPAL // ========================================== class GestionDomiciliosScreen extends StatefulWidget { const GestionDomiciliosScreen({super.key}); @override State createState() => _GestionDomiciliosScreenState(); } class _GestionDomiciliosScreenState extends State { final List _misDomicilios = [ Domicilio(id: '1', etiqueta: 'Casa', direccion: 'Av. Paseo de la Reforma 222, CDMX'), Domicilio(id: '2', etiqueta: 'Trabajo', direccion: 'Colonia Centro, Calle Benito Juárez 45'), ]; bool _notificarInicioRuta = true; bool _notificarAproximacion = true; bool _notificarRetrasosFallas = true; /*void _simularNotificacionPush({required String titulo, required String mensaje, required IconData icono, required Color color}) { ScaffoldMessenger.of(context).hideCurrentSnackBar(); ScaffoldMessenger.of(context).showSnackBar( SnackBar( behavior: SnackBarBehavior.floating, backgroundColor: Colors.grey[900], content: Row( children: [ Icon(icono, color: color), const SizedBox(width: 12), Expanded(child: Text(titulo)), ], ), ), ); }*/ void _abrirAjustesYFormulario(BuildContext context) { showModalBottomSheet( context: context, isScrollControlled: true, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.vertical(top: Radius.circular(24)), ), builder: (context) { return PanelConfiguracionBottomSheet( notificarInicioRuta: _notificarInicioRuta, notificarAproximacion: _notificarAproximacion, notificarRetrasosFallas: _notificarRetrasosFallas, onDomicilioGuardado: (etiqueta, direccion) { setState(() { _misDomicilios.add(Domicilio( id: DateTime.now().toString(), etiqueta: etiqueta, direccion: direccion, )); }); }, onAlertasChanged: (nuevoValor, tipoAlerta) { setState(() { if (tipoAlerta == 'inicio') _notificarInicioRuta = nuevoValor; if (tipoAlerta == 'aproximacion') _notificarAproximacion = nuevoValor; if (tipoAlerta == 'retrasos') _notificarRetrasosFallas = nuevoValor; }); }, ); }, ); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('Mis Domicilios'), backgroundColor: Colors.green[700], foregroundColor: Colors.white, ), body: Column( children: [ const Padding( padding: EdgeInsets.all(16.0), ), const TarjetaEtaWidget(), Expanded( child: ListView.builder( itemCount: _misDomicilios.length, itemBuilder: (context, index) { final domicilio = _misDomicilios[index]; return ListTile( leading: const Icon(Icons.location_on, color: Colors.green), title: Text(domicilio.etiqueta), subtitle: Text(domicilio.direccion), ); }, ), ), ], ), floatingActionButton: FloatingActionButton( onPressed: () => _abrirAjustesYFormulario(context), backgroundColor: Colors.green[700], child: const Icon(Icons.settings, color: Colors.white), ), ); } }