Spaces:
Running
Running
File size: 1,444 Bytes
bc139ec |
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 32 33 34 35 36 37 38 39 40 41 42 43 |
'use client'
import React, { useState, useEffect } from 'react'
interface DynamicCalendarIconProps {
size?: number | string
className?: string
}
export function DynamicCalendarIcon({ size = '100%', className = '' }: DynamicCalendarIconProps) {
const [date, setDate] = useState<Date | null>(null)
useEffect(() => {
setDate(new Date())
// Update date every minute to ensure it changes at midnight
const timer = setInterval(() => {
setDate(new Date())
}, 60000)
return () => clearInterval(timer)
}, [])
if (!date) return null
const dayName = date.toLocaleDateString('en-US', { weekday: 'short' }).toUpperCase()
const dayNumber = date.getDate()
return (
<div
className={`flex flex-col items-center justify-center bg-white rounded-xl overflow-hidden shadow-lg border border-gray-200 ${className}`}
style={{ width: size, height: size }}
>
{/* Red Header */}
<div className="w-full bg-red-500 text-white font-bold flex items-center justify-center h-[30%] text-[0.6em] tracking-wide">
{dayName}
</div>
{/* Date Body */}
<div className="flex-1 flex items-center justify-center bg-white w-full pb-1">
<span className="text-black font-bold text-[1.4em] leading-none">{dayNumber}</span>
</div>
</div>
)
}
|