use query key util

This commit is contained in:
Samuel Newman
2026-04-24 16:16:50 +03:00
parent dc87c20a6e
commit 5369f83597
2 changed files with 6 additions and 10 deletions
+1 -1
View File
@@ -133,7 +133,7 @@ export function ConvoProvider({
const [root, id] = getConvoKey(convoId) const [root, id] = getConvoKey(convoId)
return queryClient.getQueryCache().subscribe(event => { return queryClient.getQueryCache().subscribe(event => {
const queryKey = event.query.queryKey as string[] const queryKey = event.query.queryKey as string[]
if (queryKey[0] === root && queryKey[1] === id && !queryKey[2]) { if (queryKey[0] === root && queryKey[1] === id) {
const data = event.query.state.data as const data = event.query.state.data as
| ChatBskyConvoDefs.ConvoView | ChatBskyConvoDefs.ConvoView
| undefined | undefined
@@ -5,16 +5,12 @@ import {useQuery, useQueryClient} from '@tanstack/react-query'
import {DM_SERVICE_HEADERS} from '#/lib/constants' import {DM_SERVICE_HEADERS} from '#/lib/constants'
import {useMessagesEventBus} from '#/state/messages/events' import {useMessagesEventBus} from '#/state/messages/events'
import {STALE} from '#/state/queries' import {STALE} from '#/state/queries'
import {createQueryKey} from '#/state/queries/util'
import {useAgent} from '#/state/session' import {useAgent} from '#/state/session'
import * as bsky from '#/types/bsky' import * as bsky from '#/types/bsky'
import {RQKEY_ROOT as GET_CONVOS_KEY} from './conversation'
export const RQKEY_SEGMENT = 'members' const listConvoMembersQueryKey = (convoId: string) =>
export const RQKEY = (convoId: string) => [ createQueryKey('listConvoMembers', {convoId})
GET_CONVOS_KEY,
convoId,
RQKEY_SEGMENT,
]
// group chat size is 50, so should fetch the whole list in one go // group chat size is 50, so should fetch the whole list in one go
const LIMIT = 50 const LIMIT = 50
@@ -41,7 +37,7 @@ export function useListConvoMembersQuery({
) => ChatBskyActorDefs.ProfileViewBasic[], ) => ChatBskyActorDefs.ProfileViewBasic[],
) { ) {
queryClient.setQueryData<ChatBskyActorDefs.ProfileViewBasic[]>( queryClient.setQueryData<ChatBskyActorDefs.ProfileViewBasic[]>(
RQKEY(convoId), listConvoMembersQueryKey(convoId),
old => { old => {
if (!old) return // query doesn't exist yet, skip if (!old) return // query doesn't exist yet, skip
return fn(old) return fn(old)
@@ -84,7 +80,7 @@ export function useListConvoMembersQuery({
}, [convoId, messagesBus, queryClient]) }, [convoId, messagesBus, queryClient])
return useQuery({ return useQuery({
queryKey: RQKEY(convoId), queryKey: listConvoMembersQueryKey(convoId),
queryFn: async () => { queryFn: async () => {
const members = [] const members = []
let cursor let cursor