diff --git a/.gitignore b/.gitignore index 459dc6201c..68ea0f203f 100644 --- a/.gitignore +++ b/.gitignore @@ -51,3 +51,4 @@ local coverage .vitest-cache vitest.config.*.timestamp-* +YOUR_MEMORY_FILE_PATH diff --git a/src/renderer/src/pages/history/components/SearchMessage.tsx b/src/renderer/src/pages/history/components/SearchMessage.tsx index 8adcb40862..3e05d53fb6 100644 --- a/src/renderer/src/pages/history/components/SearchMessage.tsx +++ b/src/renderer/src/pages/history/components/SearchMessage.tsx @@ -1,5 +1,6 @@ import { ArrowRightOutlined } from '@ant-design/icons' import { HStack } from '@renderer/components/Layout' +import { MessageEditingProvider } from '@renderer/context/MessageEditingContext' import { useSettings } from '@renderer/hooks/useSettings' import { getTopicById } from '@renderer/hooks/useTopic' import { ChatProvider } from '@renderer/pages/home/Messages/ChatContext' @@ -43,23 +44,25 @@ const SearchMessage: FC = ({ message, ...props }) => { return ( - - - - - - - + + + + + + + + + ) } diff --git a/src/renderer/src/pages/history/components/TopicMessages.tsx b/src/renderer/src/pages/history/components/TopicMessages.tsx index d9993e911d..5e905a3141 100644 --- a/src/renderer/src/pages/history/components/TopicMessages.tsx +++ b/src/renderer/src/pages/history/components/TopicMessages.tsx @@ -1,6 +1,7 @@ import { ArrowRightOutlined, MessageOutlined } from '@ant-design/icons' import { HStack } from '@renderer/components/Layout' import SearchPopup from '@renderer/components/Popups/SearchPopup' +import { MessageEditingProvider } from '@renderer/context/MessageEditingContext' import useScrollPosition from '@renderer/hooks/useScrollPosition' import { useSettings } from '@renderer/hooks/useSettings' import { ChatProvider } from '@renderer/pages/home/Messages/ChatContext' @@ -48,31 +49,33 @@ const TopicMessages: FC = ({ topic, ...props }) => { return ( - - - {topic?.messages.map((message) => ( -
- -
- ))} - {isEmpty && } - {!isEmpty && ( - - - - )} -
-
+ + + + {topic?.messages.map((message) => ( +
+ +
+ ))} + {isEmpty && } + {!isEmpty && ( + + + + )} +
+
+
) } diff --git a/src/renderer/src/pages/home/Messages/Message.tsx b/src/renderer/src/pages/home/Messages/Message.tsx index b1995a4c05..20e5aa07b9 100644 --- a/src/renderer/src/pages/home/Messages/Message.tsx +++ b/src/renderer/src/pages/home/Messages/Message.tsx @@ -29,6 +29,7 @@ interface Props { index?: number total?: number hidePresetMessages?: boolean + hideMenuBar?: boolean style?: React.CSSProperties isGrouped?: boolean isStreaming?: boolean @@ -41,6 +42,7 @@ const MessageItem: FC = ({ // assistant, index, hidePresetMessages, + hideMenuBar = false, isGrouped, isStreaming = false, style @@ -97,7 +99,7 @@ const MessageItem: FC = ({ const isLastMessage = index === 0 const isAssistantMessage = message.role === 'assistant' - const showMenubar = !isStreaming && !message.status.includes('ing') && !isEditing + const showMenubar = !hideMenuBar && !isStreaming && !message.status.includes('ing') && !isEditing const messageBorder = showMessageDivider ? undefined : 'none' const messageBackground = getMessageBackground(isBubbleStyle, isAssistantMessage) diff --git a/src/renderer/src/pages/home/Messages/MessageEditor.tsx b/src/renderer/src/pages/home/Messages/MessageEditor.tsx index 8b4cd32685..13d25f4dde 100644 --- a/src/renderer/src/pages/home/Messages/MessageEditor.tsx +++ b/src/renderer/src/pages/home/Messages/MessageEditor.tsx @@ -297,7 +297,7 @@ const FileBlocksContainer = styled.div` gap: 8px; padding: 0 15px; margin: 8px 0; - background: transplant; + background: transparent; border-radius: 4px; ` diff --git a/src/renderer/src/pages/home/Messages/Messages.tsx b/src/renderer/src/pages/home/Messages/Messages.tsx index 7b9c447055..2365b54355 100644 --- a/src/renderer/src/pages/home/Messages/Messages.tsx +++ b/src/renderer/src/pages/home/Messages/Messages.tsx @@ -79,7 +79,7 @@ const Messages: React.FC = ({ assistant, topic, setActiveTopic, o if (!isMultiSelectMode) return const updateDragPos = (e: MouseEvent) => { - const container = containerRef.current! + const container = scrollContainerRef.current! const rect = container.getBoundingClientRect() const x = e.clientX - rect.left + container.scrollLeft const y = e.clientY - rect.top + container.scrollTop @@ -123,7 +123,7 @@ const Messages: React.FC = ({ assistant, topic, setActiveTopic, o setIsDragging(false) } - const container = containerRef.current + const container = scrollContainerRef.current! if (container) { container.addEventListener('mousedown', handleMouseDown) window.addEventListener('mousemove', handleMouseMove) @@ -137,7 +137,7 @@ const Messages: React.FC = ({ assistant, topic, setActiveTopic, o window.removeEventListener('mouseup', handleMouseUp) } } - }, [isMultiSelectMode, isDragging, dragStart, dragCurrent, handleSelectMessage]) + }, [isMultiSelectMode, isDragging, dragStart, dragCurrent, handleSelectMessage, scrollContainerRef]) const registerMessageElement = useCallback((id: string, element: HTMLElement | null) => { if (element) { @@ -343,7 +343,7 @@ const Messages: React.FC = ({ assistant, topic, setActiveTopic, o return (