{comment?.replies?.pages?.topAll.comments
.sort((a, b) => a.timestamp - b.timestamp)
@@ -962,91 +990,99 @@ const Thread = () => {
replyMenuRefs.current[reply.cid] = el}
+ ref={el => {
+ replyMenuRefs.current[reply.cid] = el;
+ postMenuRef.current = el;
+ }}
className='post-menu-button'
- rotated={rotatedStates[reply.cid]}
- onClick={() => {
+ rotated={openMenuCid === reply.cid}
+ onClick={(event) => {
+ event.stopPropagation();
const rect = replyMenuRefs.current[reply.cid].getBoundingClientRect();
- const menu = document.querySelector(`.post-menu-reply-${reply.cid}`);
- menu.style.top = `calc(${rect.top + window.scrollY}px + 17px)`;
- menu.style.left = `${rect.left}px`;
-
- setRotatedStates(prevState => ({
- ...prevState,
- [reply.cid]: !prevState[reply.cid]
- }));
- }}
+ setMenuPosition({top: rect.top + window.scrollY, left: rect.left});
+ setOpenMenuCid(prevCid => (prevCid === reply.cid ? null : reply.cid));
+ }}
>
▶
-
+ , document.body
+ )}
{reply.replies?.pages?.topAll.comments
.sort((a, b) => a.timestamp - b.timestamp)