import React, { useState } from 'react' import { motion } from 'framer-motion' import { HiCake, HiGift, HiCalendar } from 'react-icons/hi2' import dayjs from 'dayjs' import isBetween from 'dayjs/plugin/isBetween' import { mockBirthdays, mockAnniversaries, Birthday, WorkAnniversary } from '../../mocks/mockIntranetData' dayjs.extend(isBetween) const BirthdaysModule: React.FC = () => { const [selectedMonth, setSelectedMonth] = useState(dayjs().month()) const months = [ 'Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık' ] // Bugünün doğum günleri const todayBirthdays = mockBirthdays.filter(b => dayjs(b.date).month() === dayjs().month() && dayjs(b.date).date() === dayjs().date() ) // Bu haftanın doğum günleri const thisWeekBirthdays = mockBirthdays.filter(b => { const birthDate = dayjs().year(dayjs().year()).month(dayjs(b.date).month()).date(dayjs(b.date).date()) return birthDate.isBetween(dayjs().startOf('week'), dayjs().endOf('week'), null, '[]') }) // Seçilen aydaki doğum günleri const monthBirthdays = mockBirthdays.filter(b => dayjs(b.date).month() === selectedMonth) .sort((a, b) => dayjs(a.date).date() - dayjs(b.date).date()) // Bu ayki iş yıldönümleri const thisMonthAnniversaries = mockAnniversaries.filter((a: WorkAnniversary) => dayjs(a.hireDate).month() === dayjs().month()) const getBirthdayMessage = (birthday: Birthday) => { const age = birthday.age || dayjs().year() - dayjs(birthday.date).year() return `${age}. yaş günü kutlu olsun! 🎉` } const getAnniversaryMessage = (anniversary: WorkAnniversary) => { return `${anniversary.years} yıllık iş birliğimiz için teşekkürler! 🎊` } return (
{/* Header */}

🎂 Doğum Günleri & Yıldönümleri

Ekip üyelerimizin özel günlerini kutlayalım

{/* Stats */}
{/* Bugün */}
{todayBirthdays.length}

Bugün Doğanlar

{todayBirthdays.length > 0 ? 'Kutlama zamanı!' : 'Bugün doğum günü yok'}

{/* Bu Hafta */}
{thisWeekBirthdays.length}

Bu Hafta

{dayjs().startOf('week').format('DD MMM')} - {dayjs().endOf('week').format('DD MMM')}

{/* İş Yıldönümleri */}
{thisMonthAnniversaries.length}

Bu Ay Yıldönümü

{dayjs().format('MMMM')} ayında

{/* Bugünün Doğum Günleri */} {todayBirthdays.length > 0 && (

🎉 Bugün Doğum Günü Olanlar

{todayBirthdays.map((birthday, idx) => (
{birthday.employee.fullName}

{birthday.employee.fullName}

{birthday.employee.department?.name || 'Genel'}

{getBirthdayMessage(birthday)}

))}
)} {/* Ay Seçici */}

📅 Aylık Doğum Günleri

{/* Doğum Günleri Listesi */}
{monthBirthdays.map((birthday, idx) => { const isToday = dayjs(birthday.date).month() === dayjs().month() && dayjs(birthday.date).date() === dayjs().date() return (
{dayjs(birthday.date).date()} {months[selectedMonth].substring(0, 3)}
{birthday.employee.fullName}

{birthday.employee.fullName}

{birthday.employee.department?.name || 'Genel'}

{birthday.age || dayjs().year() - dayjs(birthday.date).year()} yaşında

{isToday && ( 🎂 Bugün! )}
) })} {monthBirthdays.length === 0 && (

{months[selectedMonth]} ayında doğum günü yok

)}
{/* İş Yıldönümleri */} {thisMonthAnniversaries.length > 0 && (

🎊 Bu Ayki İş Yıldönümleri

{thisMonthAnniversaries.map((anniversary: WorkAnniversary, idx: number) => (
{anniversary.employee.fullName}

{anniversary.employee.fullName}

{anniversary.employee.department?.name || 'Genel'}

{getAnniversaryMessage(anniversary)}

{anniversary.years} YIL
))}
)}
) } export default BirthdaysModule