Skip to content

Instantly share code, notes, and snippets.

@pascalknecht
Forked from pstoica/OnBlurComponent.jsx
Created May 18, 2021 06:14
Show Gist options
  • Save pascalknecht/52f9ef2bd36e5a3d5451e032a38446c2 to your computer and use it in GitHub Desktop.
Save pascalknecht/52f9ef2bd36e5a3d5451e032a38446c2 to your computer and use it in GitHub Desktop.
onBlur for entire react element
function OnBlurComponent({ onBlur }) {
const handleBlur = (e) => {
const currentTarget = e.currentTarget;
// Check the newly focused element in the next tick of the event loop
setTimeout(() => {
// Check if the new activeElement is a child of the original container
if (!currentTarget.contains(document.activeElement)) {
// You can invoke a callback or add custom logic here
onBlur();
}
}, 0);
};
return (
<div tabIndex="1" onBlur={handleBlur}>
Hello <input type="text" value="world" />
</div>
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment