Skip to content

Commit 3546c68

Browse files
committed
Fix app menus position
1 parent 442657b commit 3546c68

2 files changed

Lines changed: 12 additions & 5 deletions

File tree

src/components/BorderedApp/BorderedApp.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ function BorderedApp({
9999
<StyledWindowMenus className="drag-to-move">
100100
{menus?.map((m) => (
101101
<BorderedAppMenu
102+
appRef={appRef}
102103
title={m.title}
103104
items={m.items ?? []}
104105
key={m.title}

src/components/BorderedApp/BorderedAppMenu/BorderedAppMenu.tsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useEffect, useRef, useState } from "react";
1+
import React, { useEffect, useRef, useState } from "react";
22
import useDetectMouseDownOutside from "../../../hooks/useDetectMouseDownOutside";
33
import MenuItems, { MenuItemProps } from "../../MenuItems";
44

@@ -7,18 +7,24 @@ import { StyledAppMenu } from "./styles";
77
export interface BorderedAppMenuProps {
88
title: string;
99
items: Array<MenuItemProps>;
10+
appRef: React.RefObject<HTMLDivElement>;
1011
}
1112

12-
function BorderedAppMenu({ title, items }: BorderedAppMenuProps) {
13+
function BorderedAppMenu({ title, appRef, items }: BorderedAppMenuProps) {
1314
const [open, setOpen] = useState<boolean>(false);
1415
const elementRef = useRef<HTMLDivElement>(null);
1516
const position = useRef<{ x: number; y: number }>({ x: 0, y: 0 });
1617

1718
useEffect(() => {
1819
const rect = elementRef.current?.getBoundingClientRect();
19-
// TODO: Look into where this -10 comes from
20-
position.current = { x: (rect?.left ?? 0) - 10, y: rect?.height ?? 0 };
21-
}, [elementRef]);
20+
const appRect = appRef.current?.getBoundingClientRect();
21+
if (!rect || !appRect) return;
22+
23+
position.current = {
24+
x: (rect?.left ?? 0) - appRect.left,
25+
y: rect?.height ?? 0,
26+
};
27+
}, [appRef, elementRef]);
2228

2329
// Close the menu if an outside click occurs
2430
useDetectMouseDownOutside({

0 commit comments

Comments
 (0)