import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../models/article_model.dart'; import '../providers/carrito_provider.dart'; class CustomSearchDelegate extends SearchDelegate { final List searchList; CustomSearchDelegate(this.searchList); @override List buildActions(BuildContext context) { return [ IconButton( icon: Icon(Icons.clear), onPressed: () { query = ''; }, ), ]; } @override Widget buildLeading(BuildContext context) { return IconButton( icon: Icon(Icons.arrow_back), onPressed: () => Navigator.of(context).pop(), ); } @override Widget buildResults(BuildContext context) { final List searchResults = searchList .where((item) => item.nombre.toLowerCase().contains(query.toLowerCase())) .toList(); //AGREGAR PRODUCTO AL CARRITO return Scaffold( body: ListView.builder( itemCount: searchResults.length, itemBuilder: (context, index) { final article = searchResults[index]; return ListTile( title: Text(article.nombre), subtitle: Text('Precio: ${article.precios[0].precio}'), trailing: IconButton( //icono del carrito icon: Icon(Icons.add_shopping_cart, color: Colors.indigo), onPressed: () { //Llamamos el provider carrito para agregar un articulo final carritoProvider = Provider.of(context, listen: false); carritoProvider.addToCart(article); ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text('Artículo agregado al carrito')), ); }, ), ); }, ), ); } @override Widget buildSuggestions(BuildContext context) { final List suggestionList = query.isEmpty ? [] : searchList .where((item) => item.nombre.toLowerCase().contains(query.toLowerCase())) .toList(); return ListView.builder( itemCount: suggestionList.length, itemBuilder: (context, index) { return Container( color: Colors.grey[200], child: ListTile( leading: Icon(Icons.search, color: Colors.blue), title: Text( suggestionList[index].nombre, style: TextStyle( color: Colors.black, fontWeight: FontWeight.bold, ), ), onTap: () { query = suggestionList[index].nombre; showResults(context); }, ), ); }, ); } }