From 770732beb4e17f95880152f19f0e4748e3e38456 Mon Sep 17 00:00:00 2001 From: Gigiaj Date: Sun, 15 Jun 2025 20:04:12 -0500 Subject: [PATCH] Pull out the dupes and just pass them parameter bloat is fine here as it shouldn't grow too much more --- src/app/features/room/MessageOptionsMenu.tsx | 34 ++++++-------------- 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/src/app/features/room/MessageOptionsMenu.tsx b/src/app/features/room/MessageOptionsMenu.tsx index 43e5b751..52c44cde 100644 --- a/src/app/features/room/MessageOptionsMenu.tsx +++ b/src/app/features/room/MessageOptionsMenu.tsx @@ -130,9 +130,17 @@ export function MessageOptionsMenu({ onReplyClick, onEditId, onActiveStateChange, + closeMenu, + menuAnchor, + emojiBoardAnchor, + handleOpenEmojiBoard, + handleOpenMenu, + handleAddReactions, + setMenuAnchor, + setEmojiBoardAnchor, }) { - const [menuAnchor, setMenuAnchor] = useState(); - const [emojiBoardAnchor, setEmojiBoardAnchor] = useState(); + // const [menuAnchor, setMenuAnchor] = useState(); + // const [emojiBoardAnchor, setEmojiBoardAnchor] = useState(); useEffect(() => { onActiveStateChange?.(!!menuAnchor || !!emojiBoardAnchor); @@ -141,28 +149,6 @@ export function MessageOptionsMenu({ const eventId = mEvent.getId(); if (!eventId) return null; - const closeMenu = () => { - setMenuAnchor(undefined); - }; - - const handleOpenMenu: MouseEventHandler = (evt) => { - const target = evt.currentTarget.parentElement?.parentElement ?? evt.currentTarget; - setMenuAnchor(target.getBoundingClientRect()); - }; - - const handleOpenEmojiBoard: MouseEventHandler = (evt) => { - const target = evt.currentTarget.parentElement?.parentElement ?? evt.currentTarget; - setEmojiBoardAnchor(target.getBoundingClientRect()); - }; - - const handleAddReactions: MouseEventHandler = () => { - const rect = menuAnchor; - closeMenu(); - // Use a timeout to allow the first menu to close before opening the next - setTimeout(() => { - setEmojiBoardAnchor(rect); - }, 100); - }; return (