robosats/frontend/src/components/LinearDeterminate/LinearDeterminate.tsx

34 lines
835 B
TypeScript
Raw Normal View History

2022-09-09 17:18:04 +00:00
import React, { useState, useEffect } from 'react';
import { Box, LinearProgress } from '@mui/material';
import { calcTimeDelta } from 'react-countdown';
type Props = {
expiresAt: string;
totalSecsExp: number;
};
2022-09-09 17:18:04 +00:00
const LinearDeterminate = ({ expiresAt, totalSecsExp }: Props): JSX.Element => {
const [progress, setProgress] = useState<number>(0);
useEffect(() => {
const timer = setInterval(() => {
const left = calcTimeDelta(new Date(expiresAt)).total / 1000;
const newProgress = (left / totalSecsExp) * 100;
setProgress(newProgress);
}, 1000);
return () => {
clearInterval(timer);
};
}, [expiresAt, totalSecsExp]);
return (
<Box sx={{ width: '100%' }}>
2022-09-09 17:18:04 +00:00
<LinearProgress variant='determinate' value={progress} />
</Box>
);
};
export default LinearDeterminate;