This commit is contained in:
Dan Abramov
2025-01-19 21:03:55 +00:00
parent 69c035214d
commit 4ce40dd8a3
6 changed files with 27 additions and 51 deletions
-1
View File
@@ -7,4 +7,3 @@ export type Gate =
| 'test_gate_1'
| 'test_gate_2'
| 'trending_topics_beta'
| 'yolo'
+2 -5
View File
@@ -14,7 +14,6 @@ import {useSetTitle} from '#/lib/hooks/useSetTitle'
import {ComposeIcon2} from '#/lib/icons'
import {CommonNavigatorParams} from '#/lib/routes/types'
import {NavigationProp} from '#/lib/routes/types'
import {useGate} from '#/lib/statsig/statsig'
import {makeRecordUri} from '#/lib/strings/url-helpers'
import {s} from '#/lib/styles'
import {isNative} from '#/platform/detection'
@@ -190,15 +189,13 @@ export function ProfileFeedScreenInner({
return <EmptyState icon="hashtag" message={_(msg`This feed is empty.`)} />
}, [_])
const gate = useGate()
const isVideoFeed = React.useMemo(() => {
const isBskyVideoFeed = VIDEO_FEED_URIS.includes(feedInfo.uri)
const feedIsVideoMode =
feedInfo.contentMode === AppBskyFeedDefs.CONTENTMODEVIDEO
const isFeatureEnabled = gate('yolo')
const _isVideoFeed = isBskyVideoFeed || feedIsVideoMode
return isFeatureEnabled && isNative && _isVideoFeed
}, [gate, feedInfo])
return isNative && _isVideoFeed
}, [feedInfo])
return (
<>
@@ -1,11 +1,9 @@
import React from 'react'
import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {NativeStackScreenProps} from '@react-navigation/native-stack'
import {CommonNavigatorParams} from '#/lib/routes/types'
import {logEvent} from '#/lib/statsig/statsig'
import {useGate} from '#/lib/statsig/statsig'
import {isNative} from '#/platform/detection'
import {useAutoplayDisabled, useSetAutoplayDisabled} from '#/state/preferences'
import {
@@ -42,10 +40,6 @@ export function ContentAndMediaSettingsScreen({}: Props) {
const {trendingDisabled, trendingVideoDisabled} = useTrendingSettings()
const {setTrendingDisabled, setTrendingVideoDisabled} =
useTrendingSettingsApi()
const gate = useGate()
const areVideoFeedsEnabled = React.useMemo(() => {
return gate('yolo')
}, [gate])
return (
<Layout.Screen>
@@ -145,31 +139,27 @@ export function ContentAndMediaSettingsScreen({}: Props) {
<Toggle.Platform />
</SettingsList.Item>
</Toggle.Item>
{areVideoFeedsEnabled && (
<Toggle.Item
name="show_trending_videos"
label={_(msg`Enable trending videos in your Discover feed.`)}
value={!trendingVideoDisabled}
onChange={value => {
const hide = Boolean(!value)
if (hide) {
logEvent('trendingVideos:hide', {context: 'settings'})
} else {
logEvent('trendingVideos:show', {context: 'settings'})
}
setTrendingVideoDisabled(hide)
}}>
<SettingsList.Item>
<SettingsList.ItemIcon icon={Graph} />
<SettingsList.ItemText>
<Trans>
Enable trending videos in your Discover feed
</Trans>
</SettingsList.ItemText>
<Toggle.Platform />
</SettingsList.Item>
</Toggle.Item>
)}
<Toggle.Item
name="show_trending_videos"
label={_(msg`Enable trending videos in your Discover feed.`)}
value={!trendingVideoDisabled}
onChange={value => {
const hide = Boolean(!value)
if (hide) {
logEvent('trendingVideos:hide', {context: 'settings'})
} else {
logEvent('trendingVideos:show', {context: 'settings'})
}
setTrendingVideoDisabled(hide)
}}>
<SettingsList.Item>
<SettingsList.ItemIcon icon={Graph} />
<SettingsList.ItemText>
<Trans>Enable trending videos in your Discover feed</Trans>
</SettingsList.ItemText>
<Toggle.Platform />
</SettingsList.Item>
</Toggle.Item>
</>
)}
</SettingsList.Container>
+2 -5
View File
@@ -11,7 +11,6 @@ import {ComposeIcon2} from '#/lib/icons'
import {getRootNavigation, getTabState, TabState} from '#/lib/routes/helpers'
import {AllNavigatorParams} from '#/lib/routes/types'
import {logEvent} from '#/lib/statsig/statsig'
import {useGate} from '#/lib/statsig/statsig'
import {s} from '#/lib/styles'
import {isNative} from '#/platform/detection'
import {listenSoftReset} from '#/state/events'
@@ -66,15 +65,13 @@ export function FeedPage({
const scrollElRef = React.useRef<ListMethods>(null)
const [hasNew, setHasNew] = React.useState(false)
const setHomeBadge = useSetHomeBadge()
const gate = useGate()
const isVideoFeed = React.useMemo(() => {
const isBskyVideoFeed = VIDEO_FEED_URIS.includes(feedInfo.uri)
const feedIsVideoMode =
feedInfo.contentMode === AppBskyFeedDefs.CONTENTMODEVIDEO
const isFeatureEnabled = gate('yolo')
const _isVideoFeed = isBskyVideoFeed || feedIsVideoMode
return isFeatureEnabled && isNative && _isVideoFeed
}, [gate, feedInfo])
return isNative && _isVideoFeed
}, [feedInfo])
React.useEffect(() => {
if (isPageFocused) {
+1 -5
View File
@@ -17,7 +17,6 @@ import {useQueryClient} from '@tanstack/react-query'
import {DISCOVER_FEED_URI, KNOWN_SHUTDOWN_FEEDS} from '#/lib/constants'
import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
import {useGate} from '#/lib/statsig/statsig'
import {logEvent} from '#/lib/statsig/statsig'
import {useTheme} from '#/lib/ThemeContext'
import {logger} from '#/logger'
@@ -200,10 +199,7 @@ let PostFeed = ({
const lastFetchRef = React.useRef<number>(Date.now())
const [feedType, feedUri, feedTab] = feed.split('|')
const {gtMobile, gtTablet} = useBreakpoints()
const gate = useGate()
const areVideoFeedsEnabled = React.useMemo(() => {
return isNative && gate('yolo')
}, [gate])
const areVideoFeedsEnabled = isNative
const feedCacheKey = feedParams?.feedCacheKey
const opts = React.useMemo(
+1 -4
View File
@@ -10,7 +10,6 @@ import {
import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {useGate} from '#/lib/statsig/statsig'
import {cleanError} from '#/lib/strings/errors'
import {logger} from '#/logger'
import {isNative, isWeb} from '#/platform/detection'
@@ -309,7 +308,6 @@ export function Explore() {
error: feedsError,
fetchNextPage: fetchNextFeedsPage,
} = useGetPopularFeedsQuery({limit: 10})
const gate = useGate()
const isLoadingMoreProfiles = isFetchingNextProfilesPage && !isLoadingProfiles
const onLoadMoreProfiles = React.useCallback(async () => {
@@ -350,7 +348,7 @@ export function Explore() {
key: `trending-topics`,
})
if (isNative && gate('yolo')) {
if (isNative) {
i.push({
type: 'trendingVideos',
key: `trending-videos`,
@@ -510,7 +508,6 @@ export function Explore() {
preferencesError,
hasNextProfilesPage,
hasNextFeedsPage,
gate,
])
const renderItem = React.useCallback(