diff options
author | Eric Bailey <git@esb.lol> | 2025-02-11 16:07:10 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-11 14:07:10 -0800 |
commit | 459611ca7a0d1559e3c9373ef9a61ea8e4c1e2f7 (patch) | |
tree | 12808a7ee8f9abce9bf06c50b047a9c426fc04f1 /src/view/com/util/post-ctrls/PostCtrls.tsx | |
parent | 03f75e8ff49d8fa0f7b96321ba8d3a5dd8841703 (diff) | |
download | voidsky-459611ca7a0d1559e3c9373ef9a61ea8e4c1e2f7.tar.zst |
[APP-1031] Add new followerRule to threadgate settings (#7681)
* Add new followerRule to threadgate settings * Handle WhoCanReply copy * Handle follow case * fix ci * Revert "Handle follow case" This reverts commit bc454dad896fe577bec91f3d65d971ad9e0fec8d. * Hide Follow button if followedBy rule enabled * Revert "Revert "Handle follow case"" This reverts commit cadc46d2dc50120424ed460943775c58efc59c4d. --------- Co-authored-by: Samuel Newman <mozzius@protonmail.com>
Diffstat (limited to 'src/view/com/util/post-ctrls/PostCtrls.tsx')
-rw-r--r-- | src/view/com/util/post-ctrls/PostCtrls.tsx | 14 |
1 files 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 f73cede35..b61bad2ca 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 = ({ <View style={[ big ? a.align_center : [a.flex_1, a.align_start, {marginLeft: -6}], - post.viewer?.replyDisabled ? {opacity: 0.5} : undefined, + replyDisabled ? {opacity: 0.5} : undefined, ]}> <Pressable testID="replyBtn" style={btnStyle} onPress={() => { - if (!post.viewer?.replyDisabled) { + if (!replyDisabled) { playHaptic('Light') requireAuth(() => onPressReply()) } |