import * as React from 'react';
import { MapComponentProps } from './models';
// base map
import GoogleMap from './providers/GoogleMap';
import MapBox from './providers/MapBox';
import Leaflet from './providers/Leaflet';
// sub-components, supported on all providers
import Control from './components/Control';
import Circle from './components/Circle';
import Heatmap from './components/Heatmap';
import Marker from './components/Marker';
import MarkerCluster from './components/MarkerCluster';
import Popup from './components/Popup';
import Polygon from './components/Polygon';
import Polyline from './components/Polyline';
import Rectangle from './components/Rectangle';
// leaflet-only
import LeafletLayer from './providers/Leaflet/Layer';
import LeafletOfflineLayer from './providers/Leaflet/OfflineLayer';
function Maps(props: MapComponentProps) {
switch (props.provider) {
case 'google':
return
case 'mapbox':
return ;
case 'leaflet':
return
default:
throw new Error('Unsupported provider.');
}
}
Maps.Circle = Circle;
Maps.Control = Control;
Maps.Heatmap = Heatmap;
Maps.Marker = Marker;
Maps.MarkerCluster = MarkerCluster;
Maps.Popup = Popup;
Maps.Polygon = Polygon;
Maps.Polyline = Polyline;
Maps.LeafletLayer = LeafletLayer;
Maps.LeafletOfflineLayer = LeafletOfflineLayer;
Maps.Rectangle = Rectangle;
export * from './models';
export * from './hooks';
export * from './utils';
export default Maps;