use query key util
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user