import { Ref, useState } from 'react'; import { createPortal } from 'react-dom'; import { MapContainer, MapContainerProps, TileLayer, TileLayerProps } from 'react-leaflet'; import clsx from 'clsx'; import { LatLngLiteral, Map } from 'leaflet'; import useDefaultProps from '../../../hooks/useDefaultProps'; import Controls, { IControlsProps } from '../shared/Controls'; import MapWrapper, { MapWrapperProps } from '../shared/MapWrapper'; import StaticMarker, { StaticMarkerProps } from '../shared/StaticMarker'; export type LocationViewProps = { position: LatLngLiteral; ref?: Ref; slotProps?: { mapWrapper?: MapWrapperProps; tileLayer?: TileLayerProps; marker?: Omit; controls?: Omit; }; } & Omit; const LocationView = (inProps: LocationViewProps) => { const { position, ref, zoom = 17, slotProps, className, ...mapContainer } = useDefaultProps({ name: 'ReevolveLocationView', props: inProps }); const [rootElement, setRootElement] = useState(null); return ( setRootElement(_rootElement)} > {rootElement && createPortal(, rootElement)} ); }; declare module '@mui/material' { interface Components { ReevolveLocationView?: { defaultProps?: Partial; }; } } export default LocationView;