From 5dadb3c3c9d67ff79f3e7d95d2568b21b9eb578b Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Thu, 30 Mar 2023 18:26:20 -0500 Subject: [PATCH] Message List: Fix scrolling gets stuck in message list (#2893) --- src/components/middle/MiddleColumn.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/components/middle/MiddleColumn.tsx b/src/components/middle/MiddleColumn.tsx index ba449146e..d9c773f43 100644 --- a/src/components/middle/MiddleColumn.tsx +++ b/src/components/middle/MiddleColumn.tsx @@ -66,6 +66,7 @@ import usePrevious from '../../hooks/usePrevious'; import useForceUpdate from '../../hooks/useForceUpdate'; import useSyncEffect from '../../hooks/useSyncEffect'; import useAppLayout from '../../hooks/useAppLayout'; +import useTimeout from '../../hooks/useTimeout'; import usePinnedMessage from './hooks/usePinnedMessage'; import Transition from '../ui/Transition'; @@ -138,6 +139,8 @@ function isImage(item: DataTransferItem) { return item.kind === 'file' && item.type && SUPPORTED_IMAGE_CONTENT_TYPES.has(item.type); } +const LAYER_ANIMATION_DURATION_MS = 450 + ANIMATION_END_DELAY; + const MiddleColumn: FC = ({ chatId, threadId, @@ -206,7 +209,7 @@ const MiddleColumn: FC = ({ const [isUnpinModalOpen, setIsUnpinModalOpen] = useState(false); const isMobileSearchActive = isMobile && hasCurrentTextSearch; - const closeAnimationDuration = isMobile ? 450 + ANIMATION_END_DELAY : undefined; + const closeAnimationDuration = isMobile ? LAYER_ANIMATION_DURATION_MS : undefined; const hasTools = hasPinned && ( windowWidth < MOBILE_SCREEN_MAX_WIDTH || ( @@ -744,6 +747,12 @@ function useIsReady( } }, [withAnimations]); + useTimeout(() => { + if (!isReady) { + setIsReady(true); + } + }, LAYER_ANIMATION_DURATION_MS); + function handleOpenEnd(e: React.TransitionEvent) { if (e.propertyName === 'transform' && e.target === e.currentTarget) { setIsReady(Boolean(chatId));