diff options
author | dan <dan.abramov@gmail.com> | 2024-04-08 17:21:44 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-08 17:21:44 +0100 |
commit | 8188f61e7dae70742f05d7a9535983dec8ddee8c (patch) | |
tree | 91d7be18e6f9dc7372e3a0c0b802c9bf45529d03 /src/view/com/feeds/FeedPage.tsx | |
parent | 1150007d37138a289c7302ba2a11350be009435d (diff) | |
download | voidsky-8188f61e7dae70742f05d7a9535983dec8ddee8c.tar.zst |
[Experiment] Turn off interval polling for Discover (#3431)
* Include feed URL in feed events * [Experiment] Turn off polling interval for Discover
Diffstat (limited to 'src/view/com/feeds/FeedPage.tsx')
-rw-r--r-- | src/view/com/feeds/FeedPage.tsx | 46 |
1 files changed, 30 insertions, 16 deletions
diff --git a/src/view/com/feeds/FeedPage.tsx b/src/view/com/feeds/FeedPage.tsx index 2d0736b09..25c7e1006 100644 --- a/src/view/com/feeds/FeedPage.tsx +++ b/src/view/com/feeds/FeedPage.tsx @@ -1,28 +1,29 @@ import React from 'react' +import {useWindowDimensions, View} from 'react-native' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' -import {useAnalytics} from 'lib/analytics/analytics' import {useQueryClient} from '@tanstack/react-query' + +import {getRootNavigation, getTabState, TabState} from '#/lib/routes/helpers' +import {logEvent, useGate} from '#/lib/statsig/statsig' +import {isNative} from '#/platform/detection' +import {listenSoftReset} from '#/state/events' import {RQKEY as FEED_RQKEY} from '#/state/queries/post-feed' -import {MainScrollProvider} from '../util/MainScrollProvider' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useSetMinimalShellMode} from '#/state/shell' import {FeedDescriptor, FeedParams} from '#/state/queries/post-feed' +import {truncateAndInvalidate} from '#/state/queries/util' +import {useSession} from '#/state/session' +import {useSetMinimalShellMode} from '#/state/shell' +import {useComposerControls} from '#/state/shell/composer' +import {useAnalytics} from 'lib/analytics/analytics' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {ComposeIcon2} from 'lib/icons' import {s} from 'lib/styles' -import {View, useWindowDimensions} from 'react-native' -import {ListMethods} from '../util/List' import {Feed} from '../posts/Feed' import {FAB} from '../util/fab/FAB' +import {ListMethods} from '../util/List' import {LoadLatestBtn} from '../util/load-latest/LoadLatestBtn' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useSession} from '#/state/session' -import {useComposerControls} from '#/state/shell/composer' -import {listenSoftReset} from '#/state/events' -import {truncateAndInvalidate} from '#/state/queries/util' -import {TabState, getTabState, getRootNavigation} from '#/lib/routes/helpers' -import {isNative} from '#/platform/detection' -import {logEvent} from '#/lib/statsig/statsig' +import {MainScrollProvider} from '../util/MainScrollProvider' const POLL_FREQ = 60e3 // 60sec @@ -71,6 +72,7 @@ export function FeedPage({ setHasNew(false) logEvent('feed:refresh', { feedType: feed.split('|')[0], + feedUrl: feed, reason: 'soft-reset', }) } @@ -96,10 +98,22 @@ export function FeedPage({ setHasNew(false) logEvent('feed:refresh', { feedType: feed.split('|')[0], + feedUrl: feed, reason: 'load-latest', }) }, [scrollToTop, feed, queryClient, setHasNew]) + let feedPollInterval + if ( + useGate('disable_poll_on_discover') && + feed === // Discover + 'feedgen|at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/whats-hot' + ) { + feedPollInterval = undefined + } else { + feedPollInterval = POLL_FREQ + } + return ( <View testID={testID} style={s.h100pct}> <MainScrollProvider> @@ -108,7 +122,7 @@ export function FeedPage({ enabled={isPageFocused} feed={feed} feedParams={feedParams} - pollInterval={POLL_FREQ} + pollInterval={feedPollInterval} disablePoll={hasNew} scrollElRef={scrollElRef} onScrolledDownChange={setIsScrolledDown} |