@@ -3,6 +3,7 @@ import React, { useState, useEffect, useRef, useCallback, useImperativeHandle }
3
3
import { PullToRefresh , PullToRefreshHandle , ScrollToEndOptions } from '../PullToRefresh' ;
4
4
import { Message , MessageProps } from '../Message' ;
5
5
import { BackBottom } from '../BackBottom' ;
6
+ import { CLASS_NAME_FOCUSING } from '../Composer' ;
6
7
import canUse from '../../utils/canUse' ;
7
8
import throttle from '../../utils/throttle' ;
8
9
import getToBottom from '../../utils/getToBottom' ;
@@ -48,7 +49,6 @@ export const MessageContainer = React.forwardRef<MessageContainerHandle, Message
48
49
const newCountRef = useRef ( newCount ) ;
49
50
const messagesRef = useRef < HTMLDivElement > ( null ) ;
50
51
const scrollerRef = useRef < PullToRefreshHandle > ( null ) ;
51
- const bottomRef = useRef < HTMLDivElement > ( null ) ;
52
52
const lastMessage = messages [ messages . length - 1 ] ;
53
53
54
54
const scrollToEnd = useCallback ( ( opts ?: ScrollToEndOptions ) => {
@@ -112,7 +112,11 @@ export const MessageContainer = React.forwardRef<MessageContainerHandle, Message
112
112
return ;
113
113
}
114
114
115
- if ( lastMessage . position === 'right' ) {
115
+ if (
116
+ lastMessage . position === 'right' ||
117
+ document . body . classList . contains ( CLASS_NAME_FOCUSING )
118
+ ) {
119
+ // 自己发的消息 或 输入框聚焦,则滚动到底部
116
120
scrollToEnd ( { force : true } ) ;
117
121
} else if ( isNearBottom ( wrapper , 1 ) ) {
118
122
const animated = ! ! wrapper . scrollTop ;
@@ -177,7 +181,6 @@ export const MessageContainer = React.forwardRef<MessageContainerHandle, Message
177
181
{ messages . map ( ( msg ) => (
178
182
< Message { ...msg } renderMessageContent = { renderMessageContent } key = { msg . _id } />
179
183
) ) }
180
- < div ref = { bottomRef } />
181
184
</ div >
182
185
</ PullToRefresh >
183
186
{ showBackBottom && (
0 commit comments