diff --git a/web/src/hooks/use-send-message.ts b/web/src/hooks/use-send-message.ts index a5c635575..3be9eab32 100644 --- a/web/src/hooks/use-send-message.ts +++ b/web/src/hooks/use-send-message.ts @@ -1,3 +1,4 @@ +import message from '@/components/ui/message'; import { Authorization } from '@/constants/authorization'; import { IReferenceObject } from '@/interfaces/database/chat'; import { BeginQuery } from '@/pages/agent/interface'; @@ -136,6 +137,9 @@ export const useSendMessageBySSE = (url: string = api.completeConversation) => { const val = JSON.parse(value?.data || ''); console.info('data:', val); + if (val.code === 500) { + message.error(val.message); + } setAnswerList((list) => { const nextList = [...list]; diff --git a/web/src/pages/agent/canvas/index.tsx b/web/src/pages/agent/canvas/index.tsx index 95cd4a0ab..d7186eae7 100644 --- a/web/src/pages/agent/canvas/index.tsx +++ b/web/src/pages/agent/canvas/index.tsx @@ -32,7 +32,11 @@ import { useAddNode } from '../hooks/use-add-node'; import { useBeforeDelete } from '../hooks/use-before-delete'; import { useCacheChatLog } from '../hooks/use-cache-chat-log'; import { useMoveNote } from '../hooks/use-move-note'; -import { useShowDrawer, useShowLogSheet } from '../hooks/use-show-drawer'; +import { + useHideFormSheetOnNodeDeletion, + useShowDrawer, + useShowLogSheet, +} from '../hooks/use-show-drawer'; import { LogSheet } from '../log-sheet'; import RunSheet from '../run-sheet'; import { ButtonEdge } from './edge'; @@ -160,6 +164,9 @@ function AgentCanvas({ drawerVisible, hideDrawer }: IProps) { setLastSendLoading(false); } }; + + useHideFormSheetOnNodeDeletion({ hideFormDrawer }); + return (
) { id={NodeHandleId.Start} > -
+
{t(`flow.begin`)} diff --git a/web/src/pages/agent/canvas/node/note-node/index.tsx b/web/src/pages/agent/canvas/node/note-node/index.tsx index a3f568864..44b073f8f 100644 --- a/web/src/pages/agent/canvas/node/note-node/index.tsx +++ b/web/src/pages/agent/canvas/node/note-node/index.tsx @@ -56,7 +56,7 @@ function NoteNode({ data, id, selected }: NodeProps) {
- + { +function AgentChatBox() { const { value, ref, @@ -117,7 +117,7 @@ const AgentChatBox = () => { })} {/* */}
-
+
{ > ); -}; +} -export default AgentChatBox; +export default memo(AgentChatBox); diff --git a/web/src/pages/agent/chat/use-send-agent-message.ts b/web/src/pages/agent/chat/use-send-agent-message.ts index 0a8a045aa..27dead043 100644 --- a/web/src/pages/agent/chat/use-send-agent-message.ts +++ b/web/src/pages/agent/chat/use-send-agent-message.ts @@ -235,18 +235,23 @@ export const useSendAgentMessage = ( params.session_id = sessionId; } - const res = await send(params); - clearUploadResponseList(); + try { + const res = await send(params); - if (receiveMessageError(res)) { - sonnerMessage.error(res?.data?.message); + clearUploadResponseList(); - // cancel loading - setValue(message.content); - removeLatestMessage(); - } else { - // refetch(); // pull the message list after sending the message successfully + if (receiveMessageError(res)) { + sonnerMessage.error(res?.data?.message); + + // cancel loading + setValue(message.content); + removeLatestMessage(); + } else { + // refetch(); // pull the message list after sending the message successfully + } + } catch (error) { + console.log('🚀 ~ useSendAgentMessage ~ error:', error); } }, [ diff --git a/web/src/pages/agent/hooks/use-show-drawer.tsx b/web/src/pages/agent/hooks/use-show-drawer.tsx index 268697ed6..7eae28e38 100644 --- a/web/src/pages/agent/hooks/use-show-drawer.tsx +++ b/web/src/pages/agent/hooks/use-show-drawer.tsx @@ -167,3 +167,15 @@ export function useShowLogSheet({ showLogSheet: handleShow, }; } + +export function useHideFormSheetOnNodeDeletion({ + hideFormDrawer, +}: Pick, 'hideFormDrawer'>) { + const { nodes, clickedNodeId } = useGraphStore((state) => state); + + useEffect(() => { + if (!nodes.some((x) => x.id === clickedNodeId)) { + hideFormDrawer(); + } + }, [clickedNodeId, hideFormDrawer, nodes]); +} diff --git a/web/src/pages/agent/operator-icon.tsx b/web/src/pages/agent/operator-icon.tsx index 74127ff2b..00fdd6e0a 100644 --- a/web/src/pages/agent/operator-icon.tsx +++ b/web/src/pages/agent/operator-icon.tsx @@ -1,7 +1,7 @@ import { IconFont } from '@/components/icon-font'; import SvgIcon from '@/components/svg-icon'; import { cn } from '@/lib/utils'; -import { CirclePlay } from 'lucide-react'; +import { HousePlus } from 'lucide-react'; import { Operator } from './constant'; interface IProps { @@ -11,7 +11,7 @@ interface IProps { export const OperatorIconMap = { [Operator.Retrieval]: 'KR', - [Operator.Begin]: CirclePlay, + [Operator.Begin]: 'house-plus', [Operator.Categorize]: 'a-QuestionClassification', [Operator.Message]: 'reply', [Operator.Iteration]: 'loop', @@ -49,6 +49,14 @@ const Empty = () => { const OperatorIcon = ({ name, className }: IProps) => { const Icon = OperatorIconMap[name as keyof typeof OperatorIconMap] || Empty; + if (name === Operator.Begin) { + return ( +
+ +
+ ); + } + if (name in SVGIconMap) { return (