import { useEffect, useState } from "react";
import { useGleanClick } from "../../telemetry/glean-context";
import { OBSERVATORY } from "../../telemetry/constants";
import { Button } from "../../ui/atoms/button";
export function RescanButton({
from,
duration,
onClickHandler,
}: {
from: Date;
duration: number;
onClickHandler: () => void;
}) {
function calculateRemainingTime() {
const endTime = from.getTime() + duration * 1000;
return Math.max(0, endTime - new Date().getTime());
}
const [remainingTime, setRemainingTime] = useState(() =>
calculateRemainingTime()
);
useEffect(() => {
const interval = setInterval(() => {
setRemainingTime(calculateRemainingTime());
}, 1000);
return () => clearInterval(interval);
});
const gleanClick = useGleanClick();
function rescan() {
gleanClick(`${OBSERVATORY}: rescan`);
onClickHandler();
}
const isExpired = remainingTime <= 0;
const remainingSecs = Math.floor(remainingTime / 1000) + 1;
const progressPercent = (remainingSecs * 100) / 60;
return !isExpired ? (
) : (
);
}