import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; class CollectionContainer extends StatelessWidget { final String? label; final String? imagesrc; final String? imageSvg; final double? width; final double? height; final double? iconw; final double? iconh; final VoidCallback onTapAc; final Color? textColor; final double? lblSize; final bool? circle; final Color? colorContiner; const CollectionContainer({ super.key, this.label, this.imagesrc, this.width, this.height, required this.onTapAc, this.textColor, this.imageSvg, this.iconh, this.iconw, this.lblSize, this.circle, this.colorContiner, }); @override Widget build(BuildContext context) { return Container( width: width ?? 130, height: height ?? 150, decoration: BoxDecoration(borderRadius: BorderRadius.circular(10)), child: GestureDetector( onTap: onTapAc, child: Card( shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10.0), ), elevation: 5, color: const Color.fromARGB(255, 255, 255, 255).withOpacity(0.5), child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ ClipRRect( borderRadius: BorderRadius.circular(12), child: imageSvg != null && imageSvg!.isNotEmpty ? Container( decoration: (circle ?? false) ? BoxDecoration( color: const Color.fromARGB( 225, 79, 76, 182, ), borderRadius: BorderRadius.circular(50), ) : null, child: Container( decoration: (circle ?? false) ? BoxDecoration( color: const Color.fromARGB( 225, 79, 76, 182, ), borderRadius: BorderRadius.circular(50), shape: BoxShape.circle, ) : null, child: Container( decoration: (circle ?? false) ? BoxDecoration( color: const Color.fromARGB( 225, 79, 76, 182, ), borderRadius: BorderRadius.circular(50), shape: BoxShape.circle, ) : null, child: SvgPicture.asset( imageSvg!, width: 20, height: 20, colorFilter: const ColorFilter.mode( Color.fromARGB(255, 255, 255, 255), BlendMode.srcIn, ), ), ), ), ) : imagesrc != null && imagesrc!.isNotEmpty ? Image.asset( imagesrc!, width: iconw ?? 60, height: iconh ?? 60, fit: BoxFit.cover, ) : const SizedBox( width: 60, height: 60, child: Center( child: Icon( Icons.image_not_supported, color: Colors.white, ), ), ), ), SizedBox(height: 8), Positioned( bottom: 0, child: Container( // color: Colors.amber, child: Text( label ?? '', style: TextStyle( fontSize: lblSize ?? 14, fontWeight: FontWeight.bold, color: textColor, ), ), ), ), ], ), ), ), ); } }