diff --git a/src/components/activity-notifications/SubscribeProfileDialog.tsx b/src/components/activity-notifications/SubscribeProfileDialog.tsx index 8a6b8314cd..6731cb3038 100644 --- a/src/components/activity-notifications/SubscribeProfileDialog.tsx +++ b/src/components/activity-notifications/SubscribeProfileDialog.tsx @@ -2,10 +2,10 @@ import {useMemo, useState} from 'react' import {View} from 'react-native' import { type AppBskyNotificationDefs, - type AppBskyNotificationListActivitySubscriptions, type ModerationOpts, type Un$Typed, } from '@atproto/api' +import {type DidString} from '@atproto/syntax' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' @@ -20,7 +20,7 @@ import {cleanError} from '#/lib/strings/errors' import {sanitizeHandle} from '#/lib/strings/handles' import {updateProfileShadow} from '#/state/cache/profile-shadow' import {RQKEY_getActivitySubscriptions} from '#/state/queries/activity-subscriptions' -import {useAgent} from '#/state/session' +import {useAppviewClient} from '#/state/session' import {atoms as a, platform, useTheme, web} from '#/alf' import {Admonition} from '#/components/Admonition' import { @@ -37,6 +37,7 @@ import * as Toast from '#/components/Toast' import {Text} from '#/components/Typography' import {useAnalytics} from '#/analytics' import {IS_WEB} from '#/env' +import {app} from '#/lexicons' import type * as bsky from '#/types/bsky' export function SubscribeProfileDialog({ @@ -74,7 +75,7 @@ function DialogInner({ const ax = useAnalytics() const {_} = useLingui() const t = useTheme() - const agent = useAgent() + const client = useAppviewClient() const control = Dialog.useDialogContext() const queryClient = useQueryClient() const initialState = parseActivitySubscription( @@ -122,8 +123,9 @@ function DialogInner({ mutationFn: async ( activitySubscription: Un$Typed, ) => { - await agent.app.bsky.notification.putActivitySubscription({ - subject: profile.did, + await client.call(app.bsky.notification.putActivitySubscription, { + // the profile view carries an already-resolved did + subject: profile.did as DidString, activitySubscription, }) }, @@ -148,7 +150,7 @@ function DialogInner({ queryClient.setQueryData( RQKEY_getActivitySubscriptions, ( - old?: InfiniteData, + old?: InfiniteData, ) => { if (!old) return old return { diff --git a/src/state/queries/activity-subscriptions.ts b/src/state/queries/activity-subscriptions.ts index 30964fe7d6..e6dcbd8829 100644 --- a/src/state/queries/activity-subscriptions.ts +++ b/src/state/queries/activity-subscriptions.ts @@ -1,7 +1,6 @@ import { type AppBskyActorDefs, type AppBskyNotificationDeclaration, - type AppBskyNotificationListActivitySubscriptions, } from '@atproto/api' import {t} from '@lingui/core/macro' import { @@ -13,23 +12,23 @@ import { useQueryClient, } from '@tanstack/react-query' -import {useAgent, useSession} from '#/state/session' +import {useAgent, useAppviewClient, useSession} from '#/state/session' import * as Toast from '#/components/Toast' +import {app} from '#/lexicons' export const RQKEY_getActivitySubscriptions = ['activity-subscriptions'] export const RQKEY_getNotificationDeclaration = ['notification-declaration'] export function useActivitySubscriptionsQuery() { - const agent = useAgent() + const client = useAppviewClient() return useInfiniteQuery({ queryKey: RQKEY_getActivitySubscriptions, queryFn: async ({pageParam}) => { - const response = - await agent.app.bsky.notification.listActivitySubscriptions({ - cursor: pageParam, - }) - return response.data + return await client.call( + app.bsky.notification.listActivitySubscriptions, + {cursor: pageParam}, + ) }, initialPageParam: undefined as string | undefined, getNextPageParam: prev => prev.cursor, @@ -111,7 +110,7 @@ export function* findAllProfilesInQueryData( did: string, ): Generator { const queryDatas = queryClient.getQueriesData< - InfiniteData + InfiniteData >({ queryKey: RQKEY_getActivitySubscriptions, })