@uifabric/experiments
Version:
Experimental React components for building experiences for Microsoft 365.
34 lines • 1.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var React = require("react");
var Utilities_1 = require("../../../Utilities");
/* eslint-disable deprecation/deprecation */
/** @deprecated */
exports.useSplitButtonState = function (props) {
var _a = React.useState(false), expanded = _a[0], setExpanded = _a[1];
var disabled = props.disabled, onMenuDismiss = props.onMenuDismiss, onSecondaryActionClick = props.onSecondaryActionClick;
var _onMenuDismiss = React.useCallback(function () {
onMenuDismiss && onMenuDismiss();
setExpanded(false);
}, [onMenuDismiss]);
var _onSecondaryActionClick = React.useCallback(function (ev) {
if (!disabled) {
if (onSecondaryActionClick) {
onSecondaryActionClick(ev);
if (ev.defaultPrevented) {
return;
}
}
setExpanded(!expanded);
}
}, [disabled, expanded, onSecondaryActionClick]);
var _onKeyDown = React.useCallback(function (ev) {
if (!disabled && (ev.altKey || ev.metaKey) && ev.keyCode === Utilities_1.KeyCodes.down) {
setExpanded(!expanded);
}
}, [disabled, expanded]);
var viewProps = tslib_1.__assign(tslib_1.__assign({}, props), { expanded: expanded, onKeyDown: _onKeyDown, onMenuDismiss: _onMenuDismiss, onSecondaryActionClick: _onSecondaryActionClick });
return viewProps;
};
//# sourceMappingURL=SplitButton.state.js.map