import { cn } from '@/utils/styling'; import { CountdownUnit, HOURS_IN_DAY, MILLISECONDS_IN_SECOND, MINUTES_IN_HOUR, SECONDS_IN_DAY, SECONDS_IN_HOUR, SECONDS_IN_MINUTE, } from './constants'; type UniformDate = { datetime: string; }; export const formatTime = (targetDate?: UniformDate) => { const endDate = new Date(targetDate?.datetime ?? 0).getTime(); const now = new Date().getTime(); const timeDifference = Math.max(Math.floor((endDate - now) / MILLISECONDS_IN_SECOND), 0); const seconds = Math.floor(timeDifference % SECONDS_IN_MINUTE); const minutes = Math.floor((timeDifference / SECONDS_IN_MINUTE) % MINUTES_IN_HOUR); const hours = Math.floor((timeDifference / SECONDS_IN_HOUR) % HOURS_IN_DAY); const days = Math.floor(timeDifference / SECONDS_IN_DAY); return { days, hours, minutes, seconds, timeDifference, }; }; export const renderNumberList = ({ maxUnitsCount, currentTime, unit, isAlignEnd, }: { maxUnitsCount: number; currentTime: number; unit: CountdownUnit; isAlignEnd?: boolean; }) => (