[APP-702] Render Custom Feed likes properly (#980)

* render href for custom feed likes properly

* fix custom feed text in push notification

* fix custom feed accessibility title

* fix lint
zio/stable
Ansh 2023-07-05 17:56:26 -07:00 committed by GitHub
parent 99aa38e3ca
commit fe32730025
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 4 deletions

View File

@ -1,5 +1,5 @@
import notifee, {EventType} from '@notifee/react-native'
import {AppBskyEmbedImages} from '@atproto/api'
import {AppBskyEmbedImages, AtUri} from '@atproto/api'
import {RootStoreModel} from 'state/models/root-store'
import {NotificationsFeedItemModel} from 'state/models/feeds/notifications'
import {enforceLen} from 'lib/strings/helpers'
@ -63,6 +63,9 @@ export function displayNotificationFromModel(
} else if (notification.isFollow) {
title = 'New follower!'
body = `${author} has followed you`
} else if (notification.isCustomFeedLike) {
title = `${author} liked your custom feed`
body = `${new AtUri(notification.subjectUri).rkey}`
} else {
return
}

View File

@ -145,7 +145,7 @@ export class NotificationsFeedItemModel {
}
get isLike() {
return this.reason === 'like'
return this.reason === 'like' && !this.isCustomFeedLike // the reason property for custom feed likes is also 'like'
}
get isRepost() {
@ -168,6 +168,12 @@ export class NotificationsFeedItemModel {
return this.reason === 'follow'
}
get isCustomFeedLike() {
return (
this.reason === 'like' && this.reasonSubject?.includes('feed.generator')
)
}
get needsAdditionalData() {
if (
this.isLike ||

View File

@ -65,6 +65,9 @@ export const FeedItem = observer(function ({
} else if (item.isReply) {
const urip = new AtUri(item.uri)
return `/profile/${urip.host}/post/${urip.rkey}`
} else if (item.isCustomFeedLike) {
const urip = new AtUri(item.subjectUri)
return `/profile/${urip.host}/feed/${urip.rkey}`
}
return ''
}, [item])
@ -75,6 +78,8 @@ export const FeedItem = observer(function ({
return item.author.handle
} else if (item.isReply) {
return 'Post'
} else if (item.isCustomFeedLike) {
return 'Custom Feed'
}
}, [item])
@ -160,6 +165,13 @@ export const FeedItem = observer(function ({
action = 'followed you'
icon = 'user-plus'
iconStyle = [s.blue3 as FontAwesomeIconStyle]
} else if (item.isCustomFeedLike) {
action = `liked your custom feed '${new AtUri(item.subjectUri).rkey}'`
icon = 'HeartIconSolid'
iconStyle = [
s.red3 as FontAwesomeIconStyle,
{position: 'relative', top: -4},
]
} else {
return null
}

View File

@ -109,7 +109,7 @@ const styles = isDesktopWeb
paddingHorizontal: 10,
borderBottomWidth: 3,
borderBottomColor: 'transparent',
justifyContent: 'center'
justifyContent: 'center',
},
})
: StyleSheet.create({
@ -130,6 +130,6 @@ const styles = isDesktopWeb
paddingHorizontal: isMobileWeb ? 8 : 0,
borderBottomWidth: 3,
borderBottomColor: 'transparent',
justifyContent: 'center'
justifyContent: 'center',
},
})