about summary refs log tree commit diff
path: root/src/view/screens/Home.tsx
diff options
context:
space:
mode:
authorSamuel Newman <mozzius@protonmail.com>2023-11-30 17:11:51 +0000
committerSamuel Newman <mozzius@protonmail.com>2023-11-30 17:11:51 +0000
commitb164f151cc352c62212a815e77dbdd23be530e7f (patch)
tree4df0df19dcd07afb1909171429ddc3ebcbfa42c5 /src/view/screens/Home.tsx
parentee5d7a63ce08f2b395c71fb35dbdb0d9bb0f1dee (diff)
parentfcd22d4ccb0718db1c9b64fccd90a8bfe3e885d4 (diff)
downloadvoidsky-b164f151cc352c62212a815e77dbdd23be530e7f.tar.zst
Merge remote-tracking branch 'upstream/main' into invite-code-warning
Diffstat (limited to 'src/view/screens/Home.tsx')
-rw-r--r--src/view/screens/Home.tsx8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx
index 28f01b683..e5a3035a4 100644
--- a/src/view/screens/Home.tsx
+++ b/src/view/screens/Home.tsx
@@ -40,6 +40,12 @@ function HomeScreenReady({
   const setDrawerSwipeDisabled = useSetDrawerSwipeDisabled()
   const [selectedPage, setSelectedPage] = React.useState(0)
 
+  /**
+   * Used to ensure that we re-compute `customFeeds` AND force a re-render of
+   * the pager with the new order of feeds.
+   */
+  const pinnedFeedOrderKey = JSON.stringify(preferences.feeds.pinned)
+
   const customFeeds = React.useMemo(() => {
     const pinned = preferences.feeds.pinned
     const feeds: FeedDescriptor[] = []
@@ -83,7 +89,6 @@ function HomeScreenReady({
     emitSoftReset()
   }, [])
 
-  // TODO(pwi) may need this in public view
   const onPageScrollStateChanged = React.useCallback(
     (state: 'idle' | 'dragging' | 'settling') => {
       if (state === 'dragging') {
@@ -118,6 +123,7 @@ function HomeScreenReady({
 
   return hasSession ? (
     <Pager
+      key={pinnedFeedOrderKey}
       testID="homeScreen"
       onPageSelected={onPageSelected}
       onPageScrollStateChanged={onPageScrollStateChanged}