import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:neomovies_mobile/data/models/movie.dart'; import 'package:neomovies_mobile/presentation/providers/movie_detail_provider.dart'; import 'package:neomovies_mobile/presentation/screens/movie_detail/movie_detail_screen.dart'; import 'package:provider/provider.dart'; class MovieCard extends StatelessWidget { final Movie movie; const MovieCard({super.key, required this.movie}); @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.only(left: 16.0), child: GestureDetector( onTap: () { Navigator.push( context, MaterialPageRoute( builder: (_) => MovieDetailScreen(movieId: movie.id, mediaType: movie.mediaType), ), ); }, child: SizedBox( width: 150, child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Card( clipBehavior: Clip.antiAlias, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12), ), child: CachedNetworkImage( imageUrl: movie.fullPosterUrl, width: 150, height: 225, fit: BoxFit.cover, placeholder: (context, url) => const Center(child: CircularProgressIndicator()), errorWidget: (context, url, error) => const Icon(Icons.error), ), ), const SizedBox(height: 8), Expanded( child: Text( movie.title, style: Theme.of(context).textTheme.bodyMedium, maxLines: 2, overflow: TextOverflow.ellipsis, ), ), ], ), ), ), ); } }