@momentum-ui/react-collaboration
Version:
Cisco Momentum UI Framework for React Collaboration Applications
68 lines • 3.06 kB
JavaScript
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
import { useState } from 'react';
import { useFocus, useFocusWithin } from '@react-aria/interactions';
import { mergeProps } from '@react-aria/utils';
var useFocusState = function (props) {
var _a = useState(false), isFocused = _a[0], setFocus = _a[1];
var focusProps = useFocus({
onFocus: function () {
var _a;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
setFocus(true);
(_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call.apply(_a, __spreadArray([props], args, false));
},
onBlur: function () {
var _a;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
setFocus(false);
(_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call.apply(_a, __spreadArray([props], args, false));
},
}).focusProps;
return { isFocused: isFocused, focusProps: focusProps };
};
var useFocusWithinState = function (props) {
var _a = useState(false), isFocusedWithin = _a[0], setFocusWithin = _a[1];
var focusWithinProps = useFocusWithin({
onFocusWithin: function () {
var _a;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
setFocusWithin(true);
(_a = props.onFocusWithin) === null || _a === void 0 ? void 0 : _a.call.apply(_a, __spreadArray([props], args, false));
},
onBlurWithin: function () {
var _a;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
setFocusWithin(false);
(_a = props.onBlurWithin) === null || _a === void 0 ? void 0 : _a.call.apply(_a, __spreadArray([props], args, false));
},
}).focusWithinProps;
return { isFocusedWithin: isFocusedWithin, focusWithinProps: focusWithinProps };
};
var useFocusAndFocusWithinState = function (props) {
var _a = useFocusState(props), isFocused = _a.isFocused, focusProps = _a.focusProps;
var _b = useFocusWithinState(props), isFocusedWithin = _b.isFocusedWithin, focusWithinProps = _b.focusWithinProps;
var mergedFocusProps = mergeProps(focusProps, focusWithinProps);
return { isFocused: isFocused, isFocusedWithin: isFocusedWithin, focusProps: mergedFocusProps };
};
export { useFocusState, useFocusWithinState, useFocusAndFocusWithinState };
//# sourceMappingURL=useFocusState.js.map