From 43a2ba1c2657732318a245656d872031b9afe476 Mon Sep 17 00:00:00 2001 From: zubiden <19638254+zubiden@users.noreply.github.com> Date: Tue, 13 Jan 2026 01:14:17 +0100 Subject: [PATCH] Remove `freezeWhenClosed` HOC (#6575) --- .../common/embedded/EmbeddedMessage.tsx | 3 -- .../middle/composer/ChatCommandTooltip.tsx | 3 +- .../composer/ComposerEmbeddedMessage.tsx | 4 +-- src/components/ui/Modal.tsx | 3 +- src/hooks/useKeyboardListNavigation.ts | 2 +- src/util/hoc/freezeWhenClosed.ts | 28 ------------------- 6 files changed, 5 insertions(+), 38 deletions(-) delete mode 100644 src/util/hoc/freezeWhenClosed.ts diff --git a/src/components/common/embedded/EmbeddedMessage.tsx b/src/components/common/embedded/EmbeddedMessage.tsx index 7d0756c5b..f2df55b1e 100644 --- a/src/components/common/embedded/EmbeddedMessage.tsx +++ b/src/components/common/embedded/EmbeddedMessage.tsx @@ -24,7 +24,6 @@ import { getPeerTitle } from '../../../global/helpers/peers'; import buildClassName from '../../../util/buildClassName'; import { formatScheduledDateTime } from '../../../util/dates/dateFormat'; import { isUserId } from '../../../util/entities/ids'; -import freezeWhenClosed from '../../../util/hoc/freezeWhenClosed'; import { formatStarsAsIcon, formatTonAsIcon } from '../../../util/localization/format'; import { getPictogramDimensions } from '../helpers/mediaDimensions'; import renderText from '../helpers/renderText'; @@ -384,6 +383,4 @@ function renderPictogram( ); } -export const ClosableEmbeddedMessage = freezeWhenClosed(EmbeddedMessage); - export default EmbeddedMessage; diff --git a/src/components/middle/composer/ChatCommandTooltip.tsx b/src/components/middle/composer/ChatCommandTooltip.tsx index 9bf279263..4c3ed670f 100644 --- a/src/components/middle/composer/ChatCommandTooltip.tsx +++ b/src/components/middle/composer/ChatCommandTooltip.tsx @@ -11,7 +11,6 @@ import type { Signal } from '../../../util/signals'; import { getMainUsername } from '../../../global/helpers'; import buildClassName from '../../../util/buildClassName'; -import freezeWhenClosed from '../../../util/hoc/freezeWhenClosed'; import setTooltipItemVisible from '../../../util/setTooltipItemVisible'; import useLastCallback from '../../../hooks/useLastCallback'; @@ -166,4 +165,4 @@ const ChatCommandTooltip: FC = ({ ); }; -export default memo(freezeWhenClosed(ChatCommandTooltip)); +export default memo(ChatCommandTooltip); diff --git a/src/components/middle/composer/ComposerEmbeddedMessage.tsx b/src/components/middle/composer/ComposerEmbeddedMessage.tsx index 7cb17f9aa..92c5336ed 100644 --- a/src/components/middle/composer/ComposerEmbeddedMessage.tsx +++ b/src/components/middle/composer/ComposerEmbeddedMessage.tsx @@ -37,7 +37,7 @@ import useOldLang from '../../../hooks/useOldLang'; import usePeerColor from '../../../hooks/usePeerColor'; import useShowTransitionDeprecated from '../../../hooks/useShowTransitionDeprecated'; -import { ClosableEmbeddedMessage } from '../../common/embedded/EmbeddedMessage'; +import EmbeddedMessage from '../../common/embedded/EmbeddedMessage'; import Icon from '../../common/icons/Icon'; import Button from '../../ui/Button'; import Menu from '../../ui/Menu'; @@ -302,7 +302,7 @@ const ComposerEmbeddedMessage = ({ )} - = ({ ); }; -export default freezeWhenClosed(Modal); +export default Modal; diff --git a/src/hooks/useKeyboardListNavigation.ts b/src/hooks/useKeyboardListNavigation.ts index 7d0041c40..43a9a716a 100644 --- a/src/hooks/useKeyboardListNavigation.ts +++ b/src/hooks/useKeyboardListNavigation.ts @@ -28,7 +28,7 @@ const useKeyboardListNavigation = ( return useLastCallback((e: React.KeyboardEvent) => { const element = elementRef.current; - if (!element) { + if (!element || !isOpen) { return; } diff --git a/src/util/hoc/freezeWhenClosed.ts b/src/util/hoc/freezeWhenClosed.ts deleted file mode 100644 index 2a9186ae8..000000000 --- a/src/util/hoc/freezeWhenClosed.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { type FC, type Props, useRef } from '../../lib/teact/teact'; - -type InjectProps = FC[0] & P>; - -type OwnProps = { - ignoreFreeze?: boolean; -}; - -export default function freezeWhenClosed(Component: T): InjectProps { - function ComponentWrapper(props: Props) { - const newProps = useRef(props); - - if (props.ignoreFreeze) return Component(props); - - if (props.isOpen) { - newProps.current = props; - } else { - newProps.current = { - ...newProps.current, - isOpen: false, - }; - } - - return Component(newProps.current); - } - - return ComponentWrapper as T; -}