rc-leaflet
Version:
React Map Components of Leaflet
46 lines (45 loc) • 1.94 kB
TypeScript
import React from 'react';
import PropTypes from 'prop-types';
import L from 'leaflet';
import { ContextType } from '../RCMap/Context';
import Evented from '../Evented';
interface PartialProps {
group: L.LayerGroup;
onCreate(layer: L.Layer): void;
onAdd(e: L.LeafletEvent, layer: L.Layer): void;
onUpdate(layer: L.Layer): void;
onBeforeRemove(layer: L.Layer): void;
onRemove(e: L.LeafletEvent, layer: L.Layer): void;
children: React.ReactNode;
}
declare type Props = Readonly<Partial<PartialProps>>;
export default abstract class Layer<T extends L.Layer, P extends L.LayerOptions, S = {}> extends Evented<T, Props & P, S> {
static propTypes: {
group: PropTypes.Requireable<L.LayerGroup<unknown>>;
pane: PropTypes.Requireable<string>;
attribution: PropTypes.Requireable<string>;
onCreate: PropTypes.Requireable<(...args: any[]) => any>;
onAdd: PropTypes.Requireable<(...args: any[]) => any>;
onUpdate: PropTypes.Requireable<(...args: any[]) => any>;
onBeforeRemove: PropTypes.Requireable<(...args: any[]) => any>;
onRemove: PropTypes.Requireable<(...args: any[]) => any>;
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
onClick: PropTypes.Requireable<(...args: any[]) => any>;
onMouseOver: PropTypes.Requireable<(...args: any[]) => any>;
onMouseOut: PropTypes.Requireable<(...args: any[]) => any>;
};
static contextType: React.Context<Readonly<{
map: L.Map;
theme: import("../Theme").ContextType;
}>>;
context: ContextType;
protected constructor(props: Props & P, context: ContextType);
componentDidUpdate(prevProps: Props & P): void;
componentWillUnmount(): void;
protected abstract createInstance(props: P, context: ContextType): T;
protected getTheme(): object;
private onAdd;
private onRemove;
render(): React.ReactNode;
}
export {};