Website/components/elements/CounterUpDirectly.js
2025-04-08 14:37:17 +07:00

27 lines
767 B
JavaScript

"use client";
import { useEffect, useState } from "react";
import Counter from "./Counter";
export default function CounterUp({ count }) {
const [isMounted, setIsMounted] = useState(false);
useEffect(() => {
const observer = new IntersectionObserver(
([entry]) => {
if (entry.isIntersecting) {
setIsMounted(true);
observer.disconnect();
}
},
{ threshold: 0.1 }
);
const element = document.querySelector(".odometer");
if (element) observer.observe(element);
return () => observer.disconnect();
}, []);
return <span className="odometer">{isMounted && <Counter end={count} duration={20} />}</span>;
}