summaryrefslogtreecommitdiff
path: root/lib/widgets/popular_list.dart
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2023-06-03 23:36:51 -0600
committerIván Ávalos <avalos@disroot.org>2023-06-03 23:36:51 -0600
commita28fa912bc04f28125c3d62d2e288145233cd789 (patch)
tree0913b5387aeded6206fef98ccc834612debce778 /lib/widgets/popular_list.dart
parent17bd9bc740e3be5509b81d42184819324881fe54 (diff)
downloadpmsna1-a28fa912bc04f28125c3d62d2e288145233cd789.tar.gz
pmsna1-a28fa912bc04f28125c3d62d2e288145233cd789.tar.bz2
pmsna1-a28fa912bc04f28125c3d62d2e288145233cd789.zip
Finished practice 5
Diffstat (limited to 'lib/widgets/popular_list.dart')
-rw-r--r--lib/widgets/popular_list.dart38
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/widgets/popular_list.dart b/lib/widgets/popular_list.dart
new file mode 100644
index 0000000..2422a38
--- /dev/null
+++ b/lib/widgets/popular_list.dart
@@ -0,0 +1,38 @@
+import 'package:flutter/material.dart';
+
+import '../models/popular.dart';
+import 'popular_item.dart';
+
+class PopularList extends StatelessWidget {
+ final List<Popular> popularList;
+ final void Function(Popular popular, bool favorited) onFavorited;
+ final void Function(Popular popular) onPressed;
+
+ const PopularList(
+ this.popularList, {
+ super.key,
+ required this.onFavorited,
+ required this.onPressed,
+ });
+
+ @override
+ Widget build(BuildContext context) {
+ return GridView.builder(
+ gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
+ crossAxisCount: 2,
+ childAspectRatio: 2 / 3,
+ mainAxisSpacing: 10,
+ crossAxisSpacing: 10,
+ ),
+ itemCount: popularList.length,
+ itemBuilder: (context, index) {
+ return PopularItem(
+ popularList[index],
+ onFavorited: (favorited) =>
+ onFavorited(popularList[index], favorited),
+ onPressed: () => onPressed(popularList[index]),
+ );
+ },
+ );
+ }
+}