diff --git a/web/src/pages/next-chats/share/index.tsx b/web/src/pages/next-chats/share/index.tsx
index a4f14b1f6..270cfd1bc 100644
--- a/web/src/pages/next-chats/share/index.tsx
+++ b/web/src/pages/next-chats/share/index.tsx
@@ -3,8 +3,11 @@ import { NextMessageInput } from '@/components/message-input/next';
import MessageItem from '@/components/next-message-item';
import PdfDrawer from '@/components/pdf-drawer';
import { useClickDrawer } from '@/components/pdf-drawer/hooks';
+import { RAGFlowAvatar } from '@/components/ragflow-avatar';
import { useSwitchToDarkThemeOnMount } from '@/components/theme-provider';
+import { Button } from '@/components/ui/button';
import { MessageType } from '@/constants/chat';
+import { useFetchAppConf } from '@/hooks/logic-hooks';
import {
useFetchExternalAgentInputs,
useUploadCanvasFileWithProgress,
@@ -12,10 +15,12 @@ import {
import { cn } from '@/lib/utils';
import i18n from '@/locales/config';
import { useCacheChatLog } from '@/pages/agent/hooks/use-cache-chat-log';
+import { IInputs } from '@/pages/agent/interface';
import { useSendButtonDisabled } from '@/pages/chat/hooks';
import { buildMessageUuidWithRole } from '@/utils/chat';
import { isEmpty } from 'lodash';
-import React, { forwardRef, useCallback } from 'react';
+import { RefreshCcw } from 'lucide-react';
+import React, { forwardRef, useCallback, useState } from 'react';
import {
useGetSharedChatSearchParams,
useSendNextSharedMessage,
@@ -38,6 +43,7 @@ const ChatContainer = () => {
addEventList,
setCurrentMessageId,
currentEventListWithoutMessageById,
+ clearEventList,
} = useCacheChatLog();
const {
handlePressEnter,
@@ -51,26 +57,20 @@ const ChatContainer = () => {
findReferenceByMessageId,
appendUploadResponseList,
parameterDialogVisible,
- hideParameterDialog,
showParameterDialog,
ok,
+ resetSession,
} = useSendNextSharedMessage(addEventList);
- const { data } = useFetchExternalAgentInputs();
+ // const { data } = useFetchExternalAgentInputs();
const sendDisabled = useSendButtonDisabled(value);
-
- // useEffect(() => {
- // if (derivedMessages.length) {
- // const derivedMessagesFilter = derivedMessages.filter(
- // (message) => message.role === MessageType.Assistant,
- // );
- // if (derivedMessagesFilter.length) {
- // const message = derivedMessagesFilter[derivedMessagesFilter.length - 1];
- // setCurrentMessageId(message.id);
- // }
- // }
- // }, [derivedMessages, setCurrentMessageId]);
-
+ const appConf = useFetchAppConf();
+ const { data: inputsData } = useFetchExternalAgentInputs();
+ const [agentInfo, setAgentInfo] = useState
({
+ avatar: '',
+ title: '',
+ inputs: {},
+ });
const handleUploadFile: NonNullable =
useCallback(
async (files, options) => {
@@ -87,20 +87,62 @@ const ChatContainer = () => {
}, [locale, visibleAvatar]);
React.useEffect(() => {
- if (!isEmpty(data)) {
+ const { avatar, title, inputs } = inputsData;
+ setAgentInfo({
+ avatar,
+ title,
+ inputs: inputs,
+ });
+ }, [inputsData, setAgentInfo]);
+
+ React.useEffect(() => {
+ if (!isEmpty(inputsData)) {
showParameterDialog();
}
- }, [data, showParameterDialog]);
+ }, [inputsData, showParameterDialog]);
useSwitchToDarkThemeOnMount();
+ const handleInputsModalOk = (params: any[]) => {
+ ok(params);
+ };
+ const handleReset = () => {
+ resetSession();
+ clearEventList();
+ };
if (!conversationId) {
return empty
;
}
return (
-
-
+
+

+
{appConf.appName}
+
+
+
+
+
+
+
@@ -123,6 +165,8 @@ const ChatContainer = () => {
sendLoading &&
derivedMessages?.length - 1 === i
}
+ avatarDialog={agentInfo.avatar}
+ agentName={agentInfo.title}
index={i}
clickDocumentButton={clickDocumentButton}
showLikeButton={false}
@@ -164,8 +208,9 @@ const ChatContainer = () => {
)}
{parameterDialogVisible && (
)}
diff --git a/web/src/pages/next-chats/share/parameter-dialog.tsx b/web/src/pages/next-chats/share/parameter-dialog.tsx
index 7868d32f2..a0f249b69 100644
--- a/web/src/pages/next-chats/share/parameter-dialog.tsx
+++ b/web/src/pages/next-chats/share/parameter-dialog.tsx
@@ -1,33 +1,30 @@
-import {
- Dialog,
- DialogContent,
- DialogHeader,
- DialogTitle,
-} from '@/components/ui/dialog';
-import { useFetchExternalAgentInputs } from '@/hooks/use-agent-request';
+import { Modal } from '@/components/ui/modal';
import { IModalProps } from '@/interfaces/common';
import DebugContent from '@/pages/agent/debug-content';
import { buildBeginInputListFromObject } from '@/pages/agent/form/begin-form/utils';
+import { BeginQuery } from '@/pages/agent/interface';
interface IProps extends IModalProps
{
ok(parameters: any[]): void;
+ data: Record>;
}
-export function ParameterDialog({ hideModal, ok }: IProps) {
- const { data } = useFetchExternalAgentInputs();
-
+export function ParameterDialog({ ok, data }: IProps) {
return (
-