summaryrefslogtreecommitdiff
path: root/lib/widgets/popular_item.dart
blob: 3ef32cd99b107f36493fe2e44fc96dff9e2a3802 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import 'package:flutter/material.dart';
import 'package:pmsna1/models/popular.dart';

class PopularItem extends StatelessWidget {
  final Popular popular;
  final void Function(bool favorited) onFavorited;
  final void Function() onPressed;

  const PopularItem(
    this.popular, {
    super.key,
    required this.onFavorited,
    required this.onPressed,
  });

  @override
  Widget build(BuildContext context) {
    return Card(
      semanticContainer: true,
      clipBehavior: Clip.antiAliasWithSaveLayer,
      child: InkWell(
        onTap: onPressed,
        child: Stack(
          children: [
            Hero(
              tag: popular.posterPath!,
              child: FadeInImage(
                placeholder: const AssetImage('assets/loading.gif'),
                image: NetworkImage(
                  'https://image.tmdb.org/t/p/w500/${popular.posterPath!}',
                ),
              ),
            ),
            popular.hasFavorite
                ? IconButton(
                    icon: const Icon(Icons.favorite),
                    onPressed: () => onFavorited(!popular.hasFavorite),
                  )
                : IconButton(
                    icon: const Icon(Icons.favorite_outline),
                    onPressed: () => onFavorited(!popular.hasFavorite),
                  ),
          ],
        ),
      ),
    );
  }
}