fix: attempt to resolve notification indicator issue

This commit is contained in:
codytseng
2025-05-21 21:53:42 +08:00
parent 5c39413420
commit 2e4602e973
2 changed files with 12 additions and 3 deletions

View File

@@ -130,6 +130,7 @@ export function NostrProvider({ children }: { children: React.ReactNode }) {
setProfileEvent(null)
setNsec(null)
setFavoriteRelaysEvent(null)
setNotificationsSeenAt(-1)
if (!account) {
return
}
@@ -147,6 +148,12 @@ export function NostrProvider({ children }: { children: React.ReactNode }) {
} else {
setNcryptsec(null)
}
const storedNotificationsSeenAt = storage.getLastReadNotificationTime(account.pubkey)
if (storedNotificationsSeenAt) {
setNotificationsSeenAt(storedNotificationsSeenAt)
}
const [
storedRelayListEvent,
storedProfileEvent,
@@ -251,15 +258,12 @@ export function NostrProvider({ children }: { children: React.ReactNode }) {
await indexedDb.putReplaceableEvent(favoriteRelaysEvent)
}
const storedNotificationsSeenAt = storage.getLastReadNotificationTime(account.pubkey)
if (
notificationsSeenAtEvent &&
notificationsSeenAtEvent.created_at > storedNotificationsSeenAt
) {
setNotificationsSeenAt(notificationsSeenAtEvent.created_at)
storage.setLastReadNotificationTime(account.pubkey, notificationsSeenAtEvent.created_at)
} else {
setNotificationsSeenAt(storedNotificationsSeenAt)
}
client.initUserIndexFromFollowings(account.pubkey, controller.signal)

View File

@@ -135,6 +135,11 @@ export function NotificationProvider({ children }: { children: React.ReactNode }
const clearNewNotifications = async () => {
if (!pubkey) return
if (subCloserRef.current) {
subCloserRef.current.close()
subCloserRef.current = null
}
setNewNotificationIds(new Set())
await updateNotificationsSeenAt()
}