UNPKG

@kadoui/react

Version:

Kadoui primitive components for React

30 lines (29 loc) 1.02 kB
"use client"; import { jsx as _jsx } from "react/jsx-runtime"; import { use, useEffect } from "react"; import { selectAccessibleChildren } from "../../utils"; import { ContextMenuContext } from "./ContextMenuContext"; export function ContextMenuBody({ onContextMenu, ...p }) { const { contentRef, position, isOpen } = use(ContextMenuContext); useEffect(() => { if (!contentRef.current) { return; } if (isOpen) { const children = selectAccessibleChildren(contentRef.current); const firstChild = children[0]; if (!firstChild) { return; } firstChild.focus(); } }, [isOpen, position, contentRef]); return (_jsx("div", { ref: contentRef, "data-state": isOpen, onContextMenu: (ev) => { ev.stopPropagation(); ev.preventDefault(); onContextMenu?.(ev); }, style: { top: position?.y, left: position?.x, }, ...p })); }