mirror of
https://github.com/venera-app/venera.git
synced 2025-09-27 15:57:25 +00:00
Improve local comics selection logic.
This commit is contained in:
@@ -581,10 +581,13 @@ class SliverGridComics extends StatefulWidget {
|
||||
this.badgeBuilder,
|
||||
this.menuBuilder,
|
||||
this.onTap,
|
||||
this.selections
|
||||
});
|
||||
|
||||
final List<Comic> comics;
|
||||
|
||||
final Map<Comic, bool>? selections;
|
||||
|
||||
final void Function()? onLastItemBuild;
|
||||
|
||||
final String? Function(Comic)? badgeBuilder;
|
||||
@@ -638,6 +641,7 @@ class _SliverGridComicsState extends State<SliverGridComics> {
|
||||
Widget build(BuildContext context) {
|
||||
return _SliverGridComics(
|
||||
comics: comics,
|
||||
selection: widget.selections,
|
||||
onLastItemBuild: widget.onLastItemBuild,
|
||||
badgeBuilder: widget.badgeBuilder,
|
||||
menuBuilder: widget.menuBuilder,
|
||||
@@ -653,10 +657,13 @@ class _SliverGridComics extends StatelessWidget {
|
||||
this.badgeBuilder,
|
||||
this.menuBuilder,
|
||||
this.onTap,
|
||||
this.selection,
|
||||
});
|
||||
|
||||
final List<Comic> comics;
|
||||
|
||||
final Map<Comic, bool>? selection;
|
||||
|
||||
final void Function()? onLastItemBuild;
|
||||
|
||||
final String? Function(Comic)? badgeBuilder;
|
||||
@@ -674,11 +681,37 @@ class _SliverGridComics extends StatelessWidget {
|
||||
onLastItemBuild?.call();
|
||||
}
|
||||
var badge = badgeBuilder?.call(comics[index]);
|
||||
return ComicTile(
|
||||
comic: comics[index],
|
||||
badge: badge,
|
||||
menuOptions: menuBuilder?.call(comics[index]),
|
||||
onTap: onTap != null ? () => onTap!(comics[index]) : null,
|
||||
return Stack(
|
||||
children: [
|
||||
ComicTile(
|
||||
comic: comics[index],
|
||||
badge: badge,
|
||||
menuOptions: menuBuilder?.call(comics[index]),
|
||||
onTap: onTap != null ? () => onTap!(comics[index]) : null,
|
||||
),
|
||||
Positioned(
|
||||
bottom: 10,
|
||||
right: 8,
|
||||
child: Visibility(
|
||||
visible: selection == null ? false : selection![comics[index]] ?? false,
|
||||
child: Stack(
|
||||
children: [
|
||||
Transform.scale(
|
||||
scale: 0.9,
|
||||
child: const Icon(
|
||||
Icons.circle_rounded,
|
||||
color: Colors.white,
|
||||
)
|
||||
),
|
||||
const Icon(
|
||||
Icons.check_circle_rounded,
|
||||
color: Colors.green,
|
||||
)
|
||||
],
|
||||
)
|
||||
)
|
||||
)
|
||||
],
|
||||
);
|
||||
},
|
||||
childCount: comics.length,
|
||||
|
Reference in New Issue
Block a user