diff --git a/src/renderer/src/pages/home/Messages/MessageEditor.tsx b/src/renderer/src/pages/home/Messages/MessageEditor.tsx index 99f38b8268..a6c105fa7c 100644 --- a/src/renderer/src/pages/home/Messages/MessageEditor.tsx +++ b/src/renderer/src/pages/home/Messages/MessageEditor.tsx @@ -104,6 +104,17 @@ const MessageBlockEditor: FC = ({ message, topicId, onSave, onResend, onC }, 0) }, []) + // 仅在打开时执行一次 + useEffect(() => { + if (textareaRef.current) { + const realTextarea = textareaRef.current.resizableTextArea?.textArea + if (realTextarea) { + realTextarea.scrollTo({ top: realTextarea.scrollHeight }) + } + textareaRef.current.focus({ cursor: 'end' }) + } + }, []) + const onPaste = useCallback( async (event: ClipboardEvent) => { return await PasteService.handlePaste( diff --git a/src/renderer/src/pages/home/Messages/Messages.tsx b/src/renderer/src/pages/home/Messages/Messages.tsx index 8e0532d7ae..2ecbbda948 100644 --- a/src/renderer/src/pages/home/Messages/Messages.tsx +++ b/src/renderer/src/pages/home/Messages/Messages.tsx @@ -90,13 +90,12 @@ const Messages: React.FC = ({ assistant, topic, setActiveTopic, o setHasMore(messages.length > displayCount) }, [messages, displayCount]) + // NOTE: 如果设置为平滑滚动会导致滚动条无法跟随生成的新消息保持在底部位置 const scrollToBottom = useCallback(() => { if (scrollContainerRef.current) { requestAnimationFrame(() => { if (scrollContainerRef.current) { - scrollContainerRef.current.scrollTo({ - top: scrollContainerRef.current.scrollHeight - }) + scrollContainerRef.current.scrollTo({ top: 0 }) } }) }