system-copyright-react/src/components/card/CardProjLoading.tsx

30 lines
965 B
TypeScript
Raw Normal View History

2024-03-15 18:18:29 +08:00
import './card-proj-loading.css';
import {Loading3QuartersOutlined} from '@ant-design/icons';
import {IProjLoading} from "../../interfaces/card/ICardProj.ts";
2024-03-25 19:25:57 +08:00
import {useState} from "react";
export default function CardProjLoading(props: IProjLoading) {
const [duration, setDuration] = useState(props.duration);
const interval = setInterval(() => {
2024-03-26 11:54:30 +08:00
const last = duration - 1000;
if (last <= 0) {
setDuration(0);
2024-03-25 19:25:57 +08:00
clearInterval(interval);
props.handleCountDownOver();
return;
}
2024-03-26 11:54:30 +08:00
setDuration(last);
2024-03-25 19:25:57 +08:00
}, 1000);
2024-03-15 18:18:29 +08:00
return (
<div className="card-proj-loading">
<div className="title">
<Loading3QuartersOutlined spin={true} style={{color: '#0052d9'}}/>
<span className="label">{props.title}</span>
</div>
2024-03-26 11:54:30 +08:00
<div className="desc">{props.desc}{duration / 1000}s</div>
2024-03-15 18:18:29 +08:00
</div>
)
}