Fix: only show appeal CW item on moderated posts (#2312)

* Fix: only show appeal CW item on moderated posts

* Add appeal cw control to feed view o fposts
zio/stable
Paul Frazee 2023-12-27 08:48:23 -08:00 committed by GitHub
parent 6e001dbf1c
commit 0c9dc2163a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 4 deletions

View File

@ -186,9 +186,9 @@ let PostThreadItemLoaded = ({
return makeProfileLink(post.author, 'post', urip.rkey, 'reposted-by')
}, [post.uri, post.author])
const repostsTitle = 'Reposts of this post'
const isSelfLabeledPost =
const isModeratedPost =
moderation.decisions.post.cause?.type === 'label' &&
moderation.decisions.post.cause.label.src === currentAccount?.did
moderation.decisions.post.cause.label.src !== currentAccount?.did
const translatorUrl = getTranslatorLink(
record?.text || '',
@ -335,7 +335,7 @@ let PostThreadItemLoaded = ({
postUri={post.uri}
record={record}
showAppealLabelItem={
post.author.did === currentAccount?.did && !isSelfLabeledPost
post.author.did === currentAccount?.did && isModeratedPost
}
style={{
paddingVertical: 6,

View File

@ -34,6 +34,7 @@ import {countLines} from 'lib/strings/helpers'
import {useComposerControls} from '#/state/shell/composer'
import {Shadow, usePostShadow, POST_TOMBSTONE} from '#/state/cache/post-shadow'
import {FeedNameText} from '../util/FeedInfoText'
import {useSession} from '#/state/session'
export function FeedItem({
post,
@ -102,10 +103,14 @@ let FeedItemInner = ({
}): React.ReactNode => {
const {openComposer} = useComposerControls()
const pal = usePalette('default')
const {currentAccount} = useSession()
const href = useMemo(() => {
const urip = new AtUri(post.uri)
return makeProfileLink(post.author, 'post', urip.rkey)
}, [post.uri, post.author])
const isModeratedPost =
moderation.decisions.post.cause?.type === 'label' &&
moderation.decisions.post.cause.label.src !== currentAccount?.did
const replyAuthorDid = useMemo(() => {
if (!record?.reply) {
@ -284,7 +289,14 @@ let FeedItemInner = ({
postEmbed={post.embed}
postAuthor={post.author}
/>
<PostCtrls post={post} record={record} onPressReply={onPressReply} />
<PostCtrls
post={post}
record={record}
onPressReply={onPressReply}
showAppealLabelItem={
post.author.did === currentAccount?.did && isModeratedPost
}
/>
</View>
</View>
</Link>

View File

@ -31,12 +31,14 @@ let PostCtrls = ({
big,
post,
record,
showAppealLabelItem,
style,
onPressReply,
}: {
big?: boolean
post: Shadow<AppBskyFeedDefs.PostView>
record: AppBskyFeedPost.Record
showAppealLabelItem?: boolean
style?: StyleProp<ViewStyle>
onPressReply: () => void
}): React.ReactNode => {
@ -207,6 +209,7 @@ let PostCtrls = ({
postCid={post.cid}
postUri={post.uri}
record={record}
showAppealLabelItem={showAppealLabelItem}
style={styles.ctrlPad}
/>
)}