From a59a3a42174ccc3bca0b917f43161654b3371c1d Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Fri, 6 Sep 2024 15:43:23 +0200 Subject: [PATCH] [Refactoring] Simplify `disableScrolling/enableScrolling` --- src/components/middle/HeaderMenuContainer.tsx | 14 ++++++-------- .../middle/message/MessageContextMenu.tsx | 6 ++---- src/util/scrollLock.ts | 2 ++ 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/components/middle/HeaderMenuContainer.tsx b/src/components/middle/HeaderMenuContainer.tsx index 1955ef421..6bca09a53 100644 --- a/src/components/middle/HeaderMenuContainer.tsx +++ b/src/components/middle/HeaderMenuContainer.tsx @@ -24,19 +24,21 @@ import { } from '../../global/helpers'; import { selectBot, - selectCanManage, selectCanTranslateChat, + selectCanManage, + selectCanTranslateChat, selectChat, selectChatFullInfo, selectCurrentMessageList, selectIsChatWithSelf, selectIsPremiumPurchaseBlocked, - selectIsRightColumnShown, selectNotifyExceptions, + selectIsRightColumnShown, + selectNotifyExceptions, selectNotifySettings, selectTabState, selectUser, selectUserFullInfo, } from '../../global/selectors'; -import { disableScrolling, enableScrolling } from '../../util/scrollLock'; +import { disableScrolling } from '../../util/scrollLock'; import useAppLayout from '../../hooks/useAppLayout'; import useFlag from '../../hooks/useFlag'; @@ -391,11 +393,7 @@ const HeaderMenuContainer: FC = ({ closeMenu(); }); - useEffect(() => { - disableScrolling(); - - return enableScrolling; - }, []); + useEffect(disableScrolling, []); const lang = useOldLang(); diff --git a/src/components/middle/message/MessageContextMenu.tsx b/src/components/middle/message/MessageContextMenu.tsx index 66e537692..3b36d010a 100644 --- a/src/components/middle/message/MessageContextMenu.tsx +++ b/src/components/middle/message/MessageContextMenu.tsx @@ -20,7 +20,7 @@ import type { IAnchorPosition } from '../../../types'; import { getUserFullName, isUserId } from '../../../global/helpers'; import buildClassName from '../../../util/buildClassName'; -import { disableScrolling, enableScrolling } from '../../../util/scrollLock'; +import { disableScrolling } from '../../../util/scrollLock'; import { REM } from '../../common/helpers/mediaDimensions'; import renderText from '../../common/helpers/renderText'; import { getMessageCopyOptions } from './helpers/copyOptions'; @@ -323,9 +323,7 @@ const MessageContextMenu: FC = ({ }, [isOpen, markIsReady, unmarkIsReady]); useEffect(() => { - disableScrolling(scrollableRef.current, '.ReactionPicker'); - - return enableScrolling; + return disableScrolling(scrollableRef.current, '.ReactionPicker'); }, [isOpen]); const handleOpenMessageReactionPicker = useLastCallback((position: IAnchorPosition) => { diff --git a/src/util/scrollLock.ts b/src/util/scrollLock.ts index 763b04fe1..3fab89c6c 100644 --- a/src/util/scrollLock.ts +++ b/src/util/scrollLock.ts @@ -67,6 +67,8 @@ export function disableScrolling(el?: HTMLElement | null, _excludedClosestSelect document.addEventListener('wheel', preventDefault, { passive: false }); document.addEventListener('touchmove', preventDefault, { passive: false }); document.onkeydown = preventDefaultForScrollKeys; + + return enableScrolling; } export function enableScrolling() {