import { Link, useNavigate } from 'react-router-dom' import { Calendar, Hash, Lock, Pencil, Play, Repeat, X } from 'lucide-react' import type { ConferenceOut, OccurrenceOut } from '@/api/conferences' import { occurrenceBadge, OCCURRENCE_BADGE_ICON } from '@/lib/occurrenceStatus' import { useModalDismiss } from '@/hooks/useModalDismiss' interface ConferenceOccurrenceDialogProps { occurrence: OccurrenceOut /** Присутствует только когда текущий пользователь — организатор этого вхождения (`is_owner`) — показывает кнопку «Редактировать». */ ownedConference?: ConferenceOut onClose: () => void onEdit?: (conference: ConferenceOut) => void } function formatRange(startsAt: string, endsAt: string): string { const start = new Date(startsAt) const end = new Date(endsAt) const dateLabel = start.toLocaleDateString('ru-RU', { day: 'numeric', month: 'long', year: 'numeric' }) const startTime = start.toLocaleTimeString('ru-RU', { hour: '2-digit', minute: '2-digit' }) const endTime = end.toLocaleTimeString('ru-RU', { hour: '2-digit', minute: '2-digit' }) return `${dateLabel}, ${startTime}–${endTime}` } /** * Быстрый просмотр вхождения конференции по клику на чип в календаре — для * всех конференций, включая свои: редактирование теперь отдельное действие * (карандашик на чипе или кнопка «Редактировать» здесь, у владельца), сам * клик по чипу всегда открывает это окно. Показывает статус, время, номер и, * для владельца, вход в редактирование; подробности состава * участников/организатора — в ховер-карточке при наведении/фокусе на чип * (`ConferenceHoverCard`). */ export function ConferenceOccurrenceDialog({ occurrence, ownedConference, onClose, onEdit }: ConferenceOccurrenceDialogProps) { const navigate = useNavigate() useModalDismiss(onClose) const badge = occurrenceBadge(occurrence, new Date(occurrence.starts_at), new Date(occurrence.ends_at)) const BadgeIcon = OCCURRENCE_BADGE_ICON[badge.kind] return (
e.stopPropagation()}>

{occurrence.is_closed &&

{occurrence.is_pinned && (
)}
{ownedConference && onEdit && ( )}
{!ownedConference && (

Управление и редактирование — в «Моих конференциях»

)}
) }