@yamada-ui/menu
Version:
Yamada UI menu component
51 lines (49 loc) • 1.63 kB
JavaScript
"use client"
import {
useContextMenu
} from "./chunk-IWH3B4PS.mjs";
// src/context-menu-trigger.tsx
import { forwardRef, ui } from "@yamada-ui/core";
import { PopoverAnchor, PopoverTrigger } from "@yamada-ui/popover";
import { cx, handlerAll } from "@yamada-ui/utils";
import { useState } from "react";
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
var ContextMenuTrigger = forwardRef(
({ className, children, ...rest }, ref) => {
var _a;
const { styles } = (_a = useContextMenu()) != null ? _a : {};
const [position, setPosition] = useState({ left: 0, top: 0 });
const css = { ...styles == null ? void 0 : styles.container };
const onContextMenu = (ev) => {
setPosition({ left: ev.pageX, top: ev.pageY });
};
return /* @__PURE__ */ jsxs(Fragment, { children: [
/* @__PURE__ */ jsx(PopoverAnchor, { children: /* @__PURE__ */ jsx(
ui.div,
{
className: "ui-context-menu__anchor",
style: { position: "absolute", ...position }
}
) }),
/* @__PURE__ */ jsx(PopoverTrigger, { children: /* @__PURE__ */ jsx(
ui.div,
{
ref,
className: cx("ui-context-menu", className),
"aria-haspopup": "menu",
role: "application",
__css: css,
...rest,
onContextMenu: handlerAll(rest.onContextMenu, onContextMenu),
children
}
) })
] });
}
);
ContextMenuTrigger.displayName = "ContextMenuTrigger";
ContextMenuTrigger.__ui__ = "ContextMenuTrigger";
export {
ContextMenuTrigger
};
//# sourceMappingURL=chunk-VDTE5ERA.mjs.map