import React, { useState } from 'react' import Map, { Marker, NavigationControl } from 'react-map-gl'; import settingsData from '../../data/settings' import LocationIcon from '@material-ui/icons/LocationOn'; import useWindowWidth from '../../utils/useWindowWidth' import { CardOfVenue } from '../' const styles= { navigationControl: { position: 'absolute', right: 0, }, cardOfVenue: { position: "absolute", bottom: "25px", maxWidth: "130px", } } function LocationMap(){ const { venue } = settingsData() const width = useWindowWidth()-15 const [viewport, setViewport] = useState({ latitude: venue.lat, longitude: venue.lng, zoom: 7, width: '100vw', height: "600px", }) if(width != viewport.width){ setViewport({ ...viewport, width: width }) } return( <Map mapStyle="mapbox://styles/mapbox/streets-v9" mapboxAccessToken={process.env.MAPS_KEY} onViewportChange={setViewport} scrollZoom={false} initialViewState={viewport} style={{ width:viewport.width, height:viewport.height }} > <Marker latitude={venue.lat} longitude={venue.lng} offsetLeft={-20} offsetTop={-10}> <LocationIcon fontSize="large" /> </Marker> <div style={styles.navigationControl}> <NavigationControl /> </div> <div className="card-of-venue-cls" style={styles.cardOfVenue}> <CardOfVenue /> </div> </Map> ) } export default LocationMap