@uifabric/experiments
Version:
Experimental React components for building experiences for Microsoft 365.
45 lines • 1.8 kB
JavaScript
import { __assign } from "tslib";
import * as React from 'react';
import { useControlledState } from '../../../Foundation';
import { KeyCodes } from '../../../Utilities';
/* eslint-disable deprecation/deprecation */
/** @deprecated */
export var useMenuButtonState = function (props) {
var menuButtonRef = React.useRef(null);
var _a = 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 === KeyCodes.down) {
setExpanded(true);
}
}
}, [disabled, onKeyDown, setExpanded]);
var viewProps = __assign(__assign({}, props), { expanded: expanded, onClick: _onClick, onKeyDown: _onKeyDown, onMenuDismiss: _onMenuDismiss, menuButtonRef: menuButtonRef });
return viewProps;
};
//# sourceMappingURL=MenuButton.state.js.map