From 35005da59e93312874beeb2d937c04801ad958d2 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Thu, 25 Apr 2024 15:48:01 -0500 Subject: [PATCH] [Session] Drill `getAgent` into `notifications/utils` (#3703) * Drill into notifications/util (cherry picked from commit 84b535ed54f4fe93debcd198809bb184519c3507) * Thread getAgent instead --------- Co-authored-by: Dan Abramov --- src/state/queries/notifications/feed.ts | 2 ++ src/state/queries/notifications/unread.tsx | 1 + src/state/queries/notifications/util.ts | 22 +++++++++++++--------- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/state/queries/notifications/feed.ts b/src/state/queries/notifications/feed.ts index b4bdd741..6f5dd6b1 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 1c01d71a..445a167c 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 97fc57dc..5029a33c 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> { const uris = new Set()