diff --git a/types/react-leaflet/index.d.ts b/types/react-leaflet/index.d.ts index 55edeec211..4378f3b324 100644 --- a/types/react-leaflet/index.d.ts +++ b/types/react-leaflet/index.d.ts @@ -275,18 +275,33 @@ export class GeoJSON

extends export interface AttributionControlProps extends MapControlProps, Leaflet.Control.AttributionOptions { } export class AttributionControl

extends MapControl { } -interface LayersControlProps { - position?: Leaflet.ControlPosition; +export interface LayersControlProps extends MapControlProps { + baseLayers?: Leaflet.Control.LayersObject; + children?: Children; + overlays?: Leaflet.Control.LayersObject; } -export const LayersControl: React.ComponentClass & { BaseLayer: LayersControl.BaseLayer, Overlay: LayersControl.Overlay }; +export class LayersControl

extends MapControl { } export namespace LayersControl { - interface LayersControlLayerProps { - name: string; + interface BaseControlledLayerProps { checked?: boolean; + children?: Children; + removeLayer?(layer: Leaflet.Layer): void; + removeLayerControl?(layer: Leaflet.Layer): void; } - type BaseLayer = React.ComponentClass; - type Overlay = React.ComponentClass; + interface ControlledLayerProps extends BaseControlledLayerProps { + addBaseLayer?(layer: Leaflet.Layer, name: string, checked: boolean): void; + addOverlay?(layer: Leaflet.Layer, name: string, checked: boolean): void; + name: string; + } + class ControlledLayer

extends React.Component { + layer?: Leaflet.Layer; + getChildContext(): { layerContainer: LayerContainer }; + addLayer(): void; + removeLayer(layer: Leaflet.Layer): void; + } + export class BaseLayer

extends ControlledLayer

{ } + export class Overlay

extends ControlledLayer

{ } } interface MapControlProps {