@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
65 lines • 1.31 kB
JavaScript
import React from 'react';
import Button from "../button/Button.js";
import { useMenuTriggerContext } from "./MenuContext.js";
import { jsx as _jsx } from "react/jsx-runtime";
export default function MenuButton(props) {
const {
children,
icon = 'more',
variant = 'secondary',
...rest
} = props;
const triggerContext = useMenuTriggerContext();
if (!triggerContext) {
return _jsx(Button, {
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 _jsx(Button, {
variant: variant,
icon: icon,
selected: active,
ref: ref,
...restTriggerProps,
...rest
});
}
//# sourceMappingURL=MenuButton.js.map