Message List: Fix stuck FAB when many unread messages

This commit is contained in:
Alexander Zinchuk 2021-04-13 20:35:43 +03:00
parent 260c5c1c31
commit 3d21e81865

View File

@ -1,5 +1,7 @@
import { MutableRefObject } from 'react';
import React, { FC, useCallback, useRef } from '../../lib/teact/teact';
import React, {
FC, useCallback, useEffect, useRef,
} from '../../lib/teact/teact';
import { MESSAGE_LIST_SENSITIVE_AREA } from '../../config';
import resetScroll from '../../util/resetScroll';
@ -113,6 +115,7 @@ const MessageScroll: FC<OwnProps> = ({
useOnIntersect(fabTriggerRef, observeIntersectionForFab);
// Remember scroll position before updating height
useOnChange(() => {
if (!listItemElementsRef.current) {
return;
@ -132,6 +135,8 @@ const MessageScroll: FC<OwnProps> = ({
anchorTopRef.current = anchor.getBoundingClientRect().top;
}, [messageIds, containerHeight]);
useEffect(updateFabVisibility, [firstUnreadId]);
return (
<div className={className} teactFastList>
<div ref={backwardsTriggerRef} key="backwards-trigger" className="backwards-trigger" />