@rc-component/drawer
Version:
drawer component for react
18 lines (16 loc) • 523 B
JavaScript
import React from 'react';
import { useLockFocus } from "@rc-component/util/es/Dom/focus";
export default function useFocusable(getContainer, open, autoFocus, focusTrap, mask) {
const mergedFocusTrap = focusTrap ?? mask !== false;
// Focus lock
const [ignoreElement] = useLockFocus(open && mergedFocusTrap, getContainer);
// Auto Focus
React.useEffect(() => {
if (open && autoFocus === true) {
getContainer()?.focus({
preventScroll: true
});
}
}, [open]);
return ignoreElement;
}