@awsui/components-react
Version:
AWS UI is a collection of [React](https://reactjs.org/) components that help create intuitive, responsive, and accessible user experiences for web applications. It is developed by Amazon Web Services (AWS). This work is available under the terms of the [A
26 lines (25 loc) • 902 B
JavaScript
import { useRef, useEffect } from 'react';
import { fireNonCancelableEvent } from '../events';
import FocusTracker from '../focus-tracker';
export var useFocusTracker = function (_a) {
var rootRef = _a.rootRef, onBlur = _a.onBlur, onFocus = _a.onFocus;
var focusTracker = useRef(null);
useEffect(function () {
if (!rootRef.current) {
return;
}
focusTracker.current = new FocusTracker(rootRef.current, {
onFocusLeave: function () {
fireNonCancelableEvent(onBlur);
},
onFocusEnter: function () {
fireNonCancelableEvent(onFocus);
}
});
focusTracker.current.initialize();
return function () {
var _a;
(_a = focusTracker.current) === null || _a === void 0 ? void 0 : _a.destroy();
};
}, [rootRef, onBlur, onFocus]);
};