aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src
diff options
context:
space:
mode:
Diffstat (limited to 'FrontEnd/src')
-rw-r--r--FrontEnd/src/views/common/index.css2
-rw-r--r--FrontEnd/src/views/common/menu/PopupMenu.css4
-rw-r--r--FrontEnd/src/views/common/menu/PopupMenu.tsx32
3 files changed, 29 insertions, 9 deletions
diff --git a/FrontEnd/src/views/common/index.css b/FrontEnd/src/views/common/index.css
index e2769fe4..cb1cccd4 100644
--- a/FrontEnd/src/views/common/index.css
+++ b/FrontEnd/src/views/common/index.css
@@ -1,4 +1,6 @@
:root {
+ --cru-background-color: #f8f9fa;
+
--cru-primary-color: rgb(255, 105, 0);
--cru-primary-l1-color: rgb(255, 120, 26);
--cru-primary-l2-color: rgb(255, 135, 51);
diff --git a/FrontEnd/src/views/common/menu/PopupMenu.css b/FrontEnd/src/views/common/menu/PopupMenu.css
index 8465a1bb..8f8fd20e 100644
--- a/FrontEnd/src/views/common/menu/PopupMenu.css
+++ b/FrontEnd/src/views/common/menu/PopupMenu.css
@@ -1,3 +1,5 @@
.cru-popup-menu-menu-container {
-
+ border-radius: 5px;
+ border: var(--cru-primary-color) 1px solid;
+ background-color: var(--cru-background-color);
}
diff --git a/FrontEnd/src/views/common/menu/PopupMenu.tsx b/FrontEnd/src/views/common/menu/PopupMenu.tsx
index 50f80a91..851f3bee 100644
--- a/FrontEnd/src/views/common/menu/PopupMenu.tsx
+++ b/FrontEnd/src/views/common/menu/PopupMenu.tsx
@@ -25,12 +25,24 @@ const PopupMenu: React.FC<PopupMenuProps> = ({
React.useState<HTMLDivElement | null>(null);
const [popperElement, setPopperElement] =
React.useState<HTMLDivElement | null>(null);
- const [arrowElement, setArrowElement] = React.useState<HTMLDivElement | null>(
- null
- );
- const { styles, attributes } = usePopper(referenceElement, popperElement, {
- modifiers: [{ name: "arrow", options: { element: arrowElement } }],
- });
+ const { styles, attributes } = usePopper(referenceElement, popperElement);
+
+ React.useEffect(() => {
+ const handler = (event: MouseEvent): void => {
+ let element: HTMLElement | null = event.target as HTMLElement;
+ while (element) {
+ if (element == referenceElement || element == popperElement) {
+ return;
+ }
+ element = element.parentElement;
+ }
+ setShow(false);
+ };
+ document.addEventListener("click", handler);
+ return () => {
+ document.removeEventListener("click", handler);
+ };
+ }, [referenceElement, popperElement]);
return (
<>
@@ -52,8 +64,12 @@ const PopupMenu: React.FC<PopupMenuProps> = ({
style={styles.popper}
{...attributes.popper}
>
- <Menu items={items} />
- <div ref={setArrowElement} style={styles.arrow} />
+ <Menu
+ items={items}
+ onItemClicked={() => {
+ setShow(false);
+ }}
+ />
</div>
) : null}
</>