diff options
author | crupest <crupest@outlook.com> | 2021-06-30 19:00:13 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2021-06-30 19:00:13 +0800 |
commit | bb7a017dba4c466eaf167627b3605cf539b1e516 (patch) | |
tree | 28f155729e8a96b184a42b2a19cbd448e0f7ab3f /FrontEnd/src/views/common/menu/PopupMenu.tsx | |
parent | 839daa0eac6fdbe84f45e8572e5ab07126b7d67c (diff) | |
download | timeline-bb7a017dba4c466eaf167627b3605cf539b1e516.tar.gz timeline-bb7a017dba4c466eaf167627b3605cf539b1e516.tar.bz2 timeline-bb7a017dba4c466eaf167627b3605cf539b1e516.zip |
...
Diffstat (limited to 'FrontEnd/src/views/common/menu/PopupMenu.tsx')
-rw-r--r-- | FrontEnd/src/views/common/menu/PopupMenu.tsx | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/FrontEnd/src/views/common/menu/PopupMenu.tsx b/FrontEnd/src/views/common/menu/PopupMenu.tsx index 851f3bee..d7b81f49 100644 --- a/FrontEnd/src/views/common/menu/PopupMenu.tsx +++ b/FrontEnd/src/views/common/menu/PopupMenu.tsx @@ -1,5 +1,6 @@ import classNames from "classnames"; import React from "react"; +import { createPortal } from "react-dom"; import { usePopper } from "react-popper"; import Menu, { MenuItems } from "./Menu"; @@ -57,21 +58,25 @@ const PopupMenu: React.FC<PopupMenuProps> = ({ > {children} </div> - {show ? ( - <div - ref={setPopperElement} - className="cru-popup-menu-menu-container" - style={styles.popper} - {...attributes.popper} - > - <Menu - items={items} - onItemClicked={() => { - setShow(false); - }} - /> - </div> - ) : null} + {show + ? createPortal( + <div + ref={setPopperElement} + className="cru-popup-menu-menu-container" + style={styles.popper} + {...attributes.popper} + > + <Menu + items={items} + onItemClicked={() => { + setShow(false); + }} + /> + </div>, + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + document.getElementById("portal")! + ) + : null} </> ); }; |