about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2024-04-25 15:48:01 -0500
committerGitHub <noreply@github.com>2024-04-25 21:48:01 +0100
commit35005da59e93312874beeb2d937c04801ad958d2 (patch)
tree30bfdfabdce1ad23530281e6973a4314719aaffb
parenta69e56799193ef9b1e5ea9c96bbf0bcc28158d3f (diff)
downloadvoidsky-35005da59e93312874beeb2d937c04801ad958d2.tar.zst
[Session] Drill `getAgent` into `notifications/utils` (#3703)
* Drill into notifications/util

(cherry picked from commit 84b535ed54f4fe93debcd198809bb184519c3507)

* Thread getAgent instead

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
-rw-r--r--src/state/queries/notifications/feed.ts2
-rw-r--r--src/state/queries/notifications/unread.tsx1
-rw-r--r--src/state/queries/notifications/util.ts22
3 files changed, 16 insertions, 9 deletions
diff --git a/src/state/queries/notifications/feed.ts b/src/state/queries/notifications/feed.ts
index b4bdd741e..6f5dd6b19 100644
--- a/src/state/queries/notifications/feed.ts
+++ b/src/state/queries/notifications/feed.ts
@@ -27,6 +27,7 @@ import {
 } from '@tanstack/react-query'
 
 import {useMutedThreads} from '#/state/muted-threads'
+import {getAgent} from '#/state/session'
 import {STALE} from '..'
 import {useModerationOpts} from '../preferences'
 import {embedViewRecordToPostView, getEmbeddedPost} from '../util'
@@ -71,6 +72,7 @@ export function useNotificationFeedQuery(opts?: {enabled?: boolean}) {
       if (!page) {
         page = (
           await fetchPage({
+            getAgent,
             limit: PAGE_SIZE,
             cursor: pageParam,
             queryClient,
diff --git a/src/state/queries/notifications/unread.tsx b/src/state/queries/notifications/unread.tsx
index 1c01d71a5..445a167c3 100644
--- a/src/state/queries/notifications/unread.tsx
+++ b/src/state/queries/notifications/unread.tsx
@@ -144,6 +144,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
 
           // count
           const {page, indexedAt: lastIndexed} = await fetchPage({
+            getAgent,
             cursor: undefined,
             limit: 40,
             queryClient,
diff --git a/src/state/queries/notifications/util.ts b/src/state/queries/notifications/util.ts
index 97fc57dc1..5029a33cc 100644
--- a/src/state/queries/notifications/util.ts
+++ b/src/state/queries/notifications/util.ts
@@ -1,18 +1,19 @@
 import {
-  AppBskyNotificationListNotifications,
-  ModerationOpts,
-  moderateNotification,
+  AppBskyEmbedRecord,
   AppBskyFeedDefs,
+  AppBskyFeedLike,
   AppBskyFeedPost,
   AppBskyFeedRepost,
-  AppBskyFeedLike,
-  AppBskyEmbedRecord,
+  AppBskyNotificationListNotifications,
+  BskyAgent,
+  moderateNotification,
+  ModerationOpts,
 } from '@atproto/api'
-import chunk from 'lodash.chunk'
 import {QueryClient} from '@tanstack/react-query'
-import {getAgent} from '../../session'
+import chunk from 'lodash.chunk'
+
 import {precacheProfile} from '../profile'
-import {NotificationType, FeedNotification, FeedPage} from './types'
+import {FeedNotification, FeedPage, NotificationType} from './types'
 
 const GROUPABLE_REASONS = ['like', 'repost', 'follow']
 const MS_1HR = 1e3 * 60 * 60
@@ -22,6 +23,7 @@ const MS_2DAY = MS_1HR * 48
 // =
 
 export async function fetchPage({
+  getAgent,
   cursor,
   limit,
   queryClient,
@@ -29,6 +31,7 @@ export async function fetchPage({
   threadMutes,
   fetchAdditionalData,
 }: {
+  getAgent: () => BskyAgent
   cursor: string | undefined
   limit: number
   queryClient: QueryClient
@@ -53,7 +56,7 @@ export async function fetchPage({
   // we fetch subjects of notifications (usually posts) now instead of lazily
   // in the UI to avoid relayouts
   if (fetchAdditionalData) {
-    const subjects = await fetchSubjects(notifsGrouped)
+    const subjects = await fetchSubjects(getAgent, notifsGrouped)
     for (const notif of notifsGrouped) {
       if (notif.subjectUri) {
         notif.subject = subjects.get(notif.subjectUri)
@@ -137,6 +140,7 @@ export function groupNotifications(
 }
 
 async function fetchSubjects(
+  getAgent: () => BskyAgent,
   groupedNotifs: FeedNotification[],
 ): Promise<Map<string, AppBskyFeedDefs.PostView>> {
   const uris = new Set<string>()