import React, { useEffect, useState } from 'react'; interface CountdownProps { targetDate: string; } const Countdown: React.FC = ({ targetDate }) => { const calculateTimeLeft = () => { const difference = new Date(targetDate).getTime() - new Date().getTime(); let timeLeft = { days: '0', hours: '0', minutes: '0', seconds: '0', }; if (difference > 0) { timeLeft = { days: Math.floor(difference / (1000 * 60 * 60 * 24)).toString(), hours: Math.floor((difference / (1000 * 60 * 60)) % 24).toString(), minutes: Math.floor((difference / 1000 / 60) % 60).toString(), seconds: Math.floor((difference / 1000) % 60).toString(), }; } return timeLeft; }; const [timeLeft, setTimeLeft] = useState({ days: '--', hours: '--', minutes: '--', seconds: '--', }); useEffect(() => { setTimeLeft(calculateTimeLeft()); const timer = setInterval(() => { setTimeLeft(calculateTimeLeft()); }, 1000); return () => clearInterval(timer); }, [targetDate]); return (
{timeLeft.days}
Days
{timeLeft.hours}
Hours
{timeLeft.minutes}
Minutes
{timeLeft.seconds}
Seconds
); }; export default Countdown;