@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
72 lines (71 loc) • 1.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = MenuButton;
var _react = _interopRequireDefault(require("react"));
var _Button = _interopRequireDefault(require("../button/Button.js"));
var _MenuContext = require("./MenuContext.js");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function MenuButton(props) {
const {
children,
icon = 'more',
variant = 'secondary',
...rest
} = props;
const triggerContext = (0, _MenuContext.useMenuTriggerContext)();
if (!triggerContext) {
return (0, _jsxRuntime.jsx)(_Button.default, {
variant: variant,
icon: icon,
...rest
});
}
const {
active,
triggerProps,
open,
close,
toggle
} = triggerContext;
const {
ref,
...restTriggerProps
} = triggerProps;
if (typeof children === 'function') {
const renderProps = {
ref,
...restTriggerProps
};
Object.defineProperties(renderProps, {
active: {
value: active,
enumerable: false
},
open: {
value: open,
enumerable: false
},
close: {
value: close,
enumerable: false
},
toggle: {
value: toggle,
enumerable: false
}
});
return children(renderProps);
}
return (0, _jsxRuntime.jsx)(_Button.default, {
variant: variant,
icon: icon,
selected: active,
ref: ref,
...restTriggerProps,
...rest
});
}
//# sourceMappingURL=MenuButton.js.map