Handle push notifications for DMs (#3895)

* add some better handling for notifications

prep merge

move `useNotificationsListener` into shell

progress

better structure

only show messages notifications while using app if it is the current account

progress

only emit on native

current chat emitter

only show alerts for the current chat

type

add logs

setup handlers

* remove event emitter

* just needs cleanup

* oops

* remove unnecessary `queryClient` param

* few fixes

* cleanup

* nit

* remove folds

* remove comment

* simplify if

* add back invalidate

* comment out other navigations for now

* rename type

* handle various navigation cases

* push to conversation from notification

* update badge in all cases except `chat-message`

* ensure no duplicate notifications

* rm unused `animationOnReplace`

* revert to using `goBack` in the conversation header

* add todo comment
This commit is contained in:
Hailey 2024-05-09 10:04:05 -07:00 committed by GitHub
parent 1341845537
commit 17e3b946cb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 274 additions and 109 deletions

View file

@ -20,6 +20,7 @@ import {
useSetDrawerOpen,
} from '#/state/shell'
import {useCloseAnyActiveElement} from '#/state/util'
import {useNotificationsHandler} from 'lib/hooks/useNotificationHandler'
import {usePalette} from 'lib/hooks/usePalette'
import * as notifications from 'lib/notifications/notifications'
import {isStateAtTabRoot} from 'lib/routes/helpers'
@ -63,6 +64,8 @@ function ShellInner() {
// start undefined
const currentAccountDid = React.useRef<string | undefined>(undefined)
useNotificationsHandler()
React.useEffect(() => {
let listener = {remove() {}}
if (isAndroid) {