Merge pull request #8876 from internet-development/caidanw/app-1399-trending-videos-icon-missing

[APP-1399] trending videos icon missing
This commit is contained in:
jim
2025-08-21 15:44:14 -07:00
committed by GitHub
+55 -53
View File
@@ -1,4 +1,4 @@
import React, {useEffect} from 'react' import {useCallback, useEffect, useMemo} from 'react'
import {ScrollView, View} from 'react-native' import {ScrollView, View} from 'react-native'
import {AppBskyEmbedVideo, AtUri} from '@atproto/api' import {AppBskyEmbedVideo, AtUri} from '@atproto/api'
import {msg, Trans} from '@lingui/macro' import {msg, Trans} from '@lingui/macro'
@@ -55,7 +55,7 @@ export function TrendingVideos() {
const {setTrendingVideoDisabled} = useTrendingSettingsApi() const {setTrendingVideoDisabled} = useTrendingSettingsApi()
const trendingPrompt = Prompt.usePromptControl() const trendingPrompt = Prompt.usePromptControl()
const onConfirmHide = React.useCallback(() => { const onConfirmHide = useCallback(() => {
setTrendingVideoDisabled(true) setTrendingVideoDisabled(true)
logEvent('trendingVideos:hide', {context: 'interstitial:discover'}) logEvent('trendingVideos:hide', {context: 'interstitial:discover'})
}, [setTrendingVideoDisabled]) }, [setTrendingVideoDisabled])
@@ -147,9 +147,7 @@ function VideoCards({
}: { }: {
data: Exclude<ReturnType<typeof usePostFeedQuery>['data'], undefined> data: Exclude<ReturnType<typeof usePostFeedQuery>['data'], undefined>
}) { }) {
const t = useTheme() const items = useMemo(() => {
const {_} = useLingui()
const items = React.useMemo(() => {
return data.pages return data.pages
.flatMap(page => page.slices) .flatMap(page => page.slices)
.map(slice => slice.items[0]) .map(slice => slice.items[0])
@@ -157,10 +155,6 @@ function VideoCards({
.filter(item => AppBskyEmbedVideo.isView(item.post.embed)) .filter(item => AppBskyEmbedVideo.isView(item.post.embed))
.slice(0, 8) .slice(0, 8)
}, [data]) }, [data])
const href = React.useMemo(() => {
const urip = new AtUri(VIDEO_FEED_URI)
return makeCustomFeedLink(urip.host, urip.rkey, undefined, 'discover')
}, [])
return ( return (
<> <>
@@ -183,50 +177,58 @@ function VideoCards({
</View> </View>
))} ))}
<View style={[{width: CARD_WIDTH * 2}]}> <ViewMoreCard />
<Link
to={href}
label={_(msg`View more`)}
style={[
a.justify_center,
a.align_center,
a.flex_1,
a.rounded_lg,
a.border,
t.atoms.border_contrast_low,
t.atoms.bg,
t.atoms.shadow_sm,
]}>
{({pressed}) => (
<View
style={[
a.flex_row,
a.align_center,
a.gap_md,
{
opacity: pressed ? 0.6 : 1,
},
]}>
<Text style={[a.text_md]}>
<Trans>View more</Trans>
</Text>
<View
style={[
a.align_center,
a.justify_center,
a.rounded_full,
{
width: 34,
height: 34,
backgroundColor: t.palette.primary_500,
},
]}>
<ButtonIcon icon={ChevronRight} />
</View>
</View>
)}
</Link>
</View>
</> </>
) )
} }
function ViewMoreCard() {
const t = useTheme()
const {_} = useLingui()
const href = useMemo(() => {
const urip = new AtUri(VIDEO_FEED_URI)
return makeCustomFeedLink(urip.host, urip.rkey, undefined, 'discover')
}, [])
return (
<View style={[{width: CARD_WIDTH * 2}]}>
<Link
to={href}
label={_(msg`View more`)}
style={[
a.justify_center,
a.align_center,
a.flex_1,
a.rounded_lg,
a.border,
t.atoms.border_contrast_low,
t.atoms.bg,
t.atoms.shadow_sm,
]}>
{({pressed}) => (
<View
style={[
a.flex_row,
a.align_center,
a.gap_md,
{
opacity: pressed ? 0.6 : 1,
},
]}>
<Text style={[a.text_md]}>
<Trans>View more</Trans>
</Text>
<Button
color="primary"
size="small"
shape="round"
label={_(msg`View more trending videos`)}>
<ButtonIcon icon={ChevronRight} />
</Button>
</View>
)}
</Link>
</View>
)
}