import { JSX, useEffect, useState } from "react"; import styles from "./Calendar.module.css"; import { getMonthName, daysInMonth } from "../utils/dateUtils"; const generateFirstWeekPadding = (month: number) => { const firstDay = new Date(new Date().getFullYear(), month, 1).getDay(); const padding = Array.from({ length: firstDay === 0 ? 6 : firstDay - 1 }, (_, index) => (
 
)); return padding; } const generateCalendarCells = (month: number) => { const monthDays = daysInMonth[month]; const calendarCells = Array.from({ length: monthDays }, (_, index) => { const day = index + 1; const date = new Date(new Date().getFullYear(), month, day); return (
{date.toLocaleDateString("fi-FI", { day: "2-digit", month: "2-digit", })}
); }); return calendarCells; } export default function Calendar() { const [selectedMonth, setSelectedMonth] = useState(new Date().getMonth()); const [calendarCells, setCalendarCells] = useState([]); const [firstWeekPadding, setFirstWeekPadding] = useState([]); useEffect(() => { setCalendarCells(generateCalendarCells(selectedMonth)); setFirstWeekPadding(generateFirstWeekPadding(selectedMonth)); }, [selectedMonth]); return ( <>

{getMonthName(selectedMonth)} {new Date().getFullYear()}

Ma Ti Ke To Pe La Su {firstWeekPadding} {calendarCells}
); }