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 (
Ekip üyelerimizin özel günlerini kutlayalım
{todayBirthdays.length > 0 ? 'Kutlama zamanı!' : 'Bugün doğum günü yok'}
{dayjs().startOf('week').format('DD MMM')} - {dayjs().endOf('week').format('DD MMM')}
{dayjs().format('MMMM')} ayında
{birthday.employee.department?.name || 'Genel'}
{getBirthdayMessage(birthday)}
{birthday.employee.department?.name || 'Genel'}
{birthday.age || dayjs().year() - dayjs(birthday.date).year()} yaşında
{isToday && ( 🎂 Bugün! )}{months[selectedMonth]} ayında doğum günü yok
{anniversary.employee.department?.name || 'Genel'}
{getAnniversaryMessage(anniversary)}