Fix: Document Previewer is not working #9606 (#9656)

### What problem does this PR solve?
Fix: Document Previewer is not working #9606
### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
balibabu
2025-08-22 12:03:51 +08:00
committed by GitHub
parent 312635cb13
commit 3e6a4b2628
7 changed files with 507 additions and 9 deletions

View File

@ -2,6 +2,8 @@ import { LargeModelFormFieldWithoutFilter } from '@/components/large-model-form-
import { LlmSettingSchema } from '@/components/llm-setting-items/next';
import { NextMessageInput } from '@/components/message-input/next';
import MessageItem from '@/components/message-item';
import PdfDrawer from '@/components/pdf-drawer';
import { useClickDrawer } from '@/components/pdf-drawer/hooks';
import { Button } from '@/components/ui/button';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Form } from '@/components/ui/form';
@ -54,7 +56,8 @@ type ChatCardProps = {
} & Pick<
MultipleChatBoxProps,
'controller' | 'removeChatBox' | 'addChatBox' | 'chatBoxIds'
>;
> &
Pick<ReturnType<typeof useClickDrawer>, 'clickDocumentButton'>;
const ChatCard = forwardRef(function ChatCard(
{
@ -66,6 +69,7 @@ const ChatCard = forwardRef(function ChatCard(
chatBoxIds,
derivedMessages,
sendLoading,
clickDocumentButton,
}: ChatCardProps,
ref,
) {
@ -178,6 +182,7 @@ const ChatCard = forwardRef(function ChatCard(
removeMessageById={removeMessageById}
regenerateMessage={regenerateMessage}
sendLoading={sendLoading}
clickDocumentButton={clickDocumentButton}
></MessageItem>
);
})}
@ -211,6 +216,8 @@ export function MultipleChatBox({
const { conversationId } = useGetChatSearchParams();
const disabled = useGetSendButtonDisabled();
const sendDisabled = useSendButtonDisabled(value);
const { visible, hideModal, documentId, selectedChunk, clickDocumentButton } =
useClickDrawer();
return (
<section className="h-full flex flex-col px-5">
@ -227,6 +234,7 @@ export function MultipleChatBox({
derivedMessages={messageRecord[id]}
ref={setFormRef(id)}
sendLoading={sendLoading}
clickDocumentButton={clickDocumentButton}
></ChatCard>
))}
</div>
@ -246,6 +254,14 @@ export function MultipleChatBox({
onUpload={handleUploadFile}
/>
</div>
{visible && (
<PdfDrawer
visible={visible}
hideModal={hideModal}
documentId={documentId}
chunk={selectedChunk}
></PdfDrawer>
)}
</section>
);
}

View File

@ -1,5 +1,7 @@
import { NextMessageInput } from '@/components/message-input/next';
import MessageItem from '@/components/message-item';
import PdfDrawer from '@/components/pdf-drawer';
import { useClickDrawer } from '@/components/pdf-drawer/hooks';
import { MessageType } from '@/constants/chat';
import {
useFetchConversation,
@ -43,6 +45,8 @@ export function SingleChatBox({ controller }: IProps) {
const { data: conversation } = useFetchConversation();
const disabled = useGetSendButtonDisabled();
const sendDisabled = useSendButtonDisabled(value);
const { visible, hideModal, documentId, selectedChunk, clickDocumentButton } =
useClickDrawer();
return (
<section className="flex flex-col p-5 h-full">
@ -68,7 +72,7 @@ export function SingleChatBox({ controller }: IProps) {
},
message,
)}
// clickDocumentButton={clickDocumentButton}
clickDocumentButton={clickDocumentButton}
index={i}
removeMessageById={removeMessageById}
regenerateMessage={regenerateMessage}
@ -94,6 +98,14 @@ export function SingleChatBox({ controller }: IProps) {
onUpload={handleUploadFile}
isUploading={isUploading}
/>
{visible && (
<PdfDrawer
visible={visible}
hideModal={hideModal}
documentId={documentId}
chunk={selectedChunk}
></PdfDrawer>
)}
</section>
);
}

View File

@ -109,13 +109,12 @@ export default function Chat() {
<Card className="flex-1 min-w-0 bg-transparent border h-full">
<CardContent className="flex p-0 h-full">
<Card className="flex flex-col flex-1 bg-transparent">
<Card className="flex flex-col flex-1 bg-transparent min-w-0">
<CardHeader
className={cn('p-5', { 'border-b': hasSingleChatBox })}
>
<CardTitle className="flex justify-between items-center text-base">
<div>{conversation.name}</div>
<div className="truncate">{conversation.name}</div>
<Button
variant={'ghost'}
onClick={switchDebugMode}

View File

@ -1,5 +1,6 @@
import { useSetModalState } from '@/hooks/common-hooks';
import { useSetDialog } from '@/hooks/use-chat-request';
import { useFetchTenantInfo } from '@/hooks/use-user-setting-request';
import { IDialog } from '@/interfaces/database/chat';
import { isEmpty, omit } from 'lodash';
import { useCallback, useMemo, useState } from 'react';
@ -14,6 +15,7 @@ export const useRenameChat = () => {
} = useSetModalState();
const { setDialog, loading } = useSetDialog();
const { t } = useTranslation();
const tenantInfo = useFetchTenantInfo();
const InitialData = useMemo(
() => ({
@ -32,13 +34,13 @@ export const useRenameChat = () => {
reasoning: false,
parameters: [{ key: 'knowledge', optional: false }],
},
llm_id: '',
llm_id: tenantInfo.data.llm_id,
llm_setting: {},
similarity_threshold: 0.2,
vector_similarity_weight: 0.30000000000000004,
top_n: 8,
}),
[t],
[t, tenantInfo.data.llm_id],
);
const onChatRenameOk = useCallback(

View File

@ -1,3 +1,4 @@
import showMessage from '@/components/ui/message';
import { MessageType } from '@/constants/chat';
import {
useHandleMessageInputChange,
@ -159,7 +160,7 @@ export function useSendMultipleChatMessage(
if (res && (res?.response.status !== 200 || res?.data?.code !== 0)) {
// cancel loading
setValue(message.content);
console.info('removeLatestMessage111');
showMessage.error(res.data.message);
removeLatestMessage(chatBoxId);
}
},