Files
KLC-Hr-Dashboard-Frontend/src/hooks/useCountUp.ts

26 lines
542 B
TypeScript

import { useEffect, useState } from 'react';
export const useCountUp = (end: number, duration: number = 1200) => {
const [count, setCount] = useState(0);
useEffect(() => {
let start = 0;
const increment = end / (duration / 16);
const timer = setInterval(() => {
start += increment;
if (start >= end) {
setCount(end);
clearInterval(timer);
} else {
setCount(Math.floor(start));
}
}, 16);
return () => clearInterval(timer);
}, [end, duration]);
return count;
};