A couple notifications fixes (#2327)

* Clear the app badge notif count on markallread

* Fix like notifications on custom feeds
zio/stable
Paul Frazee 2023-12-27 08:47:45 -08:00 committed by GitHub
parent 3b240db0c0
commit 6e001dbf1c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 3 deletions

View File

@ -89,6 +89,9 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
// update & broadcast // update & broadcast
setNumUnread('') setNumUnread('')
broadcast.postMessage({event: ''}) broadcast.postMessage({event: ''})
if (isNative) {
Notifications.setBadgeCountAsync(0)
}
}, },
async checkUnread({invalidate}: {invalidate?: boolean} = {}) { async checkUnread({invalidate}: {invalidate?: boolean} = {}) {

View File

@ -156,7 +156,7 @@ async function fetchSubjects(
): Promise<Map<string, AppBskyFeedDefs.PostView>> { ): Promise<Map<string, AppBskyFeedDefs.PostView>> {
const uris = new Set<string>() const uris = new Set<string>()
for (const notif of groupedNotifs) { for (const notif of groupedNotifs) {
if (notif.subjectUri) { if (notif.subjectUri && !notif.subjectUri.includes('feed.generator')) {
uris.add(notif.subjectUri) uris.add(notif.subjectUri)
} }
} }
@ -216,6 +216,8 @@ function getSubjectUri(
? notif.record.subject?.uri ? notif.record.subject?.uri
: undefined : undefined
} }
} else if (type === 'feedgen-like') {
return notif.reasonSubject
} }
} }

View File

@ -42,6 +42,7 @@ import {TimeElapsed} from '../util/TimeElapsed'
import {isWeb} from 'platform/detection' import {isWeb} from 'platform/detection'
import {Trans, msg} from '@lingui/macro' import {Trans, msg} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {FeedSourceCard} from '../feeds/FeedSourceCard'
const MAX_AUTHORS = 5 const MAX_AUTHORS = 5
@ -112,7 +113,7 @@ let FeedItem = ({
] ]
}, [item, moderationOpts]) }, [item, moderationOpts])
if (item.subjectUri && !item.subject) { if (item.subjectUri && !item.subject && item.type !== 'feedgen-like') {
// don't render anything if the target post was deleted or unfindable // don't render anything if the target post was deleted or unfindable
return <View /> return <View />
} }
@ -166,7 +167,7 @@ let FeedItem = ({
iconStyle = [s.blue3 as FontAwesomeIconStyle] iconStyle = [s.blue3 as FontAwesomeIconStyle]
} else if (item.type === 'feedgen-like') { } else if (item.type === 'feedgen-like') {
action = `liked your custom feed${ action = `liked your custom feed${
item.subjectUri ? ` '${new AtUri(item.subjectUri).rkey}}'` : '' item.subjectUri ? ` '${new AtUri(item.subjectUri).rkey}'` : ''
}` }`
icon = 'HeartIconSolid' icon = 'HeartIconSolid'
iconStyle = [ iconStyle = [
@ -256,6 +257,13 @@ let FeedItem = ({
{item.type === 'post-like' || item.type === 'repost' ? ( {item.type === 'post-like' || item.type === 'repost' ? (
<AdditionalPostText post={item.subject} /> <AdditionalPostText post={item.subject} />
) : null} ) : null}
{item.type === 'feedgen-like' && item.subjectUri ? (
<FeedSourceCard
feedUri={item.subjectUri}
style={[pal.view, pal.border, styles.feedcard]}
showLikes
/>
) : null}
</View> </View>
</Link> </Link>
) )
@ -496,6 +504,12 @@ const styles = StyleSheet.create({
marginLeft: 2, marginLeft: 2,
opacity: 0.8, opacity: 0.8,
}, },
feedcard: {
borderWidth: 1,
borderRadius: 8,
paddingVertical: 12,
marginTop: 6,
},
addedContainer: { addedContainer: {
paddingTop: 4, paddingTop: 4,