diff --git a/src/screens/Settings/NotificationSettings/ActivityNotificationSettings.tsx b/src/screens/Settings/NotificationSettings/ActivityNotificationSettings.tsx
index 7f9f3caf53..ea5415b403 100644
--- a/src/screens/Settings/NotificationSettings/ActivityNotificationSettings.tsx
+++ b/src/screens/Settings/NotificationSettings/ActivityNotificationSettings.tsx
@@ -3,7 +3,6 @@ import {type ListRenderItemInfo, Text as RNText, View} from 'react-native'
import {type ModerationOpts} from '@atproto/api'
import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react'
-import {useInfiniteQuery} from '@tanstack/react-query'
import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name'
import {
@@ -13,8 +12,8 @@ import {
import {cleanError} from '#/lib/strings/errors'
import {logger} from '#/logger'
import {useModerationOpts} from '#/state/preferences/moderation-opts'
+import {useActivitySubscriptionsQuery} from '#/state/queries/activity-subscriptions'
import {useNotificationSettingsQuery} from '#/state/queries/notifications/settings'
-import {useAgent} from '#/state/session'
import {List} from '#/view/com/util/List'
import {atoms as a, useTheme} from '#/alf'
import * as Admonition from '#/components/Admonition'
@@ -40,10 +39,9 @@ export function ActivityNotificationSettingsScreen({}: Props) {
const t = useTheme()
const {_} = useLingui()
const {data: preferences, isError} = useNotificationSettingsQuery()
- const agent = useAgent()
+
const moderationOpts = useModerationOpts()
- // TODO: Fetch subscriptions
const {
data: subscriptions,
isPending,
@@ -51,22 +49,11 @@ export function ActivityNotificationSettingsScreen({}: Props) {
isFetchingNextPage,
fetchNextPage,
hasNextPage,
- } = useInfiniteQuery({
- queryKey: ['TEMP'],
- queryFn: async ({pageParam}) => {
- const response = await agent.getFollows({
- actor: agent.assertDid,
- cursor: pageParam,
- })
- return response.data
- },
- initialPageParam: undefined as string | undefined,
- getNextPageParam: prev => prev.cursor,
- })
+ } = useActivitySubscriptionsQuery()
const items = useMemo(() => {
if (!subscriptions) return []
- return subscriptions?.pages.flatMap(page => page.follows)
+ return subscriptions?.pages.flatMap(page => page.subscriptions)
}, [subscriptions])
const renderItem = useCallback(
@@ -138,49 +125,51 @@ export function ActivityNotificationSettingsScreen({}: Props) {
onEndReached={onEndReached}
onEndReachedThreshold={4}
ListEmptyComponent={
-
- {!isPending ? (
-
-
-
-
-
-
- Enable notifications for an account by visiting their
- profile and pressing the{' '}
-
- bell icon
- {' '}
-
- .
-
-
-
-
- By default, only accounts you follow can receive alerts
- from you – this can be changed in{' '}
-
- Settings → Privacy & Security
-
- .
-
-
-
-
-
- ) : (
-
-
-
- )}
-
+ error ? null : (
+
+ {!isPending ? (
+
+
+
+
+
+
+ Enable notifications for an account by visiting their
+ profile and pressing the{' '}
+
+ bell icon
+ {' '}
+
+ .
+
+
+
+
+ By default, only accounts you follow can receive
+ alerts from you – this can be changed in{' '}
+
+ Settings → Privacy & Security
+
+ .
+
+
+
+
+
+ ) : (
+
+
+
+ )}
+
+ )
}
ListFooterComponent={
{
+ const response =
+ await agent.app.bsky.notification.listActivitySubscriptions({
+ cursor: pageParam,
+ })
+ return response.data
+ },
+ initialPageParam: undefined as string | undefined,
+ getNextPageParam: prev => prev.cursor,
+ })
+}
+
export function useNotificationDeclarationQuery() {
const agent = useAgent()
const {currentAccount} = useSession()