import {StyleSheet, View} from 'react-native'
import {AppBskyFeedDefs, type ModerationDecision} from '@atproto/api'
import {msg} from '@lingui/core/macro'
import {useLingui} from '@lingui/react'
import {Trans} from '@lingui/react/macro'
import {isReasonFeedSource, type ReasonFeedSource} from '#/lib/api/feed/types'
import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name'
import {makeProfileLink} from '#/lib/routes/links'
import {useSession} from '#/state/session'
import {atoms as a, useTheme} from '#/alf'
import {Pin_Stroke2_Corner0_Rounded as PinIcon} from '#/components/icons/Pin'
import {Repost_Stroke2_Corner3_Rounded as RepostIcon} from '#/components/icons/Repost'
import {Link} from '#/components/Link'
import {ProfileHoverCard} from '#/components/ProfileHoverCard'
import {Text} from '#/components/Typography'
import {FeedNameText} from '../util/FeedInfoText'
export function PostFeedReason({
reason,
moderation,
onOpenReposter,
}: {
reason:
| ReasonFeedSource
| AppBskyFeedDefs.ReasonRepost
| AppBskyFeedDefs.ReasonPin
| {[k: string]: unknown; $type: string}
moderation?: ModerationDecision
onOpenReposter?: () => void
}) {
const t = useTheme()
const {_} = useLingui()
const {currentAccount} = useSession()
if (isReasonFeedSource(reason)) {
return (
From{' '}
)
}
if (AppBskyFeedDefs.isReasonRepost(reason)) {
const isOwner = reason.by.did === currentAccount?.did
const reskeeter = createSanitizedDisplayName(
reason.by,
false,
moderation?.ui('displayName'),
)
return (
{isOwner ? (
Reposted by you
) : (
Reposted by {reskeeter}
)}
)
}
if (AppBskyFeedDefs.isReasonPin(reason)) {
return (
Pinned
)
}
}
const styles = StyleSheet.create({
includeReason: {
flexDirection: 'row',
alignItems: 'center',
marginBottom: 2,
marginLeft: -16,
},
})