JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.0.0-beta.2.rc.2/leaflet.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.0.0-beta.2.rc.2/leaflet.js"></script>
<script src="http://leafletjs.com/examples/sample-geojson.js"></script>
<div id="map"></div>
<button id="buttonAnimate">Animate</button>

CSS

#map {
    height: 500px;
}

JavaScript

var map = L.map('map').setView([39.74739, -105], 5);

		L.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}', {
			maxZoom: 18,
			attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' +
				'<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
				'Imagery © <a href="http://mapbox.com">Mapbox</a>',
			id: 'mapbox.light'
		}).addTo(map);

		var baseballIcon = L.icon({
			iconUrl: 'https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png',
			iconSize: [32, 37],
			iconAnchor: [16, 37],
			popupAnchor: [0, -28]
		});

		function onEachFeature(feature, layer) {
			var popupContent = "<p>I started out as a GeoJSON " +
					feature.geometry.type + ", but now I'm a Leaflet vector!</p>";

			if (feature.properties && feature.properties.popupContent) {
				popupContent += feature.properties.popupContent;
			}

			layer.bindPopup(popupContent);
		}

		L.geoJson([bicycleRental, campus], {

			style: function (feature) {
				return feature.properties && feature.properties.style;
			},

			onEachFeature: onEachFeature
		}).addTo(map);

		L.geoJson(freeBus, {

			filter: function (feature, layer) {
				if (feature.properties) {
					// If the property "underConstruction" exists and is true, return false (don't render features under construction)
					return feature.properties.underConstruction !== undefined ? !feature.properties.underConstruction : true;
				}
				return false;
			},

			onEachFeature: onEachFeature
		}).addTo(map);

		var coorsLayer = L.geoJson(coorsField, {

			pointToLayer: function (feature, latlng) {
				return L.marker(latlng, {icon: baseballIcon});
			},

			onEachFeature: onEachFeature
		}).addTo(map);


document.getElementById("buttonAnimate").addEventListener("click", function () {
	map.flyTo([39.74739, -105], 13, {
        animate: true,
        duration: 2 // in seconds
    });
});