Message List: Fix stuck FAB when many unread messages
This commit is contained in:
parent
260c5c1c31
commit
3d21e81865
@ -1,5 +1,7 @@
|
|||||||
import { MutableRefObject } from 'react';
|
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 { MESSAGE_LIST_SENSITIVE_AREA } from '../../config';
|
||||||
import resetScroll from '../../util/resetScroll';
|
import resetScroll from '../../util/resetScroll';
|
||||||
@ -113,6 +115,7 @@ const MessageScroll: FC<OwnProps> = ({
|
|||||||
|
|
||||||
useOnIntersect(fabTriggerRef, observeIntersectionForFab);
|
useOnIntersect(fabTriggerRef, observeIntersectionForFab);
|
||||||
|
|
||||||
|
// Remember scroll position before updating height
|
||||||
useOnChange(() => {
|
useOnChange(() => {
|
||||||
if (!listItemElementsRef.current) {
|
if (!listItemElementsRef.current) {
|
||||||
return;
|
return;
|
||||||
@ -132,6 +135,8 @@ const MessageScroll: FC<OwnProps> = ({
|
|||||||
anchorTopRef.current = anchor.getBoundingClientRect().top;
|
anchorTopRef.current = anchor.getBoundingClientRect().top;
|
||||||
}, [messageIds, containerHeight]);
|
}, [messageIds, containerHeight]);
|
||||||
|
|
||||||
|
useEffect(updateFabVisibility, [firstUnreadId]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={className} teactFastList>
|
<div className={className} teactFastList>
|
||||||
<div ref={backwardsTriggerRef} key="backwards-trigger" className="backwards-trigger" />
|
<div ref={backwardsTriggerRef} key="backwards-trigger" className="backwards-trigger" />
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user