import { useMemo, useState, useCallback } from 'react' import { useVacayStore } from '../../store/vacayStore' import { useTranslation } from '../../i18n' import { isWeekend } from './holidays' import VacayMonthCard from './VacayMonthCard' import { Building2, MousePointer2 } from 'lucide-react' export default function VacayCalendar() { const { t } = useTranslation() const { selectedYear, selectedUserId, entries, companyHolidays, toggleEntry, toggleCompanyHoliday, plan, users, holidays } = useVacayStore() const [companyMode, setCompanyMode] = useState(false) const companyHolidaySet = useMemo(() => { const s = new Set() companyHolidays.forEach(h => s.add(h.date)) return s }, [companyHolidays]) const entryMap = useMemo(() => { const map = {} entries.forEach(e => { if (!map[e.date]) map[e.date] = [] map[e.date].push(e) }) return map }, [entries]) const blockWeekends = plan?.block_weekends !== false const weekendDays: number[] = plan?.weekend_days ? String(plan.weekend_days).split(',').map(Number) : [0, 6] const companyHolidaysEnabled = plan?.company_holidays_enabled !== false const handleCellClick = useCallback(async (dateStr) => { if (companyMode) { if (!companyHolidaysEnabled) return await toggleCompanyHoliday(dateStr) return } if (holidays[dateStr]) return if (blockWeekends && isWeekend(dateStr, weekendDays)) return if (companyHolidaysEnabled && companyHolidaySet.has(dateStr)) return await toggleEntry(dateStr, selectedUserId || undefined) }, [companyMode, toggleEntry, toggleCompanyHoliday, holidays, companyHolidaySet, blockWeekends, companyHolidaysEnabled, selectedUserId]) const selectedUser = users.find(u => u.id === selectedUserId) return (