@uifabric/experiments
Version:
Experimental React components for building experiences for Microsoft 365.
45 lines • 2.09 kB
JavaScript
define(["require", "exports", "tslib", "react", "../../../Foundation", "../../../Utilities"], function (require, exports, tslib_1, React, Foundation_1, Utilities_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/* eslint-disable deprecation/deprecation */
/** @deprecated */
exports.useMenuButtonState = function (props) {
var menuButtonRef = React.useRef(null);
var _a = Foundation_1.useControlledState(props, 'expanded', {
defaultPropName: 'defaultExpanded',
defaultPropValue: false,
}), expanded = _a[0], setExpanded = _a[1];
var disabled = props.disabled, onClick = props.onClick, onKeyDown = props.onKeyDown, onMenuDismiss = props.onMenuDismiss;
var _onMenuDismiss = React.useCallback(function () {
onMenuDismiss && onMenuDismiss();
setExpanded(false);
}, [onMenuDismiss, setExpanded]);
var _onClick = React.useCallback(function (ev) {
if (!disabled) {
if (onClick) {
onClick(ev);
if (ev.defaultPrevented) {
return;
}
}
setExpanded(!expanded);
}
}, [disabled, expanded, onClick, setExpanded]);
var _onKeyDown = React.useCallback(function (ev) {
if (!disabled) {
if (onKeyDown) {
onKeyDown(ev);
if (ev.defaultPrevented) {
return;
}
}
if ((ev.altKey || ev.metaKey) && ev.keyCode === Utilities_1.KeyCodes.down) {
setExpanded(true);
}
}
}, [disabled, onKeyDown, setExpanded]);
var viewProps = tslib_1.__assign(tslib_1.__assign({}, props), { expanded: expanded, onClick: _onClick, onKeyDown: _onKeyDown, onMenuDismiss: _onMenuDismiss, menuButtonRef: menuButtonRef });
return viewProps;
};
});
//# sourceMappingURL=MenuButton.state.js.map