summaryrefslogtreecommitdiff
path: root/lib/widgets/popular_list.dart
diff options
context:
space:
mode:
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]),
+ );
+ },
+ );
+ }
+}