/** * Returns a controller object for setting a timeout that is properly cleaned up * once the component unmounts. New timeouts cancel and replace existing ones. * * * * ```tsx * const { set, clear } = useTimeout(); * const [hello, showHello] = useState(false); * //Display hello after 5 seconds * set(() => showHello(true), 5000); * return ( *