diff options
author | Eric Bailey <git@esb.lol> | 2024-12-18 13:55:59 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-18 19:55:59 +0000 |
commit | c8e307b5cf35580bc576cd26d9ec17a77d7bdba1 (patch) | |
tree | d7ca55063707978de154b0cff768e957394b036d | |
parent | a7f763faf23bc5d9db94f6e8f2f52ffec25d95a2 (diff) | |
download | voidsky-c8e307b5cf35580bc576cd26d9ec17a77d7bdba1.tar.zst |
Trending tracking 2 (#7162)
* Move (cherry picked from commit bfb96f4ce287b140d25f36c678c0ac21bdb11b3d) * Add to recommeded too (cherry picked from commit e6844883a6c0dfeb1a36837d70c09e1240c32a06) --------- Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
-rw-r--r-- | src/lib/statsig/events.ts | 6 | ||||
-rw-r--r-- | src/screens/Search/components/ExploreRecommendations.tsx | 43 | ||||
-rw-r--r-- | src/screens/Search/components/ExploreTrendingTopics.tsx | 10 |
3 files changed, 49 insertions, 10 deletions
diff --git a/src/lib/statsig/events.ts b/src/lib/statsig/events.ts index 76ba3257f..8d684a4e7 100644 --- a/src/lib/statsig/events.ts +++ b/src/lib/statsig/events.ts @@ -239,6 +239,10 @@ export type LogEvents = { 'trendingTopics:show': {} 'trendingTopics:hide': { - context: 'sidebar' | 'interstitial' | 'explore' + context: + | 'sidebar' + | 'interstitial' + | 'explore:trending' + | 'explore:recommendations' } } diff --git a/src/screens/Search/components/ExploreRecommendations.tsx b/src/screens/Search/components/ExploreRecommendations.tsx index e253cfb5a..b7dd9f133 100644 --- a/src/screens/Search/components/ExploreRecommendations.tsx +++ b/src/screens/Search/components/ExploreRecommendations.tsx @@ -1,15 +1,24 @@ +import React from 'react' import {View} from 'react-native' -import {Trans} from '@lingui/macro' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {logEvent} from '#/lib/statsig/statsig' import {isWeb} from '#/platform/detection' -import {useTrendingSettings} from '#/state/preferences/trending' +import { + useTrendingSettings, + useTrendingSettingsApi, +} from '#/state/preferences/trending' import { DEFAULT_LIMIT as RECOMMENDATIONS_COUNT, useTrendingTopics, } from '#/state/queries/trending/useTrendingTopics' import {useTrendingConfig} from '#/state/trending-config' import {atoms as a, useGutters, useTheme} from '#/alf' +import {Button, ButtonIcon} from '#/components/Button' import {Hashtag_Stroke2_Corner0_Rounded} from '#/components/icons/Hashtag' +import {TimesLarge_Stroke2_Corner0_Rounded as X} from '#/components/icons/Times' +import * as Prompt from '#/components/Prompt' import { TrendingTopic, TrendingTopicLink, @@ -25,17 +34,26 @@ export function ExploreRecommendations() { function Inner() { const t = useTheme() + const {_} = useLingui() const gutters = useGutters([0, 'compact']) const {data: trending, error, isLoading} = useTrendingTopics() const noRecs = !isLoading && !error && !trending?.suggested?.length + const {setTrendingDisabled} = useTrendingSettingsApi() + const trendingPrompt = Prompt.usePromptControl() + + const onConfirmHide = React.useCallback(() => { + logEvent('trendingTopics:hide', {context: 'explore:recommendations'}) + setTrendingDisabled(true) + }, [setTrendingDisabled]) return error || noRecs ? null : ( <> <View style={[ + a.flex_row, isWeb - ? [a.flex_row, a.px_lg, a.py_lg, a.pt_2xl, a.gap_md] - : [{flexDirection: 'row-reverse'}, a.p_lg, a.pt_2xl, a.gap_md], + ? [a.px_lg, a.py_lg, a.pt_2xl, a.gap_md] + : [a.p_lg, a.pt_2xl, a.gap_md], a.border_b, t.atoms.border_contrast_low, ]}> @@ -54,6 +72,15 @@ function Inner() { <Trans>Feeds we think you might like.</Trans> </Text> </View> + <Button + label={_(msg`Hide trending topics`)} + size="small" + variant="ghost" + color="secondary" + shape="round" + onPress={() => trendingPrompt.open()}> + <ButtonIcon icon={X} /> + </Button> </View> <View style={[a.pt_md, a.pb_lg]}> @@ -90,6 +117,14 @@ function Inner() { )} </View> </View> + + <Prompt.Basic + control={trendingPrompt} + title={_(msg`Hide trending topics?`)} + description={_(msg`You can update this later from your settings.`)} + confirmButtonCta={_(msg`Hide`)} + onConfirm={onConfirmHide} + /> </> ) } diff --git a/src/screens/Search/components/ExploreTrendingTopics.tsx b/src/screens/Search/components/ExploreTrendingTopics.tsx index a4766a0f4..ca4fa6e5e 100644 --- a/src/screens/Search/components/ExploreTrendingTopics.tsx +++ b/src/screens/Search/components/ExploreTrendingTopics.tsx @@ -43,7 +43,7 @@ function Inner() { const trendingPrompt = Prompt.usePromptControl() const onConfirmHide = React.useCallback(() => { - logEvent('trendingTopics:hide', {context: 'explore'}) + logEvent('trendingTopics:hide', {context: 'explore:trending'}) setTrendingDisabled(true) }, [setTrendingDisabled]) @@ -51,9 +51,10 @@ function Inner() { <> <View style={[ + a.flex_row, isWeb - ? [a.flex_row, a.px_lg, a.py_lg, a.pt_2xl, a.gap_md] - : [{flexDirection: 'row-reverse'}, a.p_lg, a.pt_2xl, a.gap_md], + ? [a.px_lg, a.py_lg, a.pt_2xl, a.gap_md] + : [a.p_lg, a.pt_2xl, a.gap_md], a.border_b, t.atoms.border_contrast_low, ]}> @@ -78,9 +79,8 @@ function Inner() { <Trans>What people are posting about.</Trans> </Text> </View> - <Button - label={_(msg`Hide trending tpoics`)} + label={_(msg`Hide trending topics`)} size="small" variant="ghost" color="secondary" |