import 'package:flutter/material.dart'; import 'package:cached_network_image/cached_network_image.dart'; class ArticleImage extends StatelessWidget { final int idArticolo; final String? codArticolo; final String? imageUrl; final double size; const ArticleImage({ super.key, required this.idArticolo, this.codArticolo, this.imageUrl, this.size = 48, }); @override Widget build(BuildContext context) { if (imageUrl != null && imageUrl!.isNotEmpty) { return ClipRRect( borderRadius: BorderRadius.circular(8), child: CachedNetworkImage( imageUrl: imageUrl!, width: size, height: size, fit: BoxFit.cover, placeholder: (_, __) => _placeholder(), errorWidget: (_, __, ___) => _placeholder(), ), ); } return _placeholder(); } Widget _placeholder() { return Container( width: size, height: size, decoration: BoxDecoration( color: Colors.grey.shade200, borderRadius: BorderRadius.circular(8), ), child: Icon(Icons.inventory_2_outlined, size: size * 0.5, color: Colors.grey.shade400), ); } }