@remotion/studio
Version:
APIs for interacting with the Remotion Studio
27 lines (26 loc) • 1.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SubMenuComponent = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const mobile_layout_1 = require("../../helpers/mobile-layout");
const noop_1 = require("../../helpers/noop");
const z_index_1 = require("../../state/z-index");
const MenuContent_1 = require("../NewComposition/MenuContent");
const portals_1 = require("./portals");
const SubMenuComponent = ({ portalStyle, subMenuActivated, subMenu, onQuitFullMenu, onQuitSubMenu, }) => {
const mobileLayout = (0, mobile_layout_1.useMobileLayout)();
const onOutsideClick = (0, react_1.useCallback)((e) => {
if (portals_1.portals.find((p) => p.contains(e)) || mobileLayout) {
onQuitSubMenu();
}
else {
onQuitFullMenu();
}
}, [mobileLayout, onQuitFullMenu, onQuitSubMenu]);
return (jsx_runtime_1.jsx(z_index_1.HigherZIndex, { onEscape: onQuitFullMenu, onOutsideClick: onOutsideClick, children: jsx_runtime_1.jsx("div", { style: portalStyle, className: "css-reset", children: jsx_runtime_1.jsx(MenuContent_1.MenuContent, { onNextMenu: noop_1.noop, onPreviousMenu: onQuitSubMenu, values: subMenu.items, onHide: onQuitFullMenu, leaveLeftSpace: subMenu.leaveLeftSpace, preselectIndex: subMenuActivated === 'without-mouse' &&
typeof subMenu.preselectIndex === 'number'
? subMenu.preselectIndex
: false, topItemCanBeUnselected: false, fixedHeight: null }) }) }));
};
exports.SubMenuComponent = SubMenuComponent;