From 68b214e29599fa3d953ef9595fa9ccd6a713410b Mon Sep 17 00:00:00 2001 From: nyne Date: Sun, 9 Mar 2025 16:34:50 +0800 Subject: [PATCH] Fix comic list was not updated after delete a comic in favorites page. --- lib/components/comic.dart | 3 ++- lib/foundation/comic_source/models.dart | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/components/comic.dart b/lib/components/comic.dart index aaad1ab..127e68a 100644 --- a/lib/components/comic.dart +++ b/lib/components/comic.dart @@ -770,7 +770,7 @@ class _SliverGridComicsState extends State { @override void didUpdateWidget(covariant SliverGridComics oldWidget) { - if (!oldWidget.comics.isEqualTo(widget.comics)) { + if (!comics.isEqualTo(widget.comics)) { comics.clear(); for (var comic in widget.comics) { if (isBlocked(comic) == null) { @@ -879,6 +879,7 @@ class _SliverGridComics extends StatelessWidget { return comic; } return AnimatedContainer( + key: ValueKey(comics[index].id), duration: const Duration(milliseconds: 150), decoration: BoxDecoration( color: isSelected diff --git a/lib/foundation/comic_source/models.dart b/lib/foundation/comic_source/models.dart index 2ecc171..f17c76d 100644 --- a/lib/foundation/comic_source/models.dart +++ b/lib/foundation/comic_source/models.dart @@ -111,6 +111,9 @@ class Comic { @override int get hashCode => id.hashCode ^ sourceKey.hashCode; + + @override + toString() => "$sourceKey@$id"; } class ComicDetails with HistoryMixin {