@kadoui/react
Version:
Kadoui primitive components for React
30 lines (29 loc) • 1.02 kB
JavaScript
"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 }));
}