UNPKG

@1771technologies/lytenyte-pro

Version:

Blazingly fast headless React data grid with 100s of features.

20 lines (19 loc) 918 B
import { jsx as _jsx } from "react/jsx-runtime"; import { forwardRef, useState } from "react"; import { useMenu } from "./use-menu.js"; import { useSubmenuContext } from "./submenu/submenu-context.js"; import { useCombinedRefs } from "@1771technologies/lytenyte-core/internal"; function ContainerImpl(props, ref) { const [menuEl, setMenuEl] = useState(null); const combinedRefs = useCombinedRefs(ref, setMenuEl); const sub = useSubmenuContext(); const finalRefs = useCombinedRefs(combinedRefs, sub?.submenuRef); useMenu(menuEl); if (sub && !sub.open) return null; return (_jsx("div", { ...props, role: "menu", ref: finalRefs, "data-ln-terminal-menu": !sub, "data-ln-submenu": sub ? true : undefined, "data-ln-menu": true, style: { ...props.style, ...(sub ? { position: "absolute" } : {}), } })); } export const Container = forwardRef(ContainerImpl);