Move the current agent to a global and reset RQ queries on agent change (#1946)

This commit is contained in:
Paul Frazee 2023-11-16 18:26:22 -08:00 committed by GitHub
parent 3043b32468
commit 357c752a21
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
40 changed files with 218 additions and 260 deletions

View file

@ -1,7 +1,7 @@
import React from 'react'
import * as Notifications from 'expo-notifications'
import BroadcastChannel from '#/lib/broadcast'
import {useSession} from '#/state/session'
import {useSession, getAgent} from '#/state/session'
import {useModerationOpts} from '../preferences'
import {shouldFilterNotif} from './util'
import {isNative} from '#/platform/detection'
@ -25,7 +25,7 @@ const apiContext = React.createContext<ApiContext>({
})
export function Provider({children}: React.PropsWithChildren<{}>) {
const {hasSession, agent} = useSession()
const {hasSession} = useSession()
const moderationOpts = useModerationOpts()
const [numUnread, setNumUnread] = React.useState('')
@ -60,7 +60,9 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
return {
async markAllRead() {
// update server
await agent.updateSeenNotifications(lastSyncRef.current.toISOString())
await getAgent().updateSeenNotifications(
lastSyncRef.current.toISOString(),
)
// update & broadcast
setNumUnread('')
@ -69,7 +71,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
async checkUnread() {
// count
const res = await agent.listNotifications({limit: 40})
const res = await getAgent().listNotifications({limit: 40})
const filtered = res.data.notifications.filter(
notif => !notif.isRead && !shouldFilterNotif(notif, moderationOpts),
)
@ -94,7 +96,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
broadcast.postMessage({event: num})
},
}
}, [setNumUnread, agent, moderationOpts])
}, [setNumUnread, moderationOpts])
checkUnreadRef.current = api.checkUnread
return (