import 'package:flutter/material.dart'; import '../../../../domain/entities/artist.dart'; import '../common/cached_network_image_with_fallback.dart'; /// Search result card for an artist class SearchArtistCard extends StatelessWidget { final Artist artist; final VoidCallback? onTap; const SearchArtistCard({ required this.artist, this.onTap, super.key, }); @override Widget build(BuildContext context) { return GestureDetector( onTap: onTap, child: Container( decoration: BoxDecoration( color: AppColors.surface, borderRadius: BorderRadius.circular(12), border: Border.all( color: AppColors.violet.withOpacity(0.3), ), ), child: Column( children: [ // Artist image or placeholder Expanded( child: ClipRRect( borderRadius: const BorderRadius.vertical( top: Radius.circular(12), ), child: Container( width: double.infinity, decoration: BoxDecoration( gradient: AppColors.accentGradient, ), child: CachedNetworkImageWithFallback( imageUrl: artist.imageUrl, fallbackIcon: Icons.person, progressColor: AppColors.violet, ), ), ), ), // Artist name Padding( padding: const EdgeInsets.all(8), child: Text( artist.name, style: const TextStyle( color: AppColors.onSurface, fontWeight: FontWeight.w500, fontSize: 14, ), maxLines: 1, overflow: TextOverflow.ellipsis, textAlign: TextAlign.center, ), ), ], ), ), ); } }