import React from 'react' import { Box, Button, Chip, Dialog, DialogActions, DialogContent, DialogTitle, Divider, Link, Stack, Typography } from '@mui/material' import CalendarMonthIcon from '@mui/icons-material/CalendarMonth' import LocationOnIcon from '@mui/icons-material/LocationOn' import OpenInNewIcon from '@mui/icons-material/OpenInNew' import type { Event } from './types.js' interface EventDialogProps { event: Event | null onClose: () => void } const formatDateRange = (date: Date, endDate?: Date): string => { const fmt = (d: Date) => d.toLocaleDateString('it-IT', { day: 'numeric', month: 'long', year: 'numeric' }) if (!endDate) return fmt(date) if (date.getMonth() === endDate.getMonth() && date.getFullYear() === endDate.getFullYear()) { return `${date.getDate()}–${endDate.getDate()} ${date.toLocaleDateString('it-IT', { month: 'long', year: 'numeric' })}` } return `${fmt(date)} – ${fmt(endDate)}` } const EventDialog: React.FC = ({ event, onClose }) => { if (!event) return null const osmUrl = `https://www.openstreetmap.org/?mlat=${event.location.lat}&mlon=${event.location.lng}#map=15/${event.location.lat}/${event.location.lng}` return ( {event.image && } {event.details?.title ?? event.title} {event.location.name}, {event.location.city} {formatDateRange(event.date, event.endDate)} {event.details?.description && ( <> {event.details.description} )} {event.details?.howToReach && ( <> {event.details.howToReach} )} {event.link && ( } clickable /> )} } clickable /> ) } export default EventDialog