Skip to content

Instantly share code, notes, and snippets.

@alexeyraspopov
Created January 23, 2020 01:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexeyraspopov/6535c07e81cfba058899e62ea59e466d to your computer and use it in GitHub Desktop.
Save alexeyraspopov/6535c07e81cfba058899e62ea59e466d to your computer and use it in GitHub Desktop.
function useTransitionState(ref) {
let [pending, setPending] = useState(false);
useLayoutEffect(() => {
let target = ref.current;
let handler = {
handleEvent(event) {
setPending(event.type === 'transitionstart');
}
}
target.addEventListener('transitionstart', handler);
target.addEventListener('transitionend', handler);
return () => {
target.removeEventListener('transitionstart', handler);
target.removeEventListener('transitionend', handler);
}
}, []);
return pending;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment