@abcagency/hc-ui-components 1.3.76 → 1.3.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -35,6 +35,10 @@ var MapContainer = function MapContainer(_ref) {
35
35
  _useState2 = _slicedToArray(_useState, 2),
36
36
  mapItems = _useState2[0],
37
37
  setMapItems = _useState2[1];
38
+ var _useState3 = useState([]),
39
+ _useState4 = _slicedToArray(_useState3, 2),
40
+ markersToHideFromBounds = _useState4[0],
41
+ setMarkersToHideFromBounds = _useState4[1];
38
42
  var mapRef = useRef();
39
43
  var markerRefs = useRef({});
40
44
  var mapContainerRef = useRef(null);
@@ -62,13 +66,17 @@ var MapContainer = function MapContainer(_ref) {
62
66
  if (!oldMapItems || oldMapItems.length === 0) return;
63
67
  if (!siteConfig.defaultMapState || mapInteracted || selectedFilters !== null && selectedFilters !== void 0 && selectedFilters.state || selectedFilters !== null && selectedFilters !== void 0 && selectedFilters.city) {
64
68
  setMapItems(oldMapItems);
69
+ setMarkersToHideFromBounds([]);
65
70
  return;
66
71
  }
67
- var filteredMapItems = oldMapItems.filter(function (x) {
68
- return x.address.state == siteConfig.defaultMapState;
72
+ var markersToHide = oldMapItems.filter(function (x) {
73
+ return x.address.state !== siteConfig.defaultMapState;
74
+ }).map(function (item) {
75
+ return item.id;
69
76
  });
70
- setMapItems(filteredMapItems);
71
- }, [oldMapItems, selectedFilters, siteConfig]);
77
+ setMarkersToHideFromBounds(markersToHide);
78
+ setMapItems(oldMapItems);
79
+ }, [oldMapItems, selectedFilters, siteConfig, mapInteracted]);
72
80
  useEffect(function () {
73
81
  if (mapContainerRef.current) {
74
82
  var handleScroll = function handleScroll() {
@@ -90,10 +98,12 @@ var MapContainer = function MapContainer(_ref) {
90
98
  if (mapRef.current) {
91
99
  var mapInstance = mapRef.current;
92
100
  var dragStartListener = mapInstance.addListener("dragstart", function () {
93
- return setMapInteracted(true);
101
+ setMapInteracted(true);
102
+ setMarkersToHideFromBounds([]);
94
103
  });
95
104
  var mouseDownListener = mapInstance.addListener("mousedown", function () {
96
- return setMapInteracted(true);
105
+ setMapInteracted(true);
106
+ setMarkersToHideFromBounds([]);
97
107
  });
98
108
  return function () {
99
109
  google.maps.event.removeListener(dragStartListener);
@@ -129,6 +139,9 @@ var MapContainer = function MapContainer(_ref) {
129
139
  if ((mapInteracted === false || overload) && mapItems != null) {
130
140
  var bounds = new window.google.maps.LatLngBounds();
131
141
  mapItems.forEach(function (item) {
142
+ if (!mapInteracted && markersToHideFromBounds.includes(item.id)) {
143
+ return;
144
+ }
132
145
  bounds.extend(new google.maps.LatLng(item.latitude, item.longitude));
133
146
  });
134
147
  if (siteConfig.optionalShowLocationClusterConfig) {
@@ -152,6 +165,7 @@ var MapContainer = function MapContainer(_ref) {
152
165
  };
153
166
  var markerClickHandler = function markerClickHandler(mapLocation) {
154
167
  setMapInteracted(true);
168
+ setMarkersToHideFromBounds([]);
155
169
  selectLocationEntity(mapLocation);
156
170
  };
157
171
  var onLoad = function onLoad(map) {
@@ -1 +1 @@
1
- {"version":3,"file":"map-container.js","sources":["../../../../src/components/containers/maps/map-container.js"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useRef, useState } from \"react\";\n\nimport MapMarker from \"~/components/containers/maps/map-marker-container\";\nimport PlaceMarker from \"~/components/modules/maps/place-marker\";\n\nimport { usePlaces } from \"~/contexts/placesContext\";\nimport { useMap } from \"~/contexts/mapContext\";\nimport { useMapList } from \"~/contexts/mapListContext\";\n\nimport { markerIconSelected, markerIcon, pinIcon } from \"~/util/mapIconUtil\";\n\nimport Map from \"~/components/modules/maps/map\";\nimport { MarkerClustererF, Marker } from \"@react-google-maps/api\";\nimport { clusterOptions } from \"~/util/mapUtil\";\n\nconst MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }) => {\n\tconst { location, zoom, center, selectLocationEntity, setLocation, mapInteracted, setMapInteracted, defaultZoomOverride } = useMap();\n\n\tconst { mapItems: oldMapItems, filteredListings,selectedFilters, setSelectedFilters, setQuery, siteConfig } = useMapList();\n\tconst [mapItems, setMapItems] = useState(null);\n\n\tconst mapRef = useRef();\n\tconst markerRefs = useRef({});\n\tconst mapContainerRef = useRef(null);\n\tconst {\n\t\tpoiMarkers,\n\t\tsetCurrentCenter,\n\t\tcurrentCenter,\n\t\tsetCurrentZoom,\n\t\tcurrentZoom,\n\t\tselectedPlaceMarker,\n\t\tsetSelectedPlaceMarker,\n\t\tplacesWindow,\n\t\tsetPlacesWindow,\n\t\tadditionalMapMarkers\n\t} = usePlaces();\n\n\tconst onIdle = () => {\n\t\tif (!currentCenter || !mapRef.current) return;\n\t\tconst newCenter = mapRef.current.getCenter().toJSON();\n\t\tconst newZoom = mapRef.current.zoom;\n\t\tsetCurrentCenter(newCenter);\n\n\t\tif (newZoom !== currentZoom) {\n\t\t\tsetCurrentZoom(newZoom);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t if (!oldMapItems || oldMapItems.length === 0) return;\n\n\t\tif(!siteConfig.defaultMapState || mapInteracted || selectedFilters?.state || selectedFilters?.city){\n\n\t\t\tsetMapItems(oldMapItems);\n\t\t\treturn;\n\t\t}\n\n\t\tlet filteredMapItems = oldMapItems.filter(x => x.address.state == siteConfig.defaultMapState);\n\t\tsetMapItems(filteredMapItems);\n\t},[oldMapItems, selectedFilters, siteConfig]);\n\n\tuseEffect(() => {\n\t\tif (mapContainerRef.current) {\n\t\t\tconst handleScroll = () => {\n\t\t\t\tsetMapInteracted(true);\n\t\t\t};\n\t\t\tvar mapContainerRefCurrent = mapContainerRef.current;\n\t\t\tmapContainerRef.current.addEventListener(\"wheel\", handleScroll);\n\t\t\treturn () => mapContainerRefCurrent.removeEventListener(\"wheel\", handleScroll);\n\t\t}\n\t}, [mapContainerRef.current]);\n\n\tuseEffect(() => {\n\t\tif(mapRef.current && defaultZoomOverride && !mapInteracted && !location){\n\t\t\tmapRef.current.setZoom(defaultZoomOverride);\n\t\t}\n\t}, [mapInteracted]);\n\n\tuseEffect(() => {\n\t\tif (mapRef.current) {\n\t\t\tconst mapInstance = mapRef.current;\n\t\t\tconst dragStartListener = mapInstance.addListener(\"dragstart\", () => setMapInteracted(true));\n\t\t\tconst mouseDownListener = mapInstance.addListener(\"mousedown\", () => setMapInteracted(true));\n\t\t\treturn () => {\n\t\t\t\tgoogle.maps.event.removeListener(dragStartListener);\n\t\t\t\tgoogle.maps.event.removeListener(mouseDownListener);\n\t\t\t};\n\t\t}\n\t}, [mapRef.current, mapContainerRef.current]);\n\n\tuseEffect(() => {\n\t\tif (((mapItems && mapItems.length > 0) || poiMarkers.length > 0) && mapRef.current && !mapInteracted) {\n\t\t\tfitBounds(mapRef.current);\n\t\t}\n\t}, [mapItems, mapRef.current, location]);\n\n\tuseEffect(() => {\n\t\tif (((mapItems && mapItems.length > 0) || poiMarkers.length > 0) && mapRef.current && !mapInteracted) {\n\t\t\tfitBounds(mapRef.current, true);\n\t\t}\n\t\tif (mapRef.current && !mapInteracted) {\n\t\t\tconst currZoom = mapRef.current.zoom;\n\t\t\tconst setZoomVal = currZoom < 13 ? currZoom : 12;\n\t\t\tmapRef.current.setZoom(setZoomVal);\n\t\t}\n\t}, [filteredListings]);\n\n\tuseEffect(() => {\n\t\tif (!mapRef.current || !location || mapInteracted) return;\n\t\tmapRef.current.panTo(new google.maps.LatLng(location.latitude, location.longitude));\n\t\tif (mapRef.current) {\n\t\t\tconst setZoomVal = zoom < 13 ? zoom : 12;\n\t\t\tmapRef.current.setZoom(setZoomVal);\n\t\t}\n\t}, [location, zoom, mapRef.current]);\n\n\tconst fitBounds = (map, overload = false) => {\n\t\tif ((mapInteracted === false || overload) && mapItems != null) {\n\t\t\tconst bounds = new window.google.maps.LatLngBounds();\n\t\t\tmapItems.forEach(item => {\n\t\t\t\tbounds.extend(new google.maps.LatLng(item.latitude, item.longitude));\n\t\t\t});\n\t\t\tif (siteConfig.optionalShowLocationClusterConfig) {\n\t\t\t\tconst configLocation = new google.maps.LatLng(\n\t\t\t\t\tsiteConfig.optionalShowLocationClusterConfig.latitude,\n\t\t\t\t\tsiteConfig.optionalShowLocationClusterConfig.longitude\n\t\t\t\t);\n\t\t\t\tmap.panTo(configLocation);\n\t\t\t\tbounds.extend(\n\t\t\t\t\tnew google.maps.LatLng(\n\t\t\t\t\t\tsiteConfig.optionalShowLocationClusterConfig.latitude,\n\t\t\t\t\t\tsiteConfig.optionalShowLocationClusterConfig.longitude\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (!map) return;\n\t\t\tconst currentCenter = map.getCenter();\n\t\t\tmap.fitBounds(bounds);\n\t\t\tconst newCenter = bounds.getCenter();\n\t\t\tif (currentCenter && newCenter) {\n\t\t\t\tmap.panTo(newCenter);\n\t\t\t}\n\t\t}\n\t\tif(defaultZoomOverride && !mapInteracted && !location){\n\t\t\tmapRef.current.setZoom(defaultZoomOverride);\n\t\t}\n\t\telse if (mapRef.current.zoom > 17) {\n\t\t\tmapRef.current.setZoom(16);\n\t\t}\n\t};\n\n\tconst markerClickHandler = mapLocation => {\n\t\tsetMapInteracted(true);\n\t\tselectLocationEntity(mapLocation);\n\t};\n\n\tconst onLoad = map => {\n\t\tif (!location || location === null) {\n\t\t\tmapRef.current = map;\n\t\t\tfitBounds(map, true);\n\t\t\treturn;\n\t\t}\n\t\tmapRef.current = map;\n\n\t\tif (mapInteracted === false) {\n\t\t\tmapRef.current.panTo(new google.maps.LatLng(location.latitude, location.longitude));\n\n\t\t\tmapRef.current.setZoom(zoom);\n\t\t}\n\t};\n\n\tconst pinIconUrl = pinIcon({\n\t\tfillColor: markerConfigs.fillColor,\n\t\tstrokeColor: markerConfigs.strokeColor\n\t});\n\n\tconst onClusterClick = cluster => {\n\t\tif (\n\t\t\t!siteConfig.optionalShowLocationClusterConfig ||\n\t\tmapRef.current.zoom > siteConfig.optionalShowLocationClusterConfig.showForZoomLevelLessThan\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!cluster || typeof cluster.getMarkers !== \"function\") {\n\t\t\tconsole.error(\"Cluster object or getMarkers method not available.\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst markers = cluster.getMarkers();\n\n\t\tif (!markers || markers.length === 0) {\n\t\t\tconsole.error(\"No markers found in the cluster.\");\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tconst bounds = new window.google.maps.LatLngBounds();\n\n\t\t\tmarkers.forEach(marker => {\n\t\t\t\tbounds.extend(marker.getPosition());\n\t\t\t});\n\t\t\tconst clusterCenter = bounds.getCenter();\n\n\t\t\tconst configLat = siteConfig.optionalShowLocationClusterConfig.latitude;\n\t\t\tconst configLng = siteConfig.optionalShowLocationClusterConfig.longitude;\n\n\t\t\tconst latDiff = clusterCenter.lat() - configLat;\n\t\t\tconst lngDiff = clusterCenter.lng() - configLng;\n\t\t\tconst distance = Math.sqrt(latDiff * latDiff + lngDiff * lngDiff);\n\n\t\t\tconst distanceThreshold = 1;\n\t\t\tif (distance <= distanceThreshold) {\n\t\t\t\tbounds.extend(new google.maps.LatLng(configLat, configLng));\n\t\t\t}\n\n\t\t\tif (mapRef.current) {\n\t\t\t\tmapRef.current.fitBounds(bounds);\n\t\t\t}\n\t\t}, 300);\n\t};\n\tif (!mapItems) {\n\t\treturn null;\n\t}\n\tconst mapItemsKey = mapItems.map(item => item.id).join(\"-\");\n\treturn (\n\t\t<Map\n\t\t\tzoom={zoom}\n\t\t\tcenter={center}\n\t\t\tmapContainerRef={mapContainerRef}\n\t\t\tonLoad={onLoad}\n\t\t\tonIdle={onIdle}\n\t\t\tmapInteracted={mapInteracted}\n\t\t\tpinIconUrl={pinIconUrl}\n\t\t\tsetMapInteracted={setMapInteracted}\n\t\t\tfitBounds={fitBounds}\n\t\t\tmapRef={mapRef}\n\t\t\tsetQuery={setQuery}\n\t\t\tfilteredListingsLength={filteredListings.length}\n\t\t\tsetSelectedFilters={setSelectedFilters}\n\t\t>\n\n\t\t\t<MarkerClustererF\n\t\t\t\tkey={mapItemsKey}\n\t\t\t \t\tcalculator={markers => {\n\t\t\t\t\tconst totalCount = markers.reduce((sum, marker) => sum + (marker.get(\"count\") || 1), 0);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttext: totalCount.toString(),\n\t\t\t\t\t\tindex: Math.min(5, Math.floor(totalCount / 10))\n\t\t\t\t\t};}}\n\t\t\t\toptions={{\n\t\t\t\t\t...clusterOptions(clusterGridSize, markerConfigs.fillColor)\n\n\t\t\t\t}}\n\t\t\t\tonClick={onClusterClick}\n\t\t\t>\n\n\t\t\t\t{clusterer => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{mapItems.map(item => {\n\t\t\t\t\t\t\tlet markerCount = Object.values(item.items).length;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<MapMarker\n\t\t\t\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\t\t\tselectedLocation={location}\n\t\t\t\t\t\t\t\t\tmarkerRefs={markerRefs}\n\t\t\t\t\t\t\t\t\tinfoWindowClasses={infoWindowClasses}\n\t\t\t\t\t\t\t\t\tsetSelectedLocation={setLocation}\n\t\t\t\t\t\t\t\t\tmarkerClickHandler={markerClickHandler}\n\t\t\t\t\t\t\t\t\tclusterer={clusterer}\n\t\t\t\t\t\t\t\t\tmarkerIcon={markerIcon(markerConfigs, markerCount)}\n\t\t\t\t\t\t\t\t\tmarkerIconSelected={markerIconSelected(markerConfigs, markerCount)}\n\t\t\t\t\t\t\t\t\tsetMapInteracted={setMapInteracted}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t);}\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{additionalMapMarkers &&\n additionalMapMarkers.map(\n \t(marker, index) =>\n \t\tcurrentZoom >= marker.minZoom &&\n currentZoom <= marker.maxZoom && (\n \t\t\t<Marker\n \t\t\t\tkey={`marker-${marker.title}-${index}`}\n \t\t\t\tposition={marker.position}\n \t\t\t\ttitle={marker.title}\n \t\t\t\ticon={{\n \t\t\t\t\turl: marker.iconUrl,\n \t\t\t\t\tscaledSize: new window.google.maps.Size(40, 40)\n \t\t\t\t}}\n \t\t\t/>\n \t\t)\n )}\n\n\t\t\t\t\t\t{poiMarkers &&\n poiMarkers.markers.map((marker, index) => (\n \t<PlaceMarker\n \t\tkey={`marker-${marker.title}-${index}`}\n \t\tmarker={marker}\n \t\tindex={index}\n \t\tselectedPlaceMarker={selectedPlaceMarker}\n \t\tplacesWindow={placesWindow}\n \t\tsetPlacesWindow={setPlacesWindow}\n \t\tsetSelectedPlaceMarker={setSelectedPlaceMarker}\n \t/>\n ))}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</MarkerClustererF>\n\t\t</Map>\n\t);\n};\n\nexport default MapContainer;\n\n"],"names":["MapContainer","_ref","markerConfigs","infoWindowClasses","_ref$clusterGridSize","clusterGridSize","_useMap","useMap","location","zoom","center","selectLocationEntity","setLocation","mapInteracted","setMapInteracted","defaultZoomOverride","_useMapList","useMapList","oldMapItems","mapItems","filteredListings","selectedFilters","setSelectedFilters","setQuery","siteConfig","_useState","useState","_useState2","_slicedToArray","setMapItems","mapRef","useRef","markerRefs","mapContainerRef","_usePlaces","usePlaces","poiMarkers","setCurrentCenter","currentCenter","setCurrentZoom","currentZoom","selectedPlaceMarker","setSelectedPlaceMarker","placesWindow","setPlacesWindow","additionalMapMarkers","onIdle","current","newCenter","getCenter","toJSON","newZoom","useEffect","length","defaultMapState","state","city","filteredMapItems","filter","x","address","handleScroll","mapContainerRefCurrent","addEventListener","removeEventListener","setZoom","mapInstance","dragStartListener","addListener","mouseDownListener","google","maps","event","removeListener","fitBounds","currZoom","setZoomVal","panTo","LatLng","latitude","longitude","map","overload","arguments","undefined","bounds","window","LatLngBounds","forEach","item","extend","optionalShowLocationClusterConfig","configLocation","markerClickHandler","mapLocation","onLoad","pinIconUrl","pinIcon","fillColor","strokeColor","onClusterClick","cluster","showForZoomLevelLessThan","getMarkers","console","error","markers","setTimeout","marker","getPosition","clusterCenter","configLat","configLng","latDiff","lat","lngDiff","lng","distance","Math","sqrt","distanceThreshold","mapItemsKey","id","join","React","createElement","Map","filteredListingsLength","MarkerClustererF","key","calculator","totalCount","reduce","sum","get","text","toString","index","min","floor","options","_objectSpread","clusterOptions","onClick","clusterer","Fragment","markerCount","Object","values","items","MapMarker","selectedLocation","setSelectedLocation","markerIcon","markerIconSelected","minZoom","maxZoom","Marker","concat","title","position","icon","url","iconUrl","scaledSize","Size","PlaceMarker"],"mappings":"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"}
1
+ {"version":3,"file":"map-container.js","sources":["../../../../src/components/containers/maps/map-container.js"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useRef, useState } from \"react\";\n\nimport MapMarker from \"~/components/containers/maps/map-marker-container\";\nimport PlaceMarker from \"~/components/modules/maps/place-marker\";\n\nimport { usePlaces } from \"~/contexts/placesContext\";\nimport { useMap } from \"~/contexts/mapContext\";\nimport { useMapList } from \"~/contexts/mapListContext\";\n\nimport { markerIconSelected, markerIcon, pinIcon } from \"~/util/mapIconUtil\";\n\nimport Map from \"~/components/modules/maps/map\";\nimport { MarkerClustererF, Marker } from \"@react-google-maps/api\";\nimport { clusterOptions } from \"~/util/mapUtil\";\n\nconst MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }) => {\n\tconst {\n\t\tlocation,\n\t\tzoom,\n\t\tcenter,\n\t\tselectLocationEntity,\n\t\tsetLocation,\n\t\tmapInteracted,\n\t\tsetMapInteracted,\n\t\tdefaultZoomOverride\n\t} = useMap();\n\n\tconst {\n\t\tmapItems: oldMapItems,\n\t\tfilteredListings,\n\t\tselectedFilters,\n\t\tsetSelectedFilters,\n\t\tsetQuery,\n\t\tsiteConfig\n\t} = useMapList();\n\tconst [mapItems, setMapItems] = useState(null);\n\tconst [markersToHideFromBounds, setMarkersToHideFromBounds] = useState([]);\n\n\tconst mapRef = useRef();\n\tconst markerRefs = useRef({});\n\tconst mapContainerRef = useRef(null);\n\tconst {\n\t\tpoiMarkers,\n\t\tsetCurrentCenter,\n\t\tcurrentCenter,\n\t\tsetCurrentZoom,\n\t\tcurrentZoom,\n\t\tselectedPlaceMarker,\n\t\tsetSelectedPlaceMarker,\n\t\tplacesWindow,\n\t\tsetPlacesWindow,\n\t\tadditionalMapMarkers\n\t} = usePlaces();\n\n\tconst onIdle = () => {\n\t\tif (!currentCenter || !mapRef.current) return;\n\t\tconst newCenter = mapRef.current.getCenter().toJSON();\n\t\tconst newZoom = mapRef.current.zoom;\n\t\tsetCurrentCenter(newCenter);\n\n\t\tif (newZoom !== currentZoom) {\n\t\t\tsetCurrentZoom(newZoom);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (!oldMapItems || oldMapItems.length === 0) return;\n\n\t\tif (!siteConfig.defaultMapState || mapInteracted || selectedFilters?.state || selectedFilters?.city) {\n\t\t\tsetMapItems(oldMapItems);\n\t\t\tsetMarkersToHideFromBounds([]);\n\t\t\treturn;\n\t\t}\n\n\t\tconst markersToHide = oldMapItems\n\t\t\t.filter(x => x.address.state !== siteConfig.defaultMapState)\n\t\t\t.map(item => item.id);\n\n\t\tsetMarkersToHideFromBounds(markersToHide);\n\t\tsetMapItems(oldMapItems);\n\t}, [oldMapItems, selectedFilters, siteConfig, mapInteracted]);\n\n\tuseEffect(() => {\n\t\tif (mapContainerRef.current) {\n\t\t\tconst handleScroll = () => {\n\t\t\t\tsetMapInteracted(true);\n\t\t\t};\n\t\t\tvar mapContainerRefCurrent = mapContainerRef.current;\n\t\t\tmapContainerRef.current.addEventListener(\"wheel\", handleScroll);\n\t\t\treturn () => mapContainerRefCurrent.removeEventListener(\"wheel\", handleScroll);\n\t\t}\n\t}, [mapContainerRef.current]);\n\n\tuseEffect(() => {\n\t\tif (mapRef.current && defaultZoomOverride && !mapInteracted && !location) {\n\t\t\tmapRef.current.setZoom(defaultZoomOverride);\n\t\t}\n\t}, [mapInteracted]);\n\n\tuseEffect(() => {\n\t\tif (mapRef.current) {\n\t\t\tconst mapInstance = mapRef.current;\n\t\t\tconst dragStartListener = mapInstance.addListener(\"dragstart\", () => {\n\t\t\t\tsetMapInteracted(true);\n\t\t\t\tsetMarkersToHideFromBounds([]);\n\t\t\t});\n\t\t\tconst mouseDownListener = mapInstance.addListener(\"mousedown\", () => {\n\t\t\t\tsetMapInteracted(true);\n\t\t\t\tsetMarkersToHideFromBounds([]);\n\t\t\t});\n\t\t\treturn () => {\n\t\t\t\tgoogle.maps.event.removeListener(dragStartListener);\n\t\t\t\tgoogle.maps.event.removeListener(mouseDownListener);\n\t\t\t};\n\t\t}\n\t}, [mapRef.current, mapContainerRef.current]);\n\n\tuseEffect(() => {\n\t\tif (((mapItems && mapItems.length > 0) || poiMarkers.length > 0) && mapRef.current && !mapInteracted) {\n\t\t\tfitBounds(mapRef.current);\n\t\t}\n\t}, [mapItems, mapRef.current, location]);\n\n\tuseEffect(() => {\n\t\tif (((mapItems && mapItems.length > 0) || poiMarkers.length > 0) && mapRef.current && !mapInteracted) {\n\t\t\tfitBounds(mapRef.current, true);\n\t\t}\n\t\tif (mapRef.current && !mapInteracted) {\n\t\t\tconst currZoom = mapRef.current.zoom;\n\t\t\tconst setZoomVal = currZoom < 13 ? currZoom : 12;\n\t\t\tmapRef.current.setZoom(setZoomVal);\n\t\t}\n\t}, [filteredListings]);\n\n\tuseEffect(() => {\n\t\tif (!mapRef.current || !location || mapInteracted) return;\n\t\tmapRef.current.panTo(new google.maps.LatLng(location.latitude, location.longitude));\n\t\tif (mapRef.current) {\n\t\t\tconst setZoomVal = zoom < 13 ? zoom : 12;\n\t\t\tmapRef.current.setZoom(setZoomVal);\n\t\t}\n\t}, [location, zoom, mapRef.current]);\n\n\tconst fitBounds = (map, overload = false) => {\n\t\tif ((mapInteracted === false || overload) && mapItems != null) {\n\t\t\tconst bounds = new window.google.maps.LatLngBounds();\n\n\t\t\tmapItems.forEach(item => {\n\t\t\t\tif (!mapInteracted && markersToHideFromBounds.includes(item.id)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tbounds.extend(new google.maps.LatLng(item.latitude, item.longitude));\n\t\t\t});\n\n\t\t\tif (siteConfig.optionalShowLocationClusterConfig) {\n\t\t\t\tconst configLocation = new google.maps.LatLng(\n\t\t\t\t\tsiteConfig.optionalShowLocationClusterConfig.latitude,\n\t\t\t\t\tsiteConfig.optionalShowLocationClusterConfig.longitude\n\t\t\t\t);\n\t\t\t\tmap.panTo(configLocation);\n\t\t\t\tbounds.extend(\n\t\t\t\t\tnew google.maps.LatLng(\n\t\t\t\t\t\tsiteConfig.optionalShowLocationClusterConfig.latitude,\n\t\t\t\t\t\tsiteConfig.optionalShowLocationClusterConfig.longitude\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (!map) return;\n\t\t\tconst currentCenter = map.getCenter();\n\t\t\tmap.fitBounds(bounds);\n\t\t\tconst newCenter = bounds.getCenter();\n\t\t\tif (currentCenter && newCenter) {\n\t\t\t\tmap.panTo(newCenter);\n\t\t\t}\n\t\t}\n\t\tif (defaultZoomOverride && !mapInteracted && !location) {\n\t\t\tmapRef.current.setZoom(defaultZoomOverride);\n\t\t} else if (mapRef.current.zoom > 17) {\n\t\t\tmapRef.current.setZoom(16);\n\t\t}\n\t};\n\n\tconst markerClickHandler = mapLocation => {\n\t\tsetMapInteracted(true);\n\t\tsetMarkersToHideFromBounds([]);\n\t\tselectLocationEntity(mapLocation);\n\t};\n\n\tconst onLoad = map => {\n\t\tif (!location || location === null) {\n\t\t\tmapRef.current = map;\n\t\t\tfitBounds(map, true);\n\t\t\treturn;\n\t\t}\n\t\tmapRef.current = map;\n\n\t\tif (mapInteracted === false) {\n\t\t\tmapRef.current.panTo(new google.maps.LatLng(location.latitude, location.longitude));\n\n\t\t\tmapRef.current.setZoom(zoom);\n\t\t}\n\t};\n\n\tconst pinIconUrl = pinIcon({\n\t\tfillColor: markerConfigs.fillColor,\n\t\tstrokeColor: markerConfigs.strokeColor\n\t});\n\n\tconst onClusterClick = cluster => {\n\t\tif (\n\t\t\t!siteConfig.optionalShowLocationClusterConfig ||\n mapRef.current.zoom > siteConfig.optionalShowLocationClusterConfig.showForZoomLevelLessThan\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!cluster || typeof cluster.getMarkers !== \"function\") {\n\t\t\tconsole.error(\"Cluster object or getMarkers method not available.\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst markers = cluster.getMarkers();\n\n\t\tif (!markers || markers.length === 0) {\n\t\t\tconsole.error(\"No markers found in the cluster.\");\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tconst bounds = new window.google.maps.LatLngBounds();\n\n\t\t\tmarkers.forEach(marker => {\n\t\t\t\tbounds.extend(marker.getPosition());\n\t\t\t});\n\t\t\tconst clusterCenter = bounds.getCenter();\n\n\t\t\tconst configLat = siteConfig.optionalShowLocationClusterConfig.latitude;\n\t\t\tconst configLng = siteConfig.optionalShowLocationClusterConfig.longitude;\n\n\t\t\tconst latDiff = clusterCenter.lat() - configLat;\n\t\t\tconst lngDiff = clusterCenter.lng() - configLng;\n\t\t\tconst distance = Math.sqrt(latDiff * latDiff + lngDiff * lngDiff);\n\n\t\t\tconst distanceThreshold = 1;\n\t\t\tif (distance <= distanceThreshold) {\n\t\t\t\tbounds.extend(new google.maps.LatLng(configLat, configLng));\n\t\t\t}\n\n\t\t\tif (mapRef.current) {\n\t\t\t\tmapRef.current.fitBounds(bounds);\n\t\t\t}\n\t\t}, 300);\n\t};\n\tif (!mapItems) {\n\t\treturn null;\n\t}\n\tconst mapItemsKey = mapItems.map(item => item.id).join(\"-\");\n\treturn (\n\t\t<Map\n\t\t\tzoom={zoom}\n\t\t\tcenter={center}\n\t\t\tmapContainerRef={mapContainerRef}\n\t\t\tonLoad={onLoad}\n\t\t\tonIdle={onIdle}\n\t\t\tmapInteracted={mapInteracted}\n\t\t\tpinIconUrl={pinIconUrl}\n\t\t\tsetMapInteracted={setMapInteracted}\n\t\t\tfitBounds={fitBounds}\n\t\t\tmapRef={mapRef}\n\t\t\tsetQuery={setQuery}\n\t\t\tfilteredListingsLength={filteredListings.length}\n\t\t\tsetSelectedFilters={setSelectedFilters}\n\t\t>\n\t\t\t<MarkerClustererF\n\t\t\t\tkey={mapItemsKey}\n\t\t\t\tcalculator={markers => {\n\t\t\t\t\tconst totalCount = markers.reduce((sum, marker) => sum + (marker.get(\"count\") || 1), 0);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttext: totalCount.toString(),\n\t\t\t\t\t\tindex: Math.min(5, Math.floor(totalCount / 10))\n\t\t\t\t\t};\n\t\t\t\t}}\n\t\t\t\toptions={{\n\t\t\t\t\t...clusterOptions(clusterGridSize, markerConfigs.fillColor)\n\t\t\t\t}}\n\t\t\t\tonClick={onClusterClick}\n\t\t\t>\n\t\t\t\t{clusterer => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{mapItems.map(item => {\n\t\t\t\t\t\t\tconst markerCount = Object.values(item.items).length;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<MapMarker\n\t\t\t\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\t\t\tselectedLocation={location}\n\t\t\t\t\t\t\t\t\tmarkerRefs={markerRefs}\n\t\t\t\t\t\t\t\t\tinfoWindowClasses={infoWindowClasses}\n\t\t\t\t\t\t\t\t\tsetSelectedLocation={setLocation}\n\t\t\t\t\t\t\t\t\tmarkerClickHandler={markerClickHandler}\n\t\t\t\t\t\t\t\t\tclusterer={clusterer}\n\t\t\t\t\t\t\t\t\tmarkerIcon={markerIcon(markerConfigs, markerCount)}\n\t\t\t\t\t\t\t\t\tmarkerIconSelected={markerIconSelected(markerConfigs, markerCount)}\n\t\t\t\t\t\t\t\t\tsetMapInteracted={setMapInteracted}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\n\t\t\t\t\t\t{additionalMapMarkers &&\n additionalMapMarkers.map(\n \t(marker, index) =>\n \t\tcurrentZoom >= marker.minZoom &&\n currentZoom <= marker.maxZoom && (\n \t\t\t<Marker\n \t\t\t\tkey={`marker-${marker.title}-${index}`}\n \t\t\t\tposition={marker.position}\n \t\t\t\ttitle={marker.title}\n \t\t\t\ticon={{\n \t\t\t\t\turl: marker.iconUrl,\n \t\t\t\t\tscaledSize: new window.google.maps.Size(40, 40)\n \t\t\t\t}}\n \t\t\t/>\n \t\t)\n )}\n\n\t\t\t\t\t\t{poiMarkers &&\n poiMarkers.markers.map((marker, index) => (\n \t<PlaceMarker\n \t\tkey={`marker-${marker.title}-${index}`}\n \t\tmarker={marker}\n \t\tindex={index}\n \t\tselectedPlaceMarker={selectedPlaceMarker}\n \t\tplacesWindow={placesWindow}\n \t\tsetPlacesWindow={setPlacesWindow}\n \t\tsetSelectedPlaceMarker={setSelectedPlaceMarker}\n \t/>\n ))}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</MarkerClustererF>\n\t\t</Map>\n\t);\n};\n\nexport default MapContainer;\n\n"],"names":["MapContainer","_ref","markerConfigs","infoWindowClasses","_ref$clusterGridSize","clusterGridSize","_useMap","useMap","location","zoom","center","selectLocationEntity","setLocation","mapInteracted","setMapInteracted","defaultZoomOverride","_useMapList","useMapList","oldMapItems","mapItems","filteredListings","selectedFilters","setSelectedFilters","setQuery","siteConfig","_useState","useState","_useState2","_slicedToArray","setMapItems","_useState3","_useState4","markersToHideFromBounds","setMarkersToHideFromBounds","mapRef","useRef","markerRefs","mapContainerRef","_usePlaces","usePlaces","poiMarkers","setCurrentCenter","currentCenter","setCurrentZoom","currentZoom","selectedPlaceMarker","setSelectedPlaceMarker","placesWindow","setPlacesWindow","additionalMapMarkers","onIdle","current","newCenter","getCenter","toJSON","newZoom","useEffect","length","defaultMapState","state","city","markersToHide","filter","x","address","map","item","id","handleScroll","mapContainerRefCurrent","addEventListener","removeEventListener","setZoom","mapInstance","dragStartListener","addListener","mouseDownListener","google","maps","event","removeListener","fitBounds","currZoom","setZoomVal","panTo","LatLng","latitude","longitude","overload","arguments","undefined","bounds","window","LatLngBounds","forEach","includes","extend","optionalShowLocationClusterConfig","configLocation","markerClickHandler","mapLocation","onLoad","pinIconUrl","pinIcon","fillColor","strokeColor","onClusterClick","cluster","showForZoomLevelLessThan","getMarkers","console","error","markers","setTimeout","marker","getPosition","clusterCenter","configLat","configLng","latDiff","lat","lngDiff","lng","distance","Math","sqrt","distanceThreshold","mapItemsKey","join","React","createElement","Map","filteredListingsLength","MarkerClustererF","key","calculator","totalCount","reduce","sum","get","text","toString","index","min","floor","options","_objectSpread","clusterOptions","onClick","clusterer","Fragment","markerCount","Object","values","items","MapMarker","selectedLocation","setSelectedLocation","markerIcon","markerIconSelected","minZoom","maxZoom","Marker","concat","title","position","icon","url","iconUrl","scaledSize","Size","PlaceMarker"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abcagency/hc-ui-components",
3
- "version": "1.3.76",
3
+ "version": "1.3.77",
4
4
  "description": "UI Components for HireControl",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -16,10 +16,27 @@ import { MarkerClustererF, Marker } from "@react-google-maps/api";
16
16
  import { clusterOptions } from "~/util/mapUtil";
17
17
 
18
18
  const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }) => {
19
- const { location, zoom, center, selectLocationEntity, setLocation, mapInteracted, setMapInteracted, defaultZoomOverride } = useMap();
19
+ const {
20
+ location,
21
+ zoom,
22
+ center,
23
+ selectLocationEntity,
24
+ setLocation,
25
+ mapInteracted,
26
+ setMapInteracted,
27
+ defaultZoomOverride
28
+ } = useMap();
20
29
 
21
- const { mapItems: oldMapItems, filteredListings,selectedFilters, setSelectedFilters, setQuery, siteConfig } = useMapList();
30
+ const {
31
+ mapItems: oldMapItems,
32
+ filteredListings,
33
+ selectedFilters,
34
+ setSelectedFilters,
35
+ setQuery,
36
+ siteConfig
37
+ } = useMapList();
22
38
  const [mapItems, setMapItems] = useState(null);
39
+ const [markersToHideFromBounds, setMarkersToHideFromBounds] = useState([]);
23
40
 
24
41
  const mapRef = useRef();
25
42
  const markerRefs = useRef({});
@@ -49,17 +66,21 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
49
66
  };
50
67
 
51
68
  useEffect(() => {
52
- if (!oldMapItems || oldMapItems.length === 0) return;
53
-
54
- if(!siteConfig.defaultMapState || mapInteracted || selectedFilters?.state || selectedFilters?.city){
69
+ if (!oldMapItems || oldMapItems.length === 0) return;
55
70
 
71
+ if (!siteConfig.defaultMapState || mapInteracted || selectedFilters?.state || selectedFilters?.city) {
56
72
  setMapItems(oldMapItems);
73
+ setMarkersToHideFromBounds([]);
57
74
  return;
58
75
  }
59
76
 
60
- let filteredMapItems = oldMapItems.filter(x => x.address.state == siteConfig.defaultMapState);
61
- setMapItems(filteredMapItems);
62
- },[oldMapItems, selectedFilters, siteConfig]);
77
+ const markersToHide = oldMapItems
78
+ .filter(x => x.address.state !== siteConfig.defaultMapState)
79
+ .map(item => item.id);
80
+
81
+ setMarkersToHideFromBounds(markersToHide);
82
+ setMapItems(oldMapItems);
83
+ }, [oldMapItems, selectedFilters, siteConfig, mapInteracted]);
63
84
 
64
85
  useEffect(() => {
65
86
  if (mapContainerRef.current) {
@@ -73,7 +94,7 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
73
94
  }, [mapContainerRef.current]);
74
95
 
75
96
  useEffect(() => {
76
- if(mapRef.current && defaultZoomOverride && !mapInteracted && !location){
97
+ if (mapRef.current && defaultZoomOverride && !mapInteracted && !location) {
77
98
  mapRef.current.setZoom(defaultZoomOverride);
78
99
  }
79
100
  }, [mapInteracted]);
@@ -81,8 +102,14 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
81
102
  useEffect(() => {
82
103
  if (mapRef.current) {
83
104
  const mapInstance = mapRef.current;
84
- const dragStartListener = mapInstance.addListener("dragstart", () => setMapInteracted(true));
85
- const mouseDownListener = mapInstance.addListener("mousedown", () => setMapInteracted(true));
105
+ const dragStartListener = mapInstance.addListener("dragstart", () => {
106
+ setMapInteracted(true);
107
+ setMarkersToHideFromBounds([]);
108
+ });
109
+ const mouseDownListener = mapInstance.addListener("mousedown", () => {
110
+ setMapInteracted(true);
111
+ setMarkersToHideFromBounds([]);
112
+ });
86
113
  return () => {
87
114
  google.maps.event.removeListener(dragStartListener);
88
115
  google.maps.event.removeListener(mouseDownListener);
@@ -119,9 +146,14 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
119
146
  const fitBounds = (map, overload = false) => {
120
147
  if ((mapInteracted === false || overload) && mapItems != null) {
121
148
  const bounds = new window.google.maps.LatLngBounds();
149
+
122
150
  mapItems.forEach(item => {
151
+ if (!mapInteracted && markersToHideFromBounds.includes(item.id)) {
152
+ return;
153
+ }
123
154
  bounds.extend(new google.maps.LatLng(item.latitude, item.longitude));
124
155
  });
156
+
125
157
  if (siteConfig.optionalShowLocationClusterConfig) {
126
158
  const configLocation = new google.maps.LatLng(
127
159
  siteConfig.optionalShowLocationClusterConfig.latitude,
@@ -143,16 +175,16 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
143
175
  map.panTo(newCenter);
144
176
  }
145
177
  }
146
- if(defaultZoomOverride && !mapInteracted && !location){
178
+ if (defaultZoomOverride && !mapInteracted && !location) {
147
179
  mapRef.current.setZoom(defaultZoomOverride);
148
- }
149
- else if (mapRef.current.zoom > 17) {
180
+ } else if (mapRef.current.zoom > 17) {
150
181
  mapRef.current.setZoom(16);
151
182
  }
152
183
  };
153
184
 
154
185
  const markerClickHandler = mapLocation => {
155
186
  setMapInteracted(true);
187
+ setMarkersToHideFromBounds([]);
156
188
  selectLocationEntity(mapLocation);
157
189
  };
158
190
 
@@ -179,7 +211,7 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
179
211
  const onClusterClick = cluster => {
180
212
  if (
181
213
  !siteConfig.optionalShowLocationClusterConfig ||
182
- mapRef.current.zoom > siteConfig.optionalShowLocationClusterConfig.showForZoomLevelLessThan
214
+ mapRef.current.zoom > siteConfig.optionalShowLocationClusterConfig.showForZoomLevelLessThan
183
215
  ) {
184
216
  return;
185
217
  }
@@ -225,7 +257,7 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
225
257
  return null;
226
258
  }
227
259
  const mapItemsKey = mapItems.map(item => item.id).join("-");
228
- return (
260
+ return (
229
261
  <Map
230
262
  zoom={zoom}
231
263
  center={center}
@@ -241,27 +273,25 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
241
273
  filteredListingsLength={filteredListings.length}
242
274
  setSelectedFilters={setSelectedFilters}
243
275
  >
244
-
245
276
  <MarkerClustererF
246
277
  key={mapItemsKey}
247
- calculator={markers => {
278
+ calculator={markers => {
248
279
  const totalCount = markers.reduce((sum, marker) => sum + (marker.get("count") || 1), 0);
249
280
 
250
281
  return {
251
282
  text: totalCount.toString(),
252
283
  index: Math.min(5, Math.floor(totalCount / 10))
253
- };}}
284
+ };
285
+ }}
254
286
  options={{
255
287
  ...clusterOptions(clusterGridSize, markerConfigs.fillColor)
256
-
257
288
  }}
258
289
  onClick={onClusterClick}
259
290
  >
260
-
261
291
  {clusterer => (
262
292
  <>
263
293
  {mapItems.map(item => {
264
- let markerCount = Object.values(item.items).length;
294
+ const markerCount = Object.values(item.items).length;
265
295
  return (
266
296
  <MapMarker
267
297
  key={item.id}
@@ -276,8 +306,8 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
276
306
  markerIconSelected={markerIconSelected(markerConfigs, markerCount)}
277
307
  setMapInteracted={setMapInteracted}
278
308
  />
279
- );}
280
- )}
309
+ );
310
+ })}
281
311
 
282
312
  {additionalMapMarkers &&
283
313
  additionalMapMarkers.map(