import { Modal, Button } from 'react-bootstrap' import { MapContainer, Marker, Popup, TileLayer } from 'react-leaflet' import { CSSProperties, useState } from 'react' import LineDot from './LineDot' import { categoryNames } from '../assets/category' import { useBook, useDispose, useRemoveAnnouncement } from '../hooks/api' import { Announcement } from '../api/announcement/types' import { iconItem } from '../utils/markerIcons' import { useId } from '../hooks' import SelectDisposalTrashbox from './SelectDisposalTrashbox' import { LatLng } from 'leaflet' type AnnouncementDetailsProps = { close: () => void, refresh: () => void, announcement: Announcement, } const styles = { container: { display: 'flex', alignItems: 'center', justifyContent: 'center', } as CSSProperties, map: { width: '100%', minHeight: 300, } as CSSProperties, } const View = ({ announcement: { name, category, bestBy, description, lat, lng, address, metro }, }: { announcement: Announcement }) => ( <>

{name}

{categoryNames[category]} {/* dot */} Годен до {new Date(bestBy).toLocaleString('ru-RU')}

{description}

{address}
{metro}
) type ControlProps = { closeRefresh: () => void, announcement: Announcement, showDispose: () => void } function Control({ closeRefresh, announcement: { bookedBy, id, userId }, showDispose }: ControlProps) { const { handleBook, bookButton } = useBook() const { handleRemove, removeButton } = useRemoveAnnouncement(closeRefresh) const myId = useId() return ( <>

Забронировали {bookedBy} чел.

{(myId === userId) ? ( <>