File size: 850 Bytes
6d65f0c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import { useCountdown } from '@/hooks/useCountdown';

interface CountdownTimerProps {
  deadline: Date | null;
  className?: string;
}

const CountdownTimer = ({ deadline, className = "" }: CountdownTimerProps) => {
  const { days, hours, minutes, seconds, isExpired } = useCountdown(deadline);

  if (isExpired || !deadline) {
    return (
      <div className={`text-red-600 font-medium ${className}`}>
        Deadline passed
      </div>
    );
  }

  const formatNumber = (num: number) => num.toString().padStart(2, '0');

  return (
    <div className={`font-mono text-lg font-bold ${className}`}>
      <span className="text-blue-600">
        {days > 0 && `${days} day${days !== 1 ? 's' : ''} `}
        {formatNumber(hours)}h {formatNumber(minutes)}m {formatNumber(seconds)}s
      </span>
    </div>
  );
};

export default CountdownTimer;