Update FeedItem.tsx
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import React, {memo, useEffect, useMemo, useState} from 'react'
|
import React, {memo, ReactElement, useEffect, useMemo, useState} from 'react'
|
||||||
import {
|
import {
|
||||||
Animated,
|
Animated,
|
||||||
Pressable,
|
Pressable,
|
||||||
@@ -154,7 +154,22 @@ let FeedItem = ({
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
let action = ''
|
let formattedCount = authors.length > 1 ? formatCount(authors.length - 1) : ''
|
||||||
|
|
||||||
|
let author = (
|
||||||
|
<TextLink
|
||||||
|
key={authors[0].href}
|
||||||
|
style={[pal.text, s.bold]}
|
||||||
|
href={authors[0].href}
|
||||||
|
text={sanitizeDisplayName(
|
||||||
|
authors[0].profile.displayName || authors[0].profile.handle,
|
||||||
|
)}
|
||||||
|
disableMismatchWarning
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
|
||||||
|
let action: ReactElement
|
||||||
|
let actionPlural: ReactElement
|
||||||
let icon = (
|
let icon = (
|
||||||
<HeartIconFilled
|
<HeartIconFilled
|
||||||
size="xl"
|
size="xl"
|
||||||
@@ -164,21 +179,73 @@ let FeedItem = ({
|
|||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
|
|
||||||
if (item.type === 'post-like') {
|
if (item.type === 'post-like') {
|
||||||
action = _(msg`liked your post`)
|
action = <Trans>{author} liked your post</Trans>
|
||||||
|
actionPlural = (
|
||||||
|
<Trans>
|
||||||
|
{author} and{' '}
|
||||||
|
<Text style={[pal.text, s.bold]}>
|
||||||
|
<Plural
|
||||||
|
value={authors.length - 1}
|
||||||
|
one={`${formattedCount} other`}
|
||||||
|
other={`${formattedCount} others`}
|
||||||
|
/>
|
||||||
|
</Text>{' '}
|
||||||
|
liked your post
|
||||||
|
</Trans>
|
||||||
|
)
|
||||||
} else if (item.type === 'repost') {
|
} else if (item.type === 'repost') {
|
||||||
action = _(msg`reposted your post`)
|
action = <Trans>{author} reposted your post</Trans>
|
||||||
|
actionPlural = (
|
||||||
|
<Trans>
|
||||||
|
{author} and{' '}
|
||||||
|
<Text style={[pal.text, s.bold]}>
|
||||||
|
<Plural
|
||||||
|
value={authors.length - 1}
|
||||||
|
one={`${formattedCount} other`}
|
||||||
|
other={`${formattedCount} others`}
|
||||||
|
/>
|
||||||
|
</Text>{' '}
|
||||||
|
reposted your post
|
||||||
|
</Trans>
|
||||||
|
)
|
||||||
icon = <RepostIcon size="xl" style={{color: t.palette.positive_600}} />
|
icon = <RepostIcon size="xl" style={{color: t.palette.positive_600}} />
|
||||||
} else if (item.type === 'follow') {
|
} else if (item.type === 'follow') {
|
||||||
action = _(msg`followed you`)
|
action = <Trans>{author} followed you</Trans>
|
||||||
|
actionPlural = (
|
||||||
|
<Trans>
|
||||||
|
{author} and{' '}
|
||||||
|
<Text style={[pal.text, s.bold]}>
|
||||||
|
<Plural
|
||||||
|
value={authors.length - 1}
|
||||||
|
one={`${formattedCount} other`}
|
||||||
|
other={`${formattedCount} others`}
|
||||||
|
/>
|
||||||
|
</Text>{' '}
|
||||||
|
followed you
|
||||||
|
</Trans>
|
||||||
|
)
|
||||||
icon = <PersonPlusIcon size="xl" style={{color: t.palette.primary_500}} />
|
icon = <PersonPlusIcon size="xl" style={{color: t.palette.primary_500}} />
|
||||||
} else if (item.type === 'feedgen-like') {
|
} else if (item.type === 'feedgen-like') {
|
||||||
action = _(msg`liked your custom feed`)
|
action = <Trans>{author} liked your custom feed</Trans>
|
||||||
|
actionPlural = (
|
||||||
|
<Trans>
|
||||||
|
{author} and{' '}
|
||||||
|
<Text style={[pal.text, s.bold]}>
|
||||||
|
<Plural
|
||||||
|
value={authors.length - 1}
|
||||||
|
one={`${formattedCount} other`}
|
||||||
|
other={`${formattedCount} others`}
|
||||||
|
/>
|
||||||
|
</Text>{' '}
|
||||||
|
liked your custom feed
|
||||||
|
</Trans>
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
let formattedCount = authors.length > 1 ? formatCount(authors.length - 1) : ''
|
|
||||||
return (
|
return (
|
||||||
<Link
|
<Link
|
||||||
testID={`feedItem-by-${item.notification.author.handle}`}
|
testID={`feedItem-by-${item.notification.author.handle}`}
|
||||||
@@ -242,30 +309,7 @@ let FeedItem = ({
|
|||||||
/>
|
/>
|
||||||
<ExpandedAuthorsList visible={isAuthorsExpanded} authors={authors} />
|
<ExpandedAuthorsList visible={isAuthorsExpanded} authors={authors} />
|
||||||
<Text style={[styles.meta, pal.text]}>
|
<Text style={[styles.meta, pal.text]}>
|
||||||
<Trans context="notification">
|
{authors.length > 1 ? actionPlural : action}
|
||||||
<TextLink
|
|
||||||
key={authors[0].href}
|
|
||||||
style={[pal.text, s.bold]}
|
|
||||||
href={authors[0].href}
|
|
||||||
text={sanitizeDisplayName(
|
|
||||||
authors[0].profile.displayName || authors[0].profile.handle,
|
|
||||||
)}
|
|
||||||
disableMismatchWarning
|
|
||||||
/>
|
|
||||||
{authors.length > 1 ? (
|
|
||||||
<Trans context="notification">
|
|
||||||
<Text style={[pal.text]}> and </Text>
|
|
||||||
<Text style={[pal.text, s.bold]}>
|
|
||||||
<Plural
|
|
||||||
value={authors.length - 1}
|
|
||||||
one={`${formattedCount} other`}
|
|
||||||
other={`${formattedCount} others`}
|
|
||||||
/>
|
|
||||||
</Text>
|
|
||||||
</Trans>
|
|
||||||
) : undefined}
|
|
||||||
<Text style={[pal.text]}> {action}</Text>
|
|
||||||
</Trans>
|
|
||||||
<TimeElapsed timestamp={item.notification.indexedAt}>
|
<TimeElapsed timestamp={item.notification.indexedAt}>
|
||||||
{({timeElapsed}) => (
|
{({timeElapsed}) => (
|
||||||
<Text
|
<Text
|
||||||
|
|||||||
Reference in New Issue
Block a user