@1771technologies/lytenyte-pro
Version:
Blazingly fast headless React data grid with 100s of features.
20 lines (19 loc) • 918 B
JavaScript
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);