Files
hackathon-acapulquitos-boys…/lib/features/recycling_guide/presentation/widgets/search_result_tile.dart

61 lines
1.7 KiB
Dart

// lib/features/recycling_guide/presentation/widgets/search_result_tile.dart
import 'package:flutter/material.dart';
import '../../data/repositories/recycling_repository.dart';
class SearchResultTile extends StatelessWidget {
final SearchResult resultado;
const SearchResultTile({super.key, required this.resultado});
@override
Widget build(BuildContext context) {
final color = _parseColor(resultado.categoria.colorHex);
final acepta = resultado.item.acepta;
return ListTile(
leading: Container(
width: 40,
height: 40,
decoration: BoxDecoration(
color: color.withOpacity(0.15),
borderRadius: BorderRadius.circular(8),
),
child: Icon(
acepta ? Icons.check_circle : Icons.cancel,
color: acepta ? Colors.green : Colors.red,
size: 22,
),
),
title: Text(
resultado.item.nombre,
style: const TextStyle(fontWeight: FontWeight.w500, fontSize: 14),
),
subtitle: Text(
resultado.item.ejemplos,
style: TextStyle(fontSize: 12, color: Colors.grey[600]),
),
trailing: Container(
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4),
decoration: BoxDecoration(
color: color.withOpacity(0.1),
borderRadius: BorderRadius.circular(12),
),
child: Text(
resultado.categoria.nombre,
style: TextStyle(
fontSize: 11,
color: color,
fontWeight: FontWeight.w600,
),
),
),
);
}
Color _parseColor(String hex) {
final h = hex.replaceFirst('#', '');
return Color(int.parse('FF$h', radix: 16));
}
}