♻️ refactor: Message Cache Clearing Logic into Reusable Helper (#10226)

This commit is contained in:
Danny Avila 2025-10-22 22:02:29 +02:00 committed by GitHub
parent e3d33fed8d
commit d8d5d59d92
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 45 additions and 28 deletions

View file

@ -1,5 +1,6 @@
import { ContentTypes } from 'librechat-data-provider';
import { ContentTypes, QueryKeys, Constants } from 'librechat-data-provider';
import type { TMessage, TMessageContentParts } from 'librechat-data-provider';
import type { QueryClient } from '@tanstack/react-query';
export const TEXT_KEY_DIVIDER = '|||';
@ -146,3 +147,26 @@ export const scrollToEnd = (callback?: () => void) => {
}
}
};
/**
* Clears messages for both the specified conversation ID and the NEW_CONVO query key.
* This ensures that messages are properly cleared in all contexts, preventing stale data
* from persisting in the NEW_CONVO cache.
*
* @param queryClient - The React Query client instance
* @param conversationId - The conversation ID to clear messages for
*/
export const clearMessagesCache = (
queryClient: QueryClient,
conversationId: string | undefined | null,
): void => {
const convoId = conversationId ?? Constants.NEW_CONVO;
// Clear messages for the current conversation
queryClient.setQueryData<TMessage[]>([QueryKeys.messages, convoId], []);
// Also clear NEW_CONVO messages if we're not already on NEW_CONVO
if (convoId !== Constants.NEW_CONVO) {
queryClient.setQueryData<TMessage[]>([QueryKeys.messages, Constants.NEW_CONVO], []);
}
};