const React = require('react') const ReactDOM = require('react-dom') const { useState, useEffect } = require('react') const Timer = () => { const [seconds, setSeconds] = useState(0); const [isActive, setIsActive] = useState(false); function toggle() { setIsActive(!isActive); } function reset() { setSeconds(0); setIsActive(false); } useEffect(() => { let interval = null; if (isActive) { interval = setInterval(() => { setSeconds(seconds => seconds + 1); }, 1000); } else if (!isActive && seconds !== 0) { clearInterval(interval); } return () => clearInterval(interval); }, [isActive, seconds]); return (
{seconds}s
); }; if (typeof window === 'undefined') { } else { const componentContainers = document.querySelectorAll('.react-component-Timer') for (const componentContainer of componentContainers) { ReactDOM.render(React.createElement(Timer, {}, componentContainer.children[0].innerText), componentContainer) } } module.exports = Timer