import { _, component, invalidate, render } from "ivi"; import { h1 } from "ivi-html"; const Counter = component((c) => { let counter = 0; const ticker = useEffect(c, (interval) => { const id = setInterval(() => { counter++; invalidate(c); }, interval); return () => clearInterval(id); }); return (interval) => ( ticker(interval), div(_, _, `Counter: ${counter}`), ); }); render( Counter(1000), document.getElementById("app"), );