import React from 'react' export function useDeferredUnmount({ delay = 0, mounted = true }) { const [shouldRender, setShouldRender] = React.useState(mounted) React.useEffect(() => { if (mounted) { setShouldRender(true) } else { const timeout = setTimeout(() => { setShouldRender(false) }, delay) return () => clearTimeout(timeout) } }, [delay, mounted]) return shouldRender } export default useDeferredUnmount