import { MenuAlt4Icon } from "@heroicons/react/outline" import { useRect } from "@reach/rect" import clsx from "clsx" import React, { useRef, useState } from "react" import { FocusOn } from "react-focus-on" import { linkClass } from "../styles/components" // todo: remove useRect usage and rely on css absolute positioning instead export function PopoverMenu({ children }: { children: React.ReactNode }) { const [visible, setVisible] = useState(false) const buttonRef = useRef(null) const buttonRect = useRect(buttonRef) const panelRef = useRef(null) const panelRect = useRect(panelRef) /* eslint-disable jsx-a11y/no-static-element-interactions */ /* eslint-disable jsx-a11y/click-events-have-key-events */ return ( <> setVisible(false)} onEscapeKey={() => setVisible(false)} >
setVisible(false)} >
{children}
) } PopoverMenu.itemClass = clsx` px-3 py-2 transition text-left font-medium block opacity-50 hover:opacity-100 hover:bg-black/30 `