Remove infinite loop in useFromNow

This commit is contained in:
Stan Wohlwend 2024-04-12 09:08:56 +02:00
parent f444470a2c
commit 77da19ad20

View File

@ -7,10 +7,12 @@ export function useFromNow(date: Date): string {
const detailed = fromNowDetailed(date);
useEffect(() => {
const timeout = setTimeout(() => {
setInvalidationCounter(invalidationCounter + 1);
}, Math.round(detailed.secondsUntilChange * 1000));
return () => clearTimeout(timeout);
if (Number.isFinite(detailed.secondsUntilChange)) {
const timeout = setTimeout(() => {
setInvalidationCounter(invalidationCounter + 1);
}, Math.round(detailed.secondsUntilChange * 1000));
return () => clearTimeout(timeout);
}
}, [invalidationCounter, detailed.secondsUntilChange]);
return detailed.result;