import React from 'react'; import { Coordinate } from 'types'; import { createLeafletLatLngTupleFromCoordinate } from '../helpers'; import { MAP } from '../constants'; import Map from './Map'; import { usePolygonEditor } from './usePolygonEditor'; export type Props = { boundary?: Coordinate[]; initialCenter?: Coordinate; initialZoom?: number; editable?: boolean; onChange?: (polygon: T, isValid: boolean) => void; polygon: T; activeIndex?: number; highlightedIndex?: number; onClick?: (index: number) => void; onMouseEnter?: (index: number) => void; onMouseLeave?: (index: number) => void; }; export function PolygonDraw({ polygon, activeIndex = 0, highlightedIndex, boundary, initialCenter, initialZoom, editable = true, onChange, onClick, onMouseEnter, onMouseLeave, }: Props): React.ReactElement { const { polygons, selection, addPoint, addPointToEdge, setPolygon, deselectAllPoints, removePointFromSelection, addPointsToSelection, selectPoints, moveSelectedPoints, deletePolygonPoints, selectAllPoints, isPolygonClosed, undo, redo, } = usePolygonEditor(onChange, polygon, activeIndex); return ( ); }