diff --git a/src/components/ContextMenu.tsx b/src/components/ContextMenu.tsx
index d64492fc..6936039f 100644
--- a/src/components/ContextMenu.tsx
+++ b/src/components/ContextMenu.tsx
@@ -37,6 +37,10 @@ const ContextMenu = ({
top={top}
left={left}
fitInViewport={true}
+ offsetLeft={appState.offsetLeft}
+ offsetTop={appState.offsetTop}
+ viewportWidth={appState.width}
+ viewportHeight={appState.height}
>
{
const popoverRef = useRef(null);
@@ -24,17 +32,14 @@ export const Popover = ({
if (fitInViewport && popoverRef.current) {
const element = popoverRef.current;
const { x, y, width, height } = element.getBoundingClientRect();
-
- const viewportWidth = window.innerWidth;
- if (x + width > viewportWidth) {
+ if (x + width - offsetLeft > viewportWidth) {
element.style.left = `${viewportWidth - width}px`;
}
- const viewportHeight = window.innerHeight;
- if (y + height > viewportHeight) {
+ if (y + height - offsetTop > viewportHeight) {
element.style.top = `${viewportHeight - height}px`;
}
}
- }, [fitInViewport]);
+ }, [fitInViewport, viewportWidth, viewportHeight, offsetLeft, offsetTop]);
useEffect(() => {
if (onCloseRequest) {