diff --git a/src/components/FeedInterstitials.tsx b/src/components/FeedInterstitials.tsx
index 6278449a0..b9b08901d 100644
--- a/src/components/FeedInterstitials.tsx
+++ b/src/components/FeedInterstitials.tsx
@@ -9,6 +9,7 @@ import {type NavigationProp} from '#/lib/routes/types'
import {logEvent} from '#/lib/statsig/statsig'
import {logger} from '#/logger'
import {isIOS} from '#/platform/detection'
+import {useHideSimilarAccountsRecomm} from '#/state/preferences/hide-similar-accounts-recommendations'
import {useModerationOpts} from '#/state/preferences/moderation-opts'
import {useGetPopularFeedsQuery} from '#/state/queries/feed'
import {type FeedDescriptor} from '#/state/queries/post-feed'
@@ -258,6 +259,9 @@ export function ProfileGrid({
const maxLength = gtMobile ? 3 : isProfileHeaderContext ? 12 : 6
const minLength = gtMobile ? 3 : 4
+ // hide similar accounts
+ const hideSimilarAccountsRecomm = useHideSimilarAccountsRecomm()
+
const content = isLoading
? Array(maxLength)
.fill(0)
@@ -363,61 +367,63 @@ export function ProfileGrid({
return null
}
- return (
-
+ if (!hideSimilarAccountsRecomm) {
+ return (
-
- {isFeedContext ? (
- Suggested for you
- ) : (
- Similar accounts
+
+
+ {isFeedContext ? (
+ Suggested for you
+ ) : (
+ Similar accounts
+ )}
+
+ {!isProfileHeaderContext && (
+
+ See more
+
)}
-
- {!isProfileHeaderContext && (
-
- See more
-
- )}
-
+
- {gtMobile ? (
-
-
- {content}
+ {gtMobile ? (
+
+
+ {content}
+
-
- ) : (
-
-
- {content}
+ ) : (
+
+
+ {content}
- {!isProfileHeaderContext && }
-
-
- )}
-
- )
+ {!isProfileHeaderContext && }
+
+
+ )}
+
+ )
+ }
}
function SeeMoreSuggestedProfilesCard() {
diff --git a/src/screens/Settings/DeerSettings.tsx b/src/screens/Settings/DeerSettings.tsx
index 12f3d17be..0ae9ae3fd 100644
--- a/src/screens/Settings/DeerSettings.tsx
+++ b/src/screens/Settings/DeerSettings.tsx
@@ -61,6 +61,10 @@ import {
useHideFeedsPromoTab,
useSetHideFeedsPromoTab,
} from '#/state/preferences/hide-feeds-promo-tab'
+import {
+ useHideSimilarAccountsRecomm,
+ useSetHideSimilarAccountsRecomm,
+} from '#/state/preferences/hide-similar-accounts-recommendations'
import {
useHighQualityImages,
useSetHighQualityImages,
@@ -269,6 +273,9 @@ export function DeerSettingsScreen({}: Props) {
const disableReplyMetrics = useDisableReplyMetrics()
const setDisableReplyMetrics = useSetDisableReplyMetrics()
+ const hideSimilarAccountsRecomm = useHideSimilarAccountsRecomm()
+ const setHideSimilarAccountsRecomm = useSetHideSimilarAccountsRecomm()
+
const constellationInstance = useConstellationInstance()
const setConstellationInstanceControl = Dialog.useDialogControl()
@@ -564,6 +571,18 @@ export function DeerSettingsScreen({}: Props) {
you like/repost a post someone else has reposted for privacy.
+
+ setHideSimilarAccountsRecomm(value)}
+ style={[a.w_full]}>
+
+ Hide similar accounts recommendations
+
+
+
diff --git a/src/state/persisted/schema.ts b/src/state/persisted/schema.ts
index 79445b4c3..7dca12067 100644
--- a/src/state/persisted/schema.ts
+++ b/src/state/persisted/schema.ts
@@ -140,6 +140,7 @@ const schema = z.object({
disableQuotesMetrics: z.boolean().optional(),
disableSavesMetrics: z.boolean().optional(),
disableReplyMetrics: z.boolean().optional(),
+ hideSimilarAccountsRecomm: z.boolean().optional(),
deerVerification: z
.object({
enabled: z.boolean(),
@@ -216,6 +217,7 @@ export const defaults: Schema = {
disableQuotesMetrics: false,
disableSavesMetrics: false,
disableReplyMetrics: false,
+ hideSimilarAccountsRecomm: false,
deerVerification: {
enabled: false,
// https://social.daniela.lol/profile/did:plc:p2cp5gopk7mgjegy6wadk3ep/post/3lndyqyyr4k2k
diff --git a/src/state/preferences/hide-similar-accounts-recommendations.tsx b/src/state/preferences/hide-similar-accounts-recommendations.tsx
new file mode 100644
index 000000000..d8b5ff246
--- /dev/null
+++ b/src/state/preferences/hide-similar-accounts-recommendations.tsx
@@ -0,0 +1,52 @@
+import React from 'react'
+
+import * as persisted from '#/state/persisted'
+
+// Preference: hideSimilarAccountsRecomm – when true, hides similar accounts recommendations
+
+type StateContext = persisted.Schema['hideSimilarAccountsRecomm']
+// Same setter signature used across other preference modules
+type SetContext = (v: persisted.Schema['hideSimilarAccountsRecomm']) => void
+
+const stateContext = React.createContext(
+ persisted.defaults.hideSimilarAccountsRecomm,
+)
+const setContext = React.createContext(
+ (_: persisted.Schema['hideSimilarAccountsRecomm']) => {},
+)
+
+export function Provider({children}: React.PropsWithChildren<{}>) {
+ const [state, setState] = React.useState(
+ persisted.get('hideSimilarAccountsRecomm'),
+ )
+
+ const setStateWrapped = React.useCallback(
+ (value: persisted.Schema['hideSimilarAccountsRecomm']) => {
+ setState(value)
+ persisted.write('hideSimilarAccountsRecomm', value)
+ },
+ [setState],
+ )
+
+ React.useEffect(() => {
+ return persisted.onUpdate('hideSimilarAccountsRecomm', next => {
+ setState(next)
+ })
+ }, [setStateWrapped])
+
+ return (
+
+
+ {children}
+
+
+ )
+}
+
+export function useHideSimilarAccountsRecomm() {
+ return React.useContext(stateContext)
+}
+
+export function useSetHideSimilarAccountsRecomm() {
+ return React.useContext(setContext)
+}
diff --git a/src/state/preferences/index.tsx b/src/state/preferences/index.tsx
index 0d43a9a33..83fd5acd4 100644
--- a/src/state/preferences/index.tsx
+++ b/src/state/preferences/index.tsx
@@ -17,6 +17,7 @@ import {Provider as ExternalEmbedsProvider} from './external-embeds-prefs'
import {Provider as GoLinksProvider} from './go-links-enabled'
import {Provider as HiddenPostsProvider} from './hidden-posts'
import {Provider as HideFeedsPromoTabProvider} from './hide-feeds-promo-tab'
+import {Provider as HideSimilarAccountsRecommProvider} from './hide-similar-accounts-recommendations'
import {Provider as HighQualityImagesProvider} from './high-quality-images'
import {Provider as InAppBrowserProvider} from './in-app-browser'
import {Provider as KawaiiProvider} from './kawaii'
@@ -81,7 +82,9 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
- {children}
+
+ {children}
+