import React, { useCallback, useMemo, useRef, useState } from 'react'; import styled from 'styled-components'; import { Transition } from '@headlessui/react'; const MenuContainer = styled.div` min-width: 100px; position: absolute; z-index: 99; cursor: pointer; padding: 4px; `; interface ClickMenuProps { x: number; y: number; children?: React.ReactNode | Iterable; } const ClickMenu: React.FC = (props) => { const { x, y, children } = props; const [rect, setRect] = useState(); const containerCb = useCallback((el: HTMLDivElement) => { if (el) { setRect(el.getBoundingClientRect()); } }, []); const left = x - (rect?.left ?? 0); const top = y - (rect?.top ?? 0); return (
{children}
); }; export default ClickMenu;