helloya20's picture
Upload 2345 files
f0743f4 verified
import { useLocation } from 'react-router-dom';
import { useQuery, useQueryClient } from '@tanstack/react-query';
import type { UseQueryOptions, QueryObserverResult } from '@tanstack/react-query';
import { QueryKeys, dataService } from 'librechat-data-provider';
import type * as t from 'librechat-data-provider';
import { logger } from '~/utils';
export const useGetMessagesByConvoId = <TData = t.TMessage[]>(
id: string,
config?: UseQueryOptions<t.TMessage[], unknown, TData>,
): QueryObserverResult<TData> => {
const location = useLocation();
const queryClient = useQueryClient();
return useQuery<t.TMessage[], unknown, TData>(
[QueryKeys.messages, id],
async () => {
const result = await dataService.getMessagesByConvoId(id);
if (!location.pathname.includes('/c/new') && result?.length === 1) {
const currentMessages = queryClient.getQueryData<t.TMessage[]>([QueryKeys.messages, id]);
if (currentMessages?.length === 1) {
return result;
}
if (currentMessages && currentMessages?.length > 1) {
logger.warn(
'messages',
`Messages query for convo ${id} returned fewer than cache; path: "${location.pathname}"`,
result,
currentMessages,
);
return currentMessages;
}
}
return result;
},
{
refetchOnWindowFocus: false,
refetchOnReconnect: false,
refetchOnMount: false,
...config,
},
);
};