mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 00:40:14 +01:00
🚑 fix(export): Export Issue with New Chat (#2777)
* 🚑 fix: re-fetch messages when exporting
* Revert "🚑 fix: re-fetch messages when exporting"
This reverts commit 693b86e955.
* 🚑 fix: use the same logic to get export data as useChatHelper
* refactor(useExportConversation): use query cache to build messages tree on request
* chore: organize imports
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
This commit is contained in:
parent
40685f6eb4
commit
c9e7d4ac18
1 changed files with 19 additions and 15 deletions
|
|
@ -1,7 +1,9 @@
|
||||||
import download from 'downloadjs';
|
import download from 'downloadjs';
|
||||||
|
import { useCallback } from 'react';
|
||||||
import exportFromJSON from 'export-from-json';
|
import exportFromJSON from 'export-from-json';
|
||||||
import { useGetMessagesByConvoId } from 'librechat-data-provider/react-query';
|
import { useQueryClient } from '@tanstack/react-query';
|
||||||
import {
|
import {
|
||||||
|
QueryKeys,
|
||||||
ContentTypes,
|
ContentTypes,
|
||||||
ToolCallTypes,
|
ToolCallTypes,
|
||||||
imageGenTools,
|
imageGenTools,
|
||||||
|
|
@ -16,6 +18,7 @@ import type {
|
||||||
import useBuildMessageTree from '~/hooks/Messages/useBuildMessageTree';
|
import useBuildMessageTree from '~/hooks/Messages/useBuildMessageTree';
|
||||||
import { useScreenshot } from '~/hooks/ScreenshotContext';
|
import { useScreenshot } from '~/hooks/ScreenshotContext';
|
||||||
import { cleanupPreset, buildTree } from '~/utils';
|
import { cleanupPreset, buildTree } from '~/utils';
|
||||||
|
import { useParams } from 'react-router-dom';
|
||||||
|
|
||||||
export default function useExportConversation({
|
export default function useExportConversation({
|
||||||
conversation,
|
conversation,
|
||||||
|
|
@ -32,24 +35,25 @@ export default function useExportConversation({
|
||||||
exportBranches: boolean | 'indeterminate';
|
exportBranches: boolean | 'indeterminate';
|
||||||
recursive: boolean | 'indeterminate';
|
recursive: boolean | 'indeterminate';
|
||||||
}) {
|
}) {
|
||||||
|
const queryClient = useQueryClient();
|
||||||
const { captureScreenshot } = useScreenshot();
|
const { captureScreenshot } = useScreenshot();
|
||||||
const buildMessageTree = useBuildMessageTree();
|
const buildMessageTree = useBuildMessageTree();
|
||||||
const { data: messagesTree = null } = useGetMessagesByConvoId(
|
|
||||||
conversation?.conversationId ?? '',
|
const { conversationId: paramId } = useParams();
|
||||||
{
|
|
||||||
select: (data) => {
|
const getMessageTree = useCallback(() => {
|
||||||
const dataTree = buildTree({ messages: data });
|
const queryParam = paramId === 'new' ? paramId : conversation?.conversationId ?? paramId ?? '';
|
||||||
|
const messages = queryClient.getQueryData<TMessage[]>([QueryKeys.messages, queryParam]) ?? [];
|
||||||
|
const dataTree = buildTree({ messages });
|
||||||
return dataTree?.length === 0 ? null : dataTree ?? null;
|
return dataTree?.length === 0 ? null : dataTree ?? null;
|
||||||
},
|
}, [paramId, conversation?.conversationId, queryClient]);
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
const getMessageText = (message: TMessage, format = 'text') => {
|
const getMessageText = (message: TMessage, format = 'text') => {
|
||||||
if (!message) {
|
if (!message) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
const formatText = (sender, text) => {
|
const formatText = (sender: string, text: string) => {
|
||||||
if (format === 'text') {
|
if (format === 'text') {
|
||||||
return `>> ${sender}:\n${text}`;
|
return `>> ${sender}:\n${text}`;
|
||||||
}
|
}
|
||||||
|
|
@ -149,7 +153,7 @@ export default function useExportConversation({
|
||||||
const messages = await buildMessageTree({
|
const messages = await buildMessageTree({
|
||||||
messageId: conversation?.conversationId,
|
messageId: conversation?.conversationId,
|
||||||
message: null,
|
message: null,
|
||||||
messages: messagesTree,
|
messages: getMessageTree(),
|
||||||
branches: !!exportBranches,
|
branches: !!exportBranches,
|
||||||
recursive: false,
|
recursive: false,
|
||||||
});
|
});
|
||||||
|
|
@ -224,7 +228,7 @@ export default function useExportConversation({
|
||||||
const messages = await buildMessageTree({
|
const messages = await buildMessageTree({
|
||||||
messageId: conversation?.conversationId,
|
messageId: conversation?.conversationId,
|
||||||
message: null,
|
message: null,
|
||||||
messages: messagesTree,
|
messages: getMessageTree(),
|
||||||
branches: false,
|
branches: false,
|
||||||
recursive: false,
|
recursive: false,
|
||||||
});
|
});
|
||||||
|
|
@ -280,7 +284,7 @@ export default function useExportConversation({
|
||||||
const messages = await buildMessageTree({
|
const messages = await buildMessageTree({
|
||||||
messageId: conversation?.conversationId,
|
messageId: conversation?.conversationId,
|
||||||
message: null,
|
message: null,
|
||||||
messages: messagesTree,
|
messages: getMessageTree(),
|
||||||
branches: false,
|
branches: false,
|
||||||
recursive: false,
|
recursive: false,
|
||||||
});
|
});
|
||||||
|
|
@ -332,7 +336,7 @@ export default function useExportConversation({
|
||||||
const messages = await buildMessageTree({
|
const messages = await buildMessageTree({
|
||||||
messageId: conversation?.conversationId,
|
messageId: conversation?.conversationId,
|
||||||
message: null,
|
message: null,
|
||||||
messages: messagesTree,
|
messages: getMessageTree(),
|
||||||
branches: !!exportBranches,
|
branches: !!exportBranches,
|
||||||
recursive: !!recursive,
|
recursive: !!recursive,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue