@react-md/utils
Version:
General utils for react-md.
22 lines • 705 B
JavaScript
import { useCallback, useRef } from "react";
import { applyRef } from "../applyRef";
import { useKeyboardFocusContext } from "./movementContext";
/**
* @internal
* @remarks \@since 5.0.0
*/
export function useKeyboardFocusableElement(ref) {
var _a = useKeyboardFocusContext(), attach = _a.attach, detach = _a.detach;
var nodeRef = useRef(null);
return useCallback(function (instance) {
applyRef(instance, ref);
if (instance) {
attach(instance);
}
else if (nodeRef.current) {
detach(nodeRef.current);
}
nodeRef.current = instance;
}, [attach, detach, ref]);
}
//# sourceMappingURL=useKeyboardFocusableElement.js.map