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 (
)
}
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 (
)
}