@uifabric/experiments
Version:
Experimental React components for building experiences for Office 365.
52 lines • 2.11 kB
JavaScript
define(["require", "exports", "tslib", "../../../utilities/BaseState"], function (require, exports, tslib_1, BaseState_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var MenuButtonState = /** @class */ (function (_super) {
tslib_1.__extends(MenuButtonState, _super);
function MenuButtonState(props) {
var _this = _super.call(this, props, {
controlledProps: ['expanded']
}) || this;
_this._onMenuDismiss = function () {
_this.setState({
expanded: false
});
};
_this._onClick = function (ev) {
var _a = _this.props, disabled = _a.disabled, onClick = _a.onClick;
if (!disabled) {
if (onClick) {
onClick(ev);
if (ev.defaultPrevented) {
return;
}
}
_this.setState({
expanded: !_this.state.expanded,
menuTarget: ev.currentTarget
});
}
};
_this._onKeyDown = function (ev) {
var disabled = _this.props.disabled;
if (!disabled && (ev.altKey || ev.metaKey) && ev.keyCode === 40) {
_this.setState({
expanded: !_this.state.expanded,
menuTarget: ev.currentTarget
});
}
};
_this.state = {
expanded: !!props.defaultExpanded,
onClick: _this._onClick,
onKeyDown: _this._onKeyDown,
onMenuDismiss: _this._onMenuDismiss,
menuTarget: undefined
};
return _this;
}
return MenuButtonState;
}(BaseState_1.BaseState));
exports.MenuButtonState = MenuButtonState;
});
//# sourceMappingURL=MenuButton.state.js.map