import React, { useEffect } from 'react';
import useTimeout from 'react-use/lib/useTimeout';

export const Delay: React.FC<{
  time?: number;
  children: any;
}> = ({ children, time }) => {
  const [isReady, cancel] = useTimeout(time || 0);

  useEffect(() => {
    return () => cancel();
  }, []);

  if (process.env.ENV === 'test') {
    return children;
  }

  return isReady() ? children : null;
};
