Sender Group Container: Fix menu ref (#6136)

This commit is contained in:
Alexander Zinchuk 2025-08-21 12:05:06 +02:00
parent d10dfa93c0
commit 322b0defc0

View File

@ -3,7 +3,6 @@ import type React from '../../../lib/teact/teact';
import { import {
memo, memo,
useEffect, useEffect,
useRef,
} from '../../../lib/teact/teact'; } from '../../../lib/teact/teact';
import { getActions, withGlobal } from '../../../global'; import { getActions, withGlobal } from '../../../global';
@ -76,7 +75,6 @@ const SenderGroupContainer: FC<OwnProps & StateProps> = ({
canPost, canPost,
}) => { }) => {
const { openChat, updateInsertingPeerIdMention } = getActions(); const { openChat, updateInsertingPeerIdMention } = getActions();
const ref = useRef<HTMLDivElement>();
const { forwardInfo } = message; const { forwardInfo } = message;
@ -134,12 +132,12 @@ const SenderGroupContainer: FC<OwnProps & StateProps> = ({
isContextMenuOpen, contextMenuAnchor, isContextMenuOpen, contextMenuAnchor,
handleContextMenu, handleContextMenuClose, handleContextMenu, handleContextMenuClose,
handleContextMenuHide, handleContextMenuHide,
} = useContextMenuHandlers(ref); } = useContextMenuHandlers(avatarRef);
const getTriggerElement = useLastCallback(() => avatarRef.current); const getTriggerElement = useLastCallback(() => avatarRef.current);
const getRootElement = useLastCallback(() => document.querySelector('.Transition_slide-active > .MessageList')); const getRootElement = useLastCallback(() => document.querySelector('.Transition_slide-active > .MessageList'));
const getMenuElement = useLastCallback( const getMenuElement = useLastCallback(
() => ref?.current?.querySelector(`.${styles.contextMenu} .bubble`), () => avatarRef?.current?.querySelector(`.${styles.contextMenu} .bubble`),
); );
const getLayout = useLastCallback(() => ({ withPortal: true })); const getLayout = useLastCallback(() => ({ withPortal: true }));
@ -204,14 +202,14 @@ const SenderGroupContainer: FC<OwnProps & StateProps> = ({
); );
return ( return (
<div id={id} className={className} ref={ref}> <div id={id} className={className}>
{shouldRender && ( {shouldRender && (
<div ref={avatarRef} className={styles.avatarContainer}> <div ref={avatarRef} className={styles.avatarContainer}>
{renderAvatar()} {renderAvatar()}
{shouldRenderContextMenu && renderContextMenu()}
</div> </div>
)} )}
{children} {children}
{shouldRenderContextMenu && renderContextMenu()}
</div> </div>
); );
}; };