From 56cbaf506735ca95607ad29a4c899cbe05cd8a8b Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Sat, 30 Nov 2024 13:31:08 +0000 Subject: [PATCH] Fix an infinite swipe loop --- src/view/screens/Home.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx index 67d6fbbc52..823f339362 100644 --- a/src/view/screens/Home.tsx +++ b/src/view/screens/Home.tsx @@ -156,8 +156,10 @@ function HomeScreenReady({ setMinimalShellMode(false) setDrawerSwipeDisabled(index > 0) const feed = allFeeds[index] - setSelectedFeed(feed) + // Mutate the ref before setting state to avoid the imperative syncing effect + // above from starting a loop on Android when swiping back and forth. lastPagerReportedIndexRef.current = index + setSelectedFeed(feed) logEvent('home:feedDisplayed', { index, feedType: feed.split('|')[0],