about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/lib/statsig/events.ts6
-rw-r--r--src/screens/Search/components/ExploreRecommendations.tsx43
-rw-r--r--src/screens/Search/components/ExploreTrendingTopics.tsx10
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"