diff options
Diffstat (limited to 'src/view/com/notifications')
-rw-r--r-- | src/view/com/notifications/FeedItem.tsx | 24 | ||||
-rw-r--r-- | src/view/com/notifications/InviteAccepter.tsx | 96 |
2 files changed, 2 insertions, 118 deletions
diff --git a/src/view/com/notifications/FeedItem.tsx b/src/view/com/notifications/FeedItem.tsx index c578b7120..739487859 100644 --- a/src/view/com/notifications/FeedItem.tsx +++ b/src/view/com/notifications/FeedItem.tsx @@ -14,7 +14,6 @@ import {UserAvatar} from '../util/UserAvatar' import {ErrorMessage} from '../util/error/ErrorMessage' import {Post} from '../post/Post' import {Link} from '../util/Link' -import {InviteAccepter} from './InviteAccepter' import {usePalette} from '../../lib/hooks/usePalette' const MAX_AUTHORS = 8 @@ -26,7 +25,7 @@ export const FeedItem = observer(function FeedItem({ }) { const pal = usePalette('default') const itemHref = useMemo(() => { - if (item.isUpvote || item.isRepost || item.isTrend) { + if (item.isUpvote || item.isRepost) { const urip = new AtUri(item.subjectUri) return `/profile/${urip.host}/post/${urip.rkey}` } else if (item.isFollow || item.isAssertion) { @@ -82,10 +81,6 @@ export const FeedItem = observer(function FeedItem({ action = 'reposted your post' icon = 'retweet' iconStyle = [s.green3] - } else if (item.isTrend) { - action = 'Your post is trending with' - icon = 'arrow-trend-up' - iconStyle = [s.red3] } else if (item.isReply) { action = 'replied to your post' icon = ['far', 'comment'] @@ -93,10 +88,6 @@ export const FeedItem = observer(function FeedItem({ action = 'followed you' icon = 'user-plus' iconStyle = [s.blue3] - } else if (item.isInvite) { - icon = 'users' - iconStyle = [s.blue3] - action = 'invited you to join their scene' } else { return <></> } @@ -173,9 +164,6 @@ export const FeedItem = observer(function FeedItem({ ) : undefined} </View> <View style={styles.meta}> - {item.isTrend && ( - <Text style={[styles.metaItem, pal.text]}>{action}</Text> - )} <Link key={authors[0].href} style={styles.metaItem} @@ -193,25 +181,17 @@ export const FeedItem = observer(function FeedItem({ </Text> </> ) : undefined} - {!item.isTrend && ( - <Text style={[styles.metaItem, pal.text]}>{action}</Text> - )} <Text style={[styles.metaItem, pal.textLight]}> {ago(item.indexedAt)} </Text> </View> - {item.isUpvote || item.isRepost || item.isTrend ? ( + {item.isUpvote || item.isRepost ? ( <AdditionalPostText additionalPost={item.additionalPost} /> ) : ( <></> )} </View> </View> - {item.isInvite && ( - <View style={styles.addedContainer}> - <InviteAccepter item={item} /> - </View> - )} </Link> ) }) diff --git a/src/view/com/notifications/InviteAccepter.tsx b/src/view/com/notifications/InviteAccepter.tsx deleted file mode 100644 index a8789b171..000000000 --- a/src/view/com/notifications/InviteAccepter.tsx +++ /dev/null @@ -1,96 +0,0 @@ -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' -import LinearGradient from 'react-native-linear-gradient' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import * as apilib from '../../../state/lib/api' -import {NotificationsViewItemModel} from '../../../state/models/notifications-view' -import {ConfirmModal} from '../../../state/models/shell-ui' -import {useStores} from '../../../state' -import {ProfileCard} from '../profile/ProfileCard' -import * as Toast from '../util/Toast' -import {Text} from '../util/text/Text' -import {s, colors, gradients} from '../../lib/styles' - -export function InviteAccepter({item}: {item: NotificationsViewItemModel}) { - const store = useStores() - // Using default import (React.use...) instead of named import (use...) to be able to mock store's data in jest environment - const [confirmationUri, setConfirmationUri] = React.useState<string>('') - const isMember = - confirmationUri !== '' || store.me.memberships?.isMemberOf(item.author.did) - const onPressAccept = async () => { - store.shell.openModal( - new ConfirmModal( - 'Join this scene?', - () => ( - <View> - <View style={styles.profileCardContainer}> - <ProfileCard - did={item.author.did} - handle={item.author.handle} - displayName={item.author.displayName} - avatar={item.author.avatar} - /> - </View> - </View> - ), - onPressConfirmAccept, - ), - ) - } - const onPressConfirmAccept = async () => { - const uri = await apilib.acceptSceneInvite(store, { - originator: { - did: item.author.did, - declarationCid: item.author.declaration.cid, - }, - assertion: { - uri: item.uri, - cid: item.cid, - }, - }) - store.me.refreshMemberships() - Toast.show('Invite accepted') - setConfirmationUri(uri) - } - return ( - <View style={styles.container}> - {!isMember ? ( - <TouchableOpacity testID="acceptInviteButton" onPress={onPressAccept}> - <LinearGradient - colors={[gradients.primary.start, gradients.primary.end]} - start={{x: 0, y: 0}} - end={{x: 1, y: 1}} - style={[styles.btn]}> - <Text style={[s.white, s.bold, s.f16]}>Accept Invite</Text> - </LinearGradient> - </TouchableOpacity> - ) : ( - <View testID="inviteAccepted" style={styles.inviteAccepted}> - <FontAwesomeIcon icon="check" size={14} style={s.mr5} /> - <Text style={[s.gray5, s.f15]}>Invite accepted</Text> - </View> - )} - </View> - ) -} - -const styles = StyleSheet.create({ - container: { - flexDirection: 'row', - }, - btn: { - borderRadius: 32, - paddingHorizontal: 18, - paddingVertical: 8, - backgroundColor: colors.gray1, - }, - profileCardContainer: { - borderWidth: 1, - borderColor: colors.gray3, - borderRadius: 6, - }, - inviteAccepted: { - flexDirection: 'row', - alignItems: 'center', - }, -}) |