@zohodesk/a11y
Version:
In this Package, We Provide Some Basic Components For Accessibility.
49 lines (47 loc) • 1.24 kB
JavaScript
import React from "react";
import useFocusScope from "./FocusControl/useFocusScope";
import { clearFocusStorage } from "./utils/focusScopeUtil";
import propTypes from "./props/propTypes";
import defaultProps from "./props/defaultProps";
const onDocumentMouseDown = e => {
clearFocusStorage(e);
};
document.addEventListener('mousedown', onDocumentMouseDown);
export default function FocusScope(props) {
let {
needRestoreFocus,
needAutoFocus,
needListNavigation,
needFocusLoop,
elementRef,
onClose,
onUpdateRestore,
onClearRestore,
onFocus,
needEnterAction,
loadNextOptions,
searchValue,
isFetchingOptions,
children
} = props;
useFocusScope({
needRestoreFocus: needRestoreFocus,
needAutoFocus: needAutoFocus,
needListNavigation: needListNavigation,
needFocusLoop: needFocusLoop,
onClose: onClose,
contentRef: () => {
return elementRef.current;
},
onUpdateRestore,
onClearRestore,
onFocus,
needEnterAction,
loadNextOptions,
searchValue,
isFetchingOptions
});
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
}
FocusScope.propTypes = propTypes;
FocusScope.defaultProps = defaultProps;