diff --git a/src/components/interstitials/Trending.tsx b/src/components/interstitials/Trending.tsx
index cec5e45c6a..7809365e5c 100644
--- a/src/components/interstitials/Trending.tsx
+++ b/src/components/interstitials/Trending.tsx
@@ -26,8 +26,8 @@ import {Text} from '#/components/Typography'
export function TrendingInterstitial() {
const {enabled} = useTrendingConfig()
- const {trendingDiscoverHidden} = useTrendingSettings()
- return !enabled ? null : trendingDiscoverHidden ? null :
+ const {trendingDisabled} = useTrendingSettings()
+ return enabled && !trendingDisabled ? : null
}
export function Inner() {
@@ -35,7 +35,7 @@ export function Inner() {
const {_} = useLingui()
const gutters = useGutters(['base'])
const trendingPrompt = Prompt.usePromptControl()
- const {setTrendingDiscoverHidden} = useTrendingSettingsApi()
+ const {setTrendingDisabled} = useTrendingSettingsApi()
const {data: trending, error, isLoading} = useTrendingTopics()
const noTopics = !isLoading && !error && !trending?.topics?.length
@@ -101,12 +101,12 @@ export function Inner() {
setTrendingDiscoverHidden(true)}
+ onConfirm={() => setTrendingDisabled(true)}
/>
)
diff --git a/src/screens/Search/components/ExploreTrendingTopics.tsx b/src/screens/Search/components/ExploreTrendingTopics.tsx
index 4d928e9ea3..8831d39658 100644
--- a/src/screens/Search/components/ExploreTrendingTopics.tsx
+++ b/src/screens/Search/components/ExploreTrendingTopics.tsx
@@ -2,6 +2,7 @@ import {View} from 'react-native'
import {Trans} from '@lingui/macro'
import {isWeb} from '#/platform/detection'
+import {useTrendingSettings} from '#/state/preferences/trending'
import {
DEFAULT_LIMIT as TRENDING_TOPICS_COUNT,
useTrendingTopics,
@@ -19,7 +20,8 @@ import {Text} from '#/components/Typography'
export function ExploreTrendingTopics() {
const {enabled} = useTrendingConfig()
- return enabled ? : null
+ const {trendingDisabled} = useTrendingSettings()
+ return enabled && !trendingDisabled ? : null
}
function Inner() {
diff --git a/src/screens/Settings/ContentAndMediaSettings.tsx b/src/screens/Settings/ContentAndMediaSettings.tsx
index 0f7e679dc4..bdbe1d191b 100644
--- a/src/screens/Settings/ContentAndMediaSettings.tsx
+++ b/src/screens/Settings/ContentAndMediaSettings.tsx
@@ -36,9 +36,8 @@ export function ContentAndMediaSettingsScreen({}: Props) {
const inAppBrowserPref = useInAppBrowser()
const setUseInAppBrowser = useSetInAppBrowser()
const {enabled: trendingEnabled} = useTrendingConfig()
- const {trendingSidebarHidden, trendingDiscoverHidden} = useTrendingSettings()
- const {setTrendingSidebarHidden, setTrendingDiscoverHidden} =
- useTrendingSettingsApi()
+ const {trendingDisabled} = useTrendingSettings()
+ const {setTrendingDisabled} = useTrendingSettingsApi()
return (
@@ -117,30 +116,15 @@ export function ContentAndMediaSettingsScreen({}: Props) {
{trendingEnabled && (
<>
- {!isNative && (
- setTrendingSidebarHidden(!value)}>
-
-
-
- Show trending topics in your sidebar
-
-
-
-
- )}
setTrendingDiscoverHidden(!value)}>
+ name="show_trending_topics"
+ label={_(msg`Enable trending topics`)}
+ value={!trendingDisabled}
+ onChange={value => setTrendingDisabled(!value)}>
- Show trending topics in your feed
+ Enable trending topics
diff --git a/src/state/persisted/schema.ts b/src/state/persisted/schema.ts
index e4852e2f72..0a9e5b2c07 100644
--- a/src/state/persisted/schema.ts
+++ b/src/state/persisted/schema.ts
@@ -125,12 +125,7 @@ const schema = z.object({
subtitlesEnabled: z.boolean().optional(),
/** @deprecated */
mutedThreads: z.array(z.string()),
-
- /*
- * Trending
- */
- trendingSidebarHidden: z.boolean().optional(),
- trendingDiscoverHidden: z.boolean().optional(),
+ trendingDisabled: z.boolean().optional(),
})
export type Schema = z.infer
@@ -176,12 +171,7 @@ export const defaults: Schema = {
kawaii: false,
hasCheckedForStarterPack: false,
subtitlesEnabled: true,
-
- /*
- * Trending
- */
- trendingSidebarHidden: false,
- trendingDiscoverHidden: false,
+ trendingDisabled: false,
}
export function tryParse(rawData: string): Schema | undefined {
diff --git a/src/state/preferences/trending.tsx b/src/state/preferences/trending.tsx
index 61a026c22e..bf5d8f13cc 100644
--- a/src/state/preferences/trending.tsx
+++ b/src/state/preferences/trending.tsx
@@ -3,31 +3,19 @@ import React from 'react'
import * as persisted from '#/state/persisted'
type StateContext = {
- trendingSidebarHidden: Exclude<
- persisted.Schema['trendingSidebarHidden'],
- undefined
- >
- trendingDiscoverHidden: Exclude<
- persisted.Schema['trendingDiscoverHidden'],
- undefined
- >
+ trendingDisabled: Exclude
}
type ApiContext = {
- setTrendingSidebarHidden(
- hidden: Exclude,
- ): void
- setTrendingDiscoverHidden(
- hidden: Exclude,
+ setTrendingDisabled(
+ hidden: Exclude,
): void
}
const StateContext = React.createContext({
- trendingSidebarHidden: Boolean(persisted.defaults.trendingSidebarHidden),
- trendingDiscoverHidden: Boolean(persisted.defaults.trendingDiscoverHidden),
+ trendingDisabled: Boolean(persisted.defaults.trendingDisabled),
})
const ApiContext = React.createContext({
- setTrendingSidebarHidden() {},
- setTrendingDiscoverHidden() {},
+ setTrendingDisabled() {},
})
function usePersistedBooleanValue(key: T) {
@@ -53,21 +41,16 @@ function usePersistedBooleanValue(key: T) {
}
export function Provider({children}: React.PropsWithChildren<{}>) {
- const [trendingSidebarHidden, setTrendingSidebarHidden] =
- usePersistedBooleanValue('trendingSidebarHidden')
- const [trendingDiscoverHidden, setTrendingDiscoverHidden] =
- usePersistedBooleanValue('trendingDiscoverHidden')
+ const [trendingDisabled, setTrendingDisabled] =
+ usePersistedBooleanValue('trendingDisabled')
/*
* Context
*/
- const state = React.useMemo(
- () => ({trendingSidebarHidden, trendingDiscoverHidden}),
- [trendingSidebarHidden, trendingDiscoverHidden],
- )
+ const state = React.useMemo(() => ({trendingDisabled}), [trendingDisabled])
const api = React.useMemo(
- () => ({setTrendingSidebarHidden, setTrendingDiscoverHidden}),
- [setTrendingSidebarHidden, setTrendingDiscoverHidden],
+ () => ({setTrendingDisabled}),
+ [setTrendingDisabled],
)
return (
diff --git a/src/view/com/posts/PostFeed.tsx b/src/view/com/posts/PostFeed.tsx
index d88d16955b..f83de84643 100644
--- a/src/view/com/posts/PostFeed.tsx
+++ b/src/view/com/posts/PostFeed.tsx
@@ -265,7 +265,7 @@ let PostFeed = ({
const showProgressIntersitial =
(followProgressGuide || followAndLikeProgressGuide) && !isDesktop
- const {trendingDiscoverHidden} = useTrendingSettings()
+ const {trendingDisabled} = useTrendingSettings()
const feedItems: FeedRow[] = React.useMemo(() => {
let feedKind: 'following' | 'discover' | 'profile' | undefined
@@ -312,7 +312,7 @@ let PostFeed = ({
type: 'interstitialProgressGuide',
key: 'interstitial-' + sliceIndex + '-' + lastFetchedAt,
})
- } else if (sliceIndex === 15 && !trendingDiscoverHidden) {
+ } else if (sliceIndex === 15 && !trendingDisabled) {
arr.push({
type: 'interstitialTrending',
key: 'interstitial-' + sliceIndex + '-' + lastFetchedAt,
@@ -403,7 +403,7 @@ let PostFeed = ({
feedTab,
hasSession,
showProgressIntersitial,
- trendingDiscoverHidden,
+ trendingDisabled,
])
// events
diff --git a/src/view/shell/desktop/SidebarTrendingTopics.tsx b/src/view/shell/desktop/SidebarTrendingTopics.tsx
index 55324687f9..a50ea9719d 100644
--- a/src/view/shell/desktop/SidebarTrendingTopics.tsx
+++ b/src/view/shell/desktop/SidebarTrendingTopics.tsx
@@ -26,15 +26,15 @@ import {Text} from '#/components/Typography'
export function SidebarTrendingTopics() {
const {enabled} = useTrendingConfig()
- const {trendingSidebarHidden} = useTrendingSettings()
- return !enabled ? null : trendingSidebarHidden ? null :
+ const {trendingDisabled} = useTrendingSettings()
+ return !enabled ? null : trendingDisabled ? null :
}
function Inner() {
const t = useTheme()
const {_} = useLingui()
const trendingPrompt = Prompt.usePromptControl()
- const {setTrendingSidebarHidden} = useTrendingSettingsApi()
+ const {setTrendingDisabled} = useTrendingSettingsApi()
const {data: trending, error, isLoading} = useTrendingTopics()
const noTopics = !isLoading && !error && !trending?.topics?.length
@@ -96,10 +96,10 @@ function Inner() {
control={trendingPrompt}
title={_(msg`Hide trending topics?`)}
description={_(
- msg`This is a device setting, and will apply to all accounts on this device. You can update this later from your settings.`,
+ msg`This will disable trending topics for all accounts on this device. You can update this later from your settings.`,
)}
confirmButtonCta={_(msg`Hide`)}
- onConfirm={() => setTrendingSidebarHidden(true)}
+ onConfirm={() => setTrendingDisabled(true)}
/>
>