migrate trending discovery queries to the appview client

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Samuel Newman
2026-08-03 14:46:55 +03:00
parent 1318347053
commit 099921b9c5
5 changed files with 42 additions and 49 deletions
@@ -7,14 +7,15 @@ import {
import {getContentLanguages} from '#/state/preferences/languages' import {getContentLanguages} from '#/state/preferences/languages'
import {STALE} from '#/state/queries' import {STALE} from '#/state/queries'
import {usePreferencesQuery} from '#/state/queries/preferences' import {usePreferencesQuery} from '#/state/queries/preferences'
import {useAgent} from '#/state/session' import {useAppviewClient} from '#/state/session'
import {app} from '#/lexicons'
export const DEFAULT_LIMIT = 15 export const DEFAULT_LIMIT = 15
export const createGetSuggestedFeedsQueryKey = () => ['suggested-feeds'] export const createGetSuggestedFeedsQueryKey = () => ['suggested-feeds']
export function useGetSuggestedFeedsQuery({enabled}: {enabled?: boolean}) { export function useGetSuggestedFeedsQuery({enabled}: {enabled?: boolean}) {
const agent = useAgent() const client = useAppviewClient()
const {data: preferences} = usePreferencesQuery() const {data: preferences} = usePreferencesQuery()
const savedFeeds = preferences?.savedFeeds const savedFeeds = preferences?.savedFeeds
@@ -24,7 +25,8 @@ export function useGetSuggestedFeedsQuery({enabled}: {enabled?: boolean}) {
queryKey: createGetSuggestedFeedsQueryKey(), queryKey: createGetSuggestedFeedsQueryKey(),
queryFn: async () => { queryFn: async () => {
const contentLangs = getContentLanguages().join(',') const contentLangs = getContentLanguages().join(',')
const {data} = await agent.app.bsky.unspecced.getSuggestedFeeds( const data = await client.call(
app.bsky.unspecced.getSuggestedFeeds,
{ {
limit: DEFAULT_LIMIT, limit: DEFAULT_LIMIT,
}, },
@@ -1,7 +1,3 @@
import {
type AppBskyActorDefs,
type AppBskyUnspeccedGetSuggestedOnboardingUsers,
} from '@atproto/api'
import {type QueryClient, useQuery} from '@tanstack/react-query' import {type QueryClient, useQuery} from '@tanstack/react-query'
import {createBskyTopicsHeader} from '#/lib/api/feed/utils' import {createBskyTopicsHeader} from '#/lib/api/feed/utils'
@@ -9,7 +5,8 @@ import {logger} from '#/logger'
import {getContentLanguages} from '#/state/preferences/languages' import {getContentLanguages} from '#/state/preferences/languages'
import {STALE} from '#/state/queries' import {STALE} from '#/state/queries'
import {usePreferencesQuery} from '#/state/queries/preferences' import {usePreferencesQuery} from '#/state/queries/preferences'
import {useAgent} from '#/state/session' import {useAppviewClient} from '#/state/session'
import {app} from '#/lexicons'
export type QueryProps = { export type QueryProps = {
category?: string | null category?: string | null
@@ -30,7 +27,7 @@ export const createGetSuggestedOnboardingUsersQueryKey = (
] ]
export function useGetSuggestedOnboardingUsersQuery(props: QueryProps) { export function useGetSuggestedOnboardingUsersQuery(props: QueryProps) {
const agent = useAgent() const client = useAppviewClient()
const {data: preferences} = usePreferencesQuery() const {data: preferences} = usePreferencesQuery()
return useQuery({ return useQuery({
@@ -42,7 +39,8 @@ export function useGetSuggestedOnboardingUsersQuery(props: QueryProps) {
const overrideInterests = props.overrideInterests.join(',') const overrideInterests = props.overrideInterests.join(',')
const {data} = await agent.app.bsky.unspecced.getSuggestedOnboardingUsers( const data = await client.call(
app.bsky.unspecced.getSuggestedOnboardingUsers,
{ {
category: props.category ?? undefined, category: props.category ?? undefined,
limit: props.limit || 10, limit: props.limit || 10,
@@ -66,9 +64,9 @@ export function useGetSuggestedOnboardingUsersQuery(props: QueryProps) {
export function* findAllProfilesInQueryData( export function* findAllProfilesInQueryData(
queryClient: QueryClient, queryClient: QueryClient,
did: string, did: string,
): Generator<AppBskyActorDefs.ProfileView, void> { ): Generator<app.bsky.actor.defs.ProfileView, void> {
const responses = const responses =
queryClient.getQueriesData<AppBskyUnspeccedGetSuggestedOnboardingUsers.OutputSchema>( queryClient.getQueriesData<app.bsky.unspecced.getSuggestedOnboardingUsers.$OutputBody>(
{ {
queryKey: [getSuggestedOnboardingUsersQueryKeyRoot], queryKey: [getSuggestedOnboardingUsersQueryKeyRoot],
}, },
@@ -1,7 +1,3 @@
import {
type AppBskyActorDefs,
type AppBskyUnspeccedGetSuggestedUsersForDiscover,
} from '@atproto/api'
import {type QueryClient, useQuery} from '@tanstack/react-query' import {type QueryClient, useQuery} from '@tanstack/react-query'
import { import {
@@ -12,7 +8,8 @@ import {logger} from '#/logger'
import {getContentLanguages} from '#/state/preferences/languages' import {getContentLanguages} from '#/state/preferences/languages'
import {STALE} from '#/state/queries' import {STALE} from '#/state/queries'
import {usePreferencesQuery} from '#/state/queries/preferences' import {usePreferencesQuery} from '#/state/queries/preferences'
import {useAgent} from '#/state/session' import {useAppviewClient} from '#/state/session'
import {app} from '#/lexicons'
export type QueryProps = { export type QueryProps = {
limit?: number limit?: number
@@ -25,7 +22,7 @@ export const createGetSuggestedUsersForDiscoverQueryKey = (props: {
}) => [getSuggestedUsersForDiscoverQueryKeyRoot, props.limit] }) => [getSuggestedUsersForDiscoverQueryKeyRoot, props.limit]
export function useGetSuggestedUsersForDiscoverQuery(props: QueryProps = {}) { export function useGetSuggestedUsersForDiscoverQuery(props: QueryProps = {}) {
const agent = useAgent() const client = useAppviewClient()
const {data: preferences} = usePreferencesQuery() const {data: preferences} = usePreferencesQuery()
return useQuery({ return useQuery({
@@ -35,8 +32,8 @@ export function useGetSuggestedUsersForDiscoverQuery(props: QueryProps = {}) {
const contentLangs = getContentLanguages().join(',') const contentLangs = getContentLanguages().join(',')
const userInterests = aggregateUserInterests(preferences) const userInterests = aggregateUserInterests(preferences)
const {data} = const data = await client.call(
await agent.app.bsky.unspecced.getSuggestedUsersForDiscover( app.bsky.unspecced.getSuggestedUsersForDiscover,
{ {
limit: props.limit || 10, limit: props.limit || 10,
}, },
@@ -58,9 +55,9 @@ export function useGetSuggestedUsersForDiscoverQuery(props: QueryProps = {}) {
export function* findAllProfilesInQueryData( export function* findAllProfilesInQueryData(
queryClient: QueryClient, queryClient: QueryClient,
did: string, did: string,
): Generator<AppBskyActorDefs.ProfileView, void> { ): Generator<app.bsky.actor.defs.ProfileView, void> {
const responses = const responses =
queryClient.getQueriesData<AppBskyUnspeccedGetSuggestedUsersForDiscover.OutputSchema>( queryClient.getQueriesData<app.bsky.unspecced.getSuggestedUsersForDiscover.$OutputBody>(
{ {
queryKey: [getSuggestedUsersForDiscoverQueryKeyRoot], queryKey: [getSuggestedUsersForDiscoverQueryKeyRoot],
}, },
@@ -1,7 +1,3 @@
import {
type AppBskyActorDefs,
type AppBskyUnspeccedGetSuggestedUsersForExplore,
} from '@atproto/api'
import {type QueryClient, useQuery} from '@tanstack/react-query' import {type QueryClient, useQuery} from '@tanstack/react-query'
import { import {
@@ -12,7 +8,8 @@ import {logger} from '#/logger'
import {getContentLanguages} from '#/state/preferences/languages' import {getContentLanguages} from '#/state/preferences/languages'
import {STALE} from '#/state/queries' import {STALE} from '#/state/queries'
import {usePreferencesQuery} from '#/state/queries/preferences' import {usePreferencesQuery} from '#/state/queries/preferences'
import {useAgent} from '#/state/session' import {useAppviewClient} from '#/state/session'
import {app} from '#/lexicons'
export type QueryProps = { export type QueryProps = {
category?: string | null category?: string | null
@@ -26,7 +23,7 @@ export const createGetSuggestedUsersForExploreQueryKey = (
) => [getSuggestedUsersForExploreQueryKeyRoot, props.category, props.limit] ) => [getSuggestedUsersForExploreQueryKeyRoot, props.category, props.limit]
export function useGetSuggestedUsersForExploreQuery(props: QueryProps = {}) { export function useGetSuggestedUsersForExploreQuery(props: QueryProps = {}) {
const agent = useAgent() const client = useAppviewClient()
const {data: preferences} = usePreferencesQuery() const {data: preferences} = usePreferencesQuery()
return useQuery({ return useQuery({
@@ -36,7 +33,8 @@ export function useGetSuggestedUsersForExploreQuery(props: QueryProps = {}) {
const contentLangs = getContentLanguages().join(',') const contentLangs = getContentLanguages().join(',')
const userInterests = aggregateUserInterests(preferences) const userInterests = aggregateUserInterests(preferences)
const {data} = await agent.app.bsky.unspecced.getSuggestedUsersForExplore( const data = await client.call(
app.bsky.unspecced.getSuggestedUsersForExplore,
{ {
category: props.category ?? undefined, category: props.category ?? undefined,
limit: props.limit || 10, limit: props.limit || 10,
@@ -60,9 +58,9 @@ export function useGetSuggestedUsersForExploreQuery(props: QueryProps = {}) {
export function* findAllProfilesInQueryData( export function* findAllProfilesInQueryData(
queryClient: QueryClient, queryClient: QueryClient,
did: string, did: string,
): Generator<AppBskyActorDefs.ProfileView, void> { ): Generator<app.bsky.actor.defs.ProfileView, void> {
const responses = const responses =
queryClient.getQueriesData<AppBskyUnspeccedGetSuggestedUsersForExplore.OutputSchema>( queryClient.getQueriesData<app.bsky.unspecced.getSuggestedUsersForExplore.$OutputBody>(
{ {
queryKey: [getSuggestedUsersForExploreQueryKeyRoot], queryKey: [getSuggestedUsersForExploreQueryKeyRoot],
}, },
@@ -1,7 +1,3 @@
import {
type AppBskyActorDefs,
type AppBskyUnspeccedGetSuggestedUsersForSeeMore,
} from '@atproto/api'
import {type QueryClient, useQuery} from '@tanstack/react-query' import {type QueryClient, useQuery} from '@tanstack/react-query'
import { import {
@@ -12,7 +8,8 @@ import {logger} from '#/logger'
import {getContentLanguages} from '#/state/preferences/languages' import {getContentLanguages} from '#/state/preferences/languages'
import {STALE} from '#/state/queries' import {STALE} from '#/state/queries'
import {usePreferencesQuery} from '#/state/queries/preferences' import {usePreferencesQuery} from '#/state/queries/preferences'
import {useAgent} from '#/state/session' import {useAppviewClient} from '#/state/session'
import {app} from '#/lexicons'
export type QueryProps = { export type QueryProps = {
category?: string | null category?: string | null
@@ -28,7 +25,7 @@ export const createGetSuggestedUsersForSeeMoreQueryKey = (props: {
}) => [getSuggestedUsersForSeeMoreQueryKeyRoot, props.category, props.limit] }) => [getSuggestedUsersForSeeMoreQueryKeyRoot, props.category, props.limit]
export function useGetSuggestedUsersForSeeMoreQuery(props: QueryProps = {}) { export function useGetSuggestedUsersForSeeMoreQuery(props: QueryProps = {}) {
const agent = useAgent() const client = useAppviewClient()
const {data: preferences} = usePreferencesQuery() const {data: preferences} = usePreferencesQuery()
return useQuery({ return useQuery({
@@ -42,7 +39,8 @@ export function useGetSuggestedUsersForSeeMoreQuery(props: QueryProps = {}) {
const contentLangs = getContentLanguages().join(',') const contentLangs = getContentLanguages().join(',')
const userInterests = aggregateUserInterests(preferences) const userInterests = aggregateUserInterests(preferences)
const {data} = await agent.app.bsky.unspecced.getSuggestedUsersForSeeMore( const data = await client.call(
app.bsky.unspecced.getSuggestedUsersForSeeMore,
{ {
category: props.category ?? undefined, category: props.category ?? undefined,
limit: props.limit || 50, limit: props.limit || 50,
@@ -66,9 +64,9 @@ export function useGetSuggestedUsersForSeeMoreQuery(props: QueryProps = {}) {
export function* findAllProfilesInQueryData( export function* findAllProfilesInQueryData(
queryClient: QueryClient, queryClient: QueryClient,
did: string, did: string,
): Generator<AppBskyActorDefs.ProfileView, void> { ): Generator<app.bsky.actor.defs.ProfileView, void> {
const responses = const responses =
queryClient.getQueriesData<AppBskyUnspeccedGetSuggestedUsersForSeeMore.OutputSchema>( queryClient.getQueriesData<app.bsky.unspecced.getSuggestedUsersForSeeMore.$OutputBody>(
{ {
queryKey: [getSuggestedUsersForSeeMoreQueryKeyRoot], queryKey: [getSuggestedUsersForSeeMoreQueryKeyRoot],
}, },