Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 27x | import { useEffect, useState } from 'react';
const useActiveElement = () => {
const [active, setActive] = useState(document.activeElement);
const handleFocusIn = () => {
setActive(document.activeElement);
};
const hasParent = (id) => {
return active.closest(`[id^=${id}]`) !== null;
};
useEffect(() => {
document.addEventListener('focusin', handleFocusIn);
return () => {
document.removeEventListener('focusin', handleFocusIn);
};
}, []);
return { active, hasParent };
};
export default useActiveElement;
|