diff --git a/src/components/PostControls/DiscoverDebug.tsx b/src/components/PostControls/DiscoverDebug.tsx
new file mode 100644
index 0000000000..796981f0c2
--- /dev/null
+++ b/src/components/PostControls/DiscoverDebug.tsx
@@ -0,0 +1,54 @@
+import {Pressable} from 'react-native'
+import * as Clipboard from 'expo-clipboard'
+import {t} from '@lingui/macro'
+
+import {IS_INTERNAL} from '#/lib/app-info'
+import {DISCOVER_DEBUG_DIDS} from '#/lib/constants'
+import {useGate} from '#/lib/statsig/statsig'
+import {useSession} from '#/state/session'
+import * as Toast from '#/view/com/util/Toast'
+import {atoms as a, useBreakpoints, useTheme} from '#/alf'
+import {Text} from '#/components/Typography'
+
+export function DiscoverDebug({
+ feedContext,
+}: {
+ feedContext: string | undefined
+}) {
+ const {currentAccount} = useSession()
+ const {gtMobile} = useBreakpoints()
+ const gate = useGate()
+ const isDiscoverDebugUser =
+ IS_INTERNAL ||
+ DISCOVER_DEBUG_DIDS[currentAccount?.did || ''] ||
+ gate('debug_show_feedcontext')
+ const theme = useTheme()
+
+ return (
+ isDiscoverDebugUser &&
+ feedContext && (
+ {
+ e.stopPropagation()
+ Clipboard.setStringAsync(feedContext)
+ Toast.show(t`Copied to clipboard`, 'clipboard-check')
+ }}>
+
+ {feedContext}
+
+
+ )
+ )
+}
diff --git a/src/components/PostControls/index.tsx b/src/components/PostControls/index.tsx
index 9fd075c648..e59ef02afb 100644
--- a/src/components/PostControls/index.tsx
+++ b/src/components/PostControls/index.tsx
@@ -1,6 +1,5 @@
import {memo, useState} from 'react'
-import {Pressable, type StyleProp, View, type ViewStyle} from 'react-native'
-import * as Clipboard from 'expo-clipboard'
+import {type StyleProp, View, type ViewStyle} from 'react-native'
import {
type AppBskyFeedDefs,
type AppBskyFeedPost,
@@ -10,28 +9,24 @@ import {
import {msg, plural} from '@lingui/macro'
import {useLingui} from '@lingui/react'
-import {IS_INTERNAL} from '#/lib/app-info'
-import {DISCOVER_DEBUG_DIDS} from '#/lib/constants'
import {CountWheel} from '#/lib/custom-animations/CountWheel'
import {AnimatedLikeIcon} from '#/lib/custom-animations/LikeIcon'
import {useHaptics} from '#/lib/haptics'
import {useOpenComposer} from '#/lib/hooks/useOpenComposer'
-import {useGate} from '#/lib/statsig/statsig'
import {type Shadow} from '#/state/cache/types'
import {useFeedFeedbackContext} from '#/state/feed-feedback'
import {
usePostLikeMutationQueue,
usePostRepostMutationQueue,
} from '#/state/queries/post'
-import {useRequireAuth, useSession} from '#/state/session'
+import {useRequireAuth} from '#/state/session'
import {
ProgressGuideAction,
useProgressGuideControls,
} from '#/state/shell/progress-guide'
import {formatCount} from '#/view/com/util/numeric/format'
-import {Text} from '#/view/com/util/text/Text'
import * as Toast from '#/view/com/util/Toast'
-import {atoms as a, useBreakpoints, useTheme} from '#/alf'
+import {atoms as a, useBreakpoints} from '#/alf'
import {Bubble_Stroke2_Corner2_Rounded as Bubble} from '#/components/icons/Bubble'
import {
PostControlButton,
@@ -69,11 +64,9 @@ let PostControls = ({
threadgateRecord?: AppBskyFeedThreadgate.Record
onShowLess?: (interaction: AppBskyFeedDefs.Interaction) => void
}): React.ReactNode => {
- const t = useTheme()
- const {gtMobile} = useBreakpoints()
const {_, i18n} = useLingui()
+ const {gtMobile} = useBreakpoints()
const {openComposer} = useOpenComposer()
- const {currentAccount} = useSession()
const [queueLike, queueUnlike] = usePostLikeMutationQueue(post, logContext)
const [queueRepost, queueUnrepost] = usePostRepostMutationQueue(
post,
@@ -83,11 +76,6 @@ let PostControls = ({
const {sendInteraction} = useFeedFeedbackContext()
const {captureAction} = useProgressGuideControls()
const playHaptic = useHaptics()
- const gate = useGate()
- const isDiscoverDebugUser =
- IS_INTERNAL ||
- DISCOVER_DEBUG_DIDS[currentAccount?.did || ''] ||
- gate('debug_show_feedcontext')
const isBlocked = Boolean(
post.author.viewer?.blocking ||
post.author.viewer?.blockedBy ||
@@ -268,10 +256,7 @@ let PostControls = ({
/>
-
+
-
+
- {isDiscoverDebugUser && feedContext && (
- {
- e.stopPropagation()
- Clipboard.setStringAsync(feedContext)
- Toast.show(_(msg`Copied to clipboard`), 'clipboard-check')
- }}>
-
- {feedContext}
-
-
- )}
)
}
diff --git a/src/view/com/posts/PostFeedItem.tsx b/src/view/com/posts/PostFeedItem.tsx
index db63ca0ba6..3735bbb5af 100644
--- a/src/view/com/posts/PostFeedItem.tsx
+++ b/src/view/com/posts/PostFeedItem.tsx
@@ -50,6 +50,7 @@ import {LabelsOnMyPost} from '#/components/moderation/LabelsOnMe'
import {PostAlerts} from '#/components/moderation/PostAlerts'
import {type AppModerationCause} from '#/components/Pills'
import {PostControls} from '#/components/PostControls'
+import {DiscoverDebug} from '#/components/PostControls/DiscoverDebug'
import {ProfileHoverCard} from '#/components/ProfileHoverCard'
import {RichText} from '#/components/RichText'
import {SubtleWebHover} from '#/components/SubtleWebHover'
@@ -451,6 +452,8 @@ let FeedItemInner = ({
onShowLess={onShowLess}
/>
+
+
)