import type { ChatMessage, ResponseError } from '@shared/api/generated-chad-api.ts' import type { QueryKey } from '@tanstack/vue-query' import api from '@shared/api/client.ts' import { useInfiniteQuery } from '@tanstack/vue-query' interface Response { messages: ChatMessage[] nextCursor?: string } type PageParam = string | undefined export function qChatMessages() { return useInfiniteQuery({ queryKey: ['chat-messages'], queryFn: async ({ pageParam }) => { const response = await api.chad.chatMessages({ cursor: pageParam, limit: 25 }) return response.data // return { // messages: response.data.messages.reverse(), // nextCursor: response.data.nextCursor, // } }, // select: data => ({ // pages: [...data.pages].reverse(), // pageParams: [...data.pageParams].reverse(), // }), select: (data) => { return data.pages.flatMap(page => page.messages).toReversed() }, initialPageParam: undefined, getNextPageParam: (lastPage) => { return lastPage.nextCursor }, shallow: true, }) }