@awsui/components-react
Version:
On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en
27 lines • 985 B
JavaScript
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
import { useEffect, useRef } from 'react';
import { fireNonCancelableEvent } from '../events';
import FocusTracker from '../focus-tracker';
export const useFocusTracker = ({ rootRef, onBlur, onFocus }) => {
const focusTracker = useRef(null);
useEffect(() => {
if (!rootRef.current) {
return;
}
focusTracker.current = new FocusTracker(rootRef.current, {
onFocusLeave: () => {
fireNonCancelableEvent(onBlur);
},
onFocusEnter: () => {
fireNonCancelableEvent(onFocus);
},
});
focusTracker.current.initialize();
return () => {
var _a;
(_a = focusTracker.current) === null || _a === void 0 ? void 0 : _a.destroy();
};
}, [rootRef, onBlur, onFocus]);
};
//# sourceMappingURL=use-focus-tracker.js.map