From 82cbf6b37a76d9c688edac229b4e1451eaba3733 Mon Sep 17 00:00:00 2001 From: Fabian Freund Date: Thu, 13 Mar 2025 22:07:28 +0100 Subject: [PATCH] invalidate memoized correctly --- .../features/browser/presentation/widgets/tab_icon.dart | 2 +- .../features/web_feed/presentation/screens/feed_article.dart | 5 ++++- .../features/web_feed/presentation/screens/feed_edit.dart | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/lib/features/geckoview/features/browser/presentation/widgets/tab_icon.dart b/app/lib/features/geckoview/features/browser/presentation/widgets/tab_icon.dart index 24d0a78b..91decd6b 100644 --- a/app/lib/features/geckoview/features/browser/presentation/widgets/tab_icon.dart +++ b/app/lib/features/geckoview/features/browser/presentation/widgets/tab_icon.dart @@ -24,7 +24,7 @@ class TabIcon extends HookConsumerWidget { .getCachedIcon(state.url); return icon?.image.value; - }); + }, [state.icon, state.url]); return Skeletonizer( enabled: diff --git a/app/lib/features/web_feed/presentation/screens/feed_article.dart b/app/lib/features/web_feed/presentation/screens/feed_article.dart index f7482e3d..d84e813a 100644 --- a/app/lib/features/web_feed/presentation/screens/feed_article.dart +++ b/app/lib/features/web_feed/presentation/screens/feed_article.dart @@ -51,6 +51,7 @@ class FeedArticleScreen extends HookConsumerWidget { if (article.summaryMarkdown.isNotEmpty) _Pages.summary, if (article.contentMarkdown.isNotEmpty) _Pages.content, ], + [article], ); final tabController = useTabController( @@ -59,11 +60,13 @@ class FeedArticleScreen extends HookConsumerWidget { final articleLink = useMemoized( () => article.links?.getRelation(FeedLinkRelation.alternate), + [article], ); final articleImages = useMemoized( () => (article.contentMarkdown ?? article.summaryMarkdown) .mapNotNull(extractImagesFromMarkdown), + [article], ); final bottomHeight = useMemoized(() { @@ -83,7 +86,7 @@ class FeedArticleScreen extends HookConsumerWidget { } return height; - }); + }, [article]); return NestedScrollView( headerSliverBuilder: diff --git a/app/lib/features/web_feed/presentation/screens/feed_edit.dart b/app/lib/features/web_feed/presentation/screens/feed_edit.dart index 728f3364..72513564 100644 --- a/app/lib/features/web_feed/presentation/screens/feed_edit.dart +++ b/app/lib/features/web_feed/presentation/screens/feed_edit.dart @@ -1,3 +1,4 @@ +import 'package:fast_equatable/fast_equatable.dart'; import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:flutter_material_design_icons/flutter_material_design_icons.dart'; @@ -109,6 +110,7 @@ class _FeedEditContent extends HookConsumerWidget { final formKey = useMemoized(() => GlobalKey()); final initialTags = useMemoized( () => initialFeed.tags?.map((tag) => tag.id).toSet(), + [EquatableValue(initialFeed.tags)], ); final tags = useRef(initialTags ?? {});