import SectionContainerWithCn from '~/components/Layouts/SectionContainerWithCn' import { ReactNode, useEffect, useState } from 'react' import { cn } from 'ui' export const TicketHeader = ({ children, hidden }: { children: ReactNode; hidden?: boolean }) => { if (hidden) return null return ( {children} ) } const SingleTick = ({ className }: { className?: string }) => { return (
) } export const TicketHeaderClaim = () => { return (
{Array.from({ length: 7 }).map((_, i) => ( ))}
Launch Week is coming. Stay tuned!
{Array.from({ length: 7 }).map((_, i) => ( ))}
) } interface TicketHeaderRemainingTimeProps { targetDate: string | Date } export const TicketHeaderRemainingTime = ({ targetDate: extTargetDate, }: TicketHeaderRemainingTimeProps) => { const [timeLeft, setTimeLeft] = useState('---------------') useEffect(() => { const calculateTimeLeft = () => { const targetDate = new Date(extTargetDate) const now = new Date() // Calculate the time difference in milliseconds const difference = targetDate.getTime() - now.getTime() if (difference <= 0) { setTimeLeft('00D:00H:00M:00S') return } const days = Math.floor(difference / (1000 * 60 * 60 * 24)) const hours = Math.floor((difference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)) const minutes = Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60)) const seconds = Math.floor((difference % (1000 * 60)) / 1000) // Format the time left setTimeLeft( `${days.toString().padStart(2, '0')}D:${hours.toString().padStart(2, '0')}H:${minutes .toString() .padStart(2, '0')}M:${seconds.toString().padStart(2, '0')}S` ) } calculateTimeLeft() const interval = setInterval(calculateTimeLeft, 1000) return () => clearInterval(interval) }, [extTargetDate]) return (
{timeLeft}
TIME LEFT
) } export const TicketHeaderDate = () => { const [time, setTime] = useState('') useEffect(() => { const updateTime = () => { const now = new Date() const hours = now.getHours().toString().padStart(2, '0') const minutes = now.getMinutes().toString().padStart(2, '0') const seconds = now.getSeconds().toString().padStart(2, '0') setTime(`${hours}:${minutes}:${seconds}`) } updateTime() const interval = setInterval(updateTime, 1000) return () => clearInterval(interval) }, []) return (
{time}
LOCAL TIME
) }