fix: 修复在某些场景下计算高度会少1px导致无法

pull/64/head
moonrailgun 2 years ago
parent 504060e016
commit 7644924ae9

@ -17,6 +17,7 @@ import {
t,
useAsyncRequest,
useChatBoxContext,
useMemoizedFn,
} from '../..';
import { MessageHelper } from '../../utils/message-helper';
import { ChatConverseType } from '../../model/converse';
@ -154,7 +155,7 @@ export function useConverseMessage(context: ConverseContext) {
}, [converseId, reconnectNum, currentUserId]);
// 加载更多消息
const [{ loading: isLoadingMore }, handleFetchMoreMessage] =
const [{ loading: isLoadingMore }, _handleFetchMoreMessage] =
useAsyncRequest(async () => {
const firstMessageId = _get(messages, [0, '_id']);
if (!isValidStr(firstMessageId)) {
@ -177,6 +178,18 @@ export function useConverseMessage(context: ConverseContext) {
);
}, [converseId, hasMoreMessage, _get(messages, [0, '_id'])]);
/**
*
*
*/
const handleFetchMoreMessage = useMemoizedFn(async () => {
if (isLoadingMore) {
return;
}
await _handleFetchMoreMessage();
});
const handleSendMessage = useHandleSendMessage(context);
return {

@ -4,6 +4,12 @@ import { ChatMessageHeader } from './ChatMessageHeader';
import { buildMessageItemRow } from './Item';
import type { MessageListProps } from './types';
/**
* buffer
* 1px
*/
const topTriggerBuffer = 100;
/**
*
*/
@ -42,8 +48,8 @@ export const NormalMessageList: React.FC<MessageListProps> = React.memo(
// 滚动到最底部
lockRef.current = false;
} else if (
-containerRef.current.scrollTop + containerRef.current.clientHeight ===
containerRef.current.scrollHeight
-containerRef.current.scrollTop + containerRef.current.clientHeight >=
containerRef.current.scrollHeight - topTriggerBuffer
) {
// 滚动条碰触到最顶部
props.onLoadMore();

Loading…
Cancel
Save