From bc454dad896fe577bec91f3d65d971ad9e0fec8d Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Thu, 6 Feb 2025 22:13:39 -0600 Subject: [PATCH] Handle follow case --- src/view/com/util/post-ctrls/PostCtrls.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/view/com/util/post-ctrls/PostCtrls.tsx b/src/view/com/util/post-ctrls/PostCtrls.tsx index f73cede352..b61bad2ca9 100644 --- a/src/view/com/util/post-ctrls/PostCtrls.tsx +++ b/src/view/com/util/post-ctrls/PostCtrls.tsx @@ -26,6 +26,7 @@ import {makeProfileLink} from '#/lib/routes/links' import {shareUrl} from '#/lib/sharing' import {useGate} from '#/lib/statsig/statsig' import {toShareUrl} from '#/lib/strings/url-helpers' +import {useProfileShadow} from '#/state/cache/profile-shadow' import {Shadow} from '#/state/cache/types' import {useFeedFeedbackContext} from '#/state/feed-feedback' import { @@ -94,6 +95,15 @@ let PostCtrls = ({ post.author.viewer?.blockingByList, ) + const shadowedAuthor = useProfileShadow(post.author) + const followersCanReply = !!threadgateRecord?.allow?.find( + rule => rule.$type === 'app.bsky.feed.threadgate#followerRule', + ) + const canOverrideReplyDisabled = + followersCanReply && + shadowedAuthor.viewer?.following?.startsWith('at://did') + const replyDisabled = post.viewer?.replyDisabled && !canOverrideReplyDisabled + const shouldShowLoggedOutWarning = React.useMemo(() => { return ( post.author.did !== currentAccount?.did && @@ -247,13 +257,13 @@ let PostCtrls = ({ { - if (!post.viewer?.replyDisabled) { + if (!replyDisabled) { playHaptic('Light') requireAuth(() => onPressReply()) }