azure-devops-ui
Version:
React components for building web UI in Azure DevOps
1 lines • 1.7 kB
JavaScript
import{__assign,__extends}from"tslib";import"../../CommonImports";import"../../Core/core.css";import"./Menu.css";import"./MenuButton.css";import*as React from"react";import{ExpandableButton}from"../../Button";import{ContextualMenu}from"./Menu";var buttonId=1,MenuButton=function(n){function t(t){var i=n.call(this,t)||this;return i.dropdownButton=React.createRef(),i.expand=function(){i.dropdownButton.current&&i.dropdownButton.current.expand()},i.collapse=function(){i.dropdownButton.current&&i.dropdownButton.current.collapse()},i.renderMenu=function(o,t,n,e,r,u,s){var p="function"==typeof i.props.contextualMenuProps?i.props.contextualMenuProps():i.props.contextualMenuProps;return React.createElement(ContextualMenu,{anchorElement:n,anchorOffset:p.anchorOffset||e,anchorOrigin:p.anchorOrigin||r,anchorPoint:p.anchorPoint||u,fixedLayout:p.fixedLayout,menuOrigin:p.menuOrigin||s,menuProps:p.menuProps,className:p.className,onActivate:function(t,n){p.onActivate&&p.onActivate(t,n),o.collapse()},onDismiss:o.collapse})},i.state={id:i.props.id||"menu-button-"+buttonId++},i}return __extends(t,n),t.prototype.render=function(){var t=this.props.hideDropdownIcon,n="function"==typeof this.props.contextualMenuProps?this.props.contextualMenuProps():this.props.contextualMenuProps;return React.createElement(ExpandableButton,__assign({},__assign(__assign({},this.props),{menuProps:n.menuProps}),{dropdownId:null==(n=null==n?void 0:n.menuProps)?void 0:n.id,hideDropdownIcon:t,id:this.state.id,ref:this.dropdownButton,renderCallout:this.renderMenu}),this.props.children)},t.prototype.focus=function(){this.dropdownButton.current&&this.dropdownButton.current.focus()},t}(React.Component);export{MenuButton};