@abcagency/hc-ui-components 1.1.1 → 1.2.1

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.
Files changed (234) hide show
  1. package/.editorconfig +12 -0
  2. package/.eslintrc +144 -0
  3. package/.prettierignore +3 -0
  4. package/dist/_virtual/_rollupPluginBabelHelpers.js +516 -0
  5. package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  6. package/dist/apis/hcApi.js +189 -0
  7. package/dist/apis/hcApi.js.map +1 -0
  8. package/dist/clientToken.js +10 -0
  9. package/dist/clientToken.js.map +1 -0
  10. package/dist/components/HireControlMap.js +130 -0
  11. package/dist/components/HireControlMap.js.map +1 -0
  12. package/dist/components/modules/accordions/MapAccordionItem.js +76 -0
  13. package/dist/components/modules/accordions/MapAccordionItem.js.map +1 -0
  14. package/dist/components/modules/accordions/default.js +108 -0
  15. package/dist/components/modules/accordions/default.js.map +1 -0
  16. package/dist/components/modules/accordions/filterItem.js +50 -0
  17. package/dist/components/modules/accordions/filterItem.js.map +1 -0
  18. package/dist/components/modules/accordions/filters.js +46 -0
  19. package/dist/components/modules/accordions/filters.js.map +1 -0
  20. package/dist/components/modules/buttons/button-group-apply.js +84 -0
  21. package/dist/components/modules/buttons/button-group-apply.js.map +1 -0
  22. package/dist/components/modules/buttons/commute-pill.js +18 -0
  23. package/dist/components/modules/buttons/commute-pill.js.map +1 -0
  24. package/dist/components/modules/buttons/default.js +145 -0
  25. package/dist/components/modules/buttons/default.js.map +1 -0
  26. package/dist/components/modules/buttons/items-pill.js +23 -0
  27. package/dist/components/modules/buttons/items-pill.js.map +1 -0
  28. package/dist/components/modules/buttons/pill-wrapper.js +20 -0
  29. package/dist/components/modules/buttons/pill-wrapper.js.map +1 -0
  30. package/dist/components/modules/buttons/show-all-button.js +39 -0
  31. package/dist/components/modules/buttons/show-all-button.js.map +1 -0
  32. package/dist/components/modules/cards/default.js +102 -0
  33. package/dist/components/modules/cards/default.js.map +1 -0
  34. package/dist/components/modules/cards/filter.js +38 -0
  35. package/dist/components/modules/cards/filter.js.map +1 -0
  36. package/dist/components/modules/dialogs/apply-dialog.js +46 -0
  37. package/dist/components/modules/dialogs/apply-dialog.js.map +1 -0
  38. package/dist/components/modules/filter/commute.js +184 -0
  39. package/dist/components/modules/filter/commute.js.map +1 -0
  40. package/dist/components/modules/filter/index.js +79 -0
  41. package/dist/components/modules/filter/index.js.map +1 -0
  42. package/dist/components/modules/filter/item.js +71 -0
  43. package/dist/components/modules/filter/item.js.map +1 -0
  44. package/dist/components/modules/filter/location.js +68 -0
  45. package/dist/components/modules/filter/location.js.map +1 -0
  46. package/dist/components/modules/filter/points-of-interest.js +38 -0
  47. package/dist/components/modules/filter/points-of-interest.js.map +1 -0
  48. package/dist/components/modules/filter/radio-item.js +46 -0
  49. package/dist/components/modules/filter/radio-item.js.map +1 -0
  50. package/dist/components/modules/filter/search.js +83 -0
  51. package/dist/components/modules/filter/search.js.map +1 -0
  52. package/dist/components/modules/filter/sort.js +93 -0
  53. package/dist/components/modules/filter/sort.js.map +1 -0
  54. package/dist/components/modules/grid.js +39 -0
  55. package/dist/components/modules/grid.js.map +1 -0
  56. package/dist/components/modules/icon.js +23 -0
  57. package/dist/components/modules/icon.js.map +1 -0
  58. package/dist/components/modules/jobListing/listing-details.js +69 -0
  59. package/dist/components/modules/jobListing/listing-details.js.map +1 -0
  60. package/dist/components/modules/maps/info-window-card.js +14 -0
  61. package/dist/components/modules/maps/info-window-card.js.map +1 -0
  62. package/dist/components/modules/maps/info-window-content.js +39 -0
  63. package/dist/components/modules/maps/info-window-content.js.map +1 -0
  64. package/dist/components/modules/maps/list/field-mapper.js +88 -0
  65. package/dist/components/modules/maps/list/field-mapper.js.map +1 -0
  66. package/dist/components/modules/maps/list/header-item.js +59 -0
  67. package/dist/components/modules/maps/list/header-item.js.map +1 -0
  68. package/dist/components/modules/maps/list/header.js +37 -0
  69. package/dist/components/modules/maps/list/header.js.map +1 -0
  70. package/dist/components/modules/maps/list/index.js +93 -0
  71. package/dist/components/modules/maps/list/index.js.map +1 -0
  72. package/dist/components/modules/maps/list/item-expand-card/index.js +16 -0
  73. package/dist/components/modules/maps/list/item-expand-card/index.js.map +1 -0
  74. package/dist/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js +38 -0
  75. package/dist/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js.map +1 -0
  76. package/dist/components/modules/maps/list/item-expand-card/recruiter-details.js +40 -0
  77. package/dist/components/modules/maps/list/item-expand-card/recruiter-details.js.map +1 -0
  78. package/dist/components/modules/maps/list/item-expand-card/recruiter-headshot.js +20 -0
  79. package/dist/components/modules/maps/list/item-expand-card/recruiter-headshot.js.map +1 -0
  80. package/dist/components/modules/maps/list/list-item/index.js +98 -0
  81. package/dist/components/modules/maps/list/list-item/index.js.map +1 -0
  82. package/dist/components/modules/maps/map-list.js +57 -0
  83. package/dist/components/modules/maps/map-list.js.map +1 -0
  84. package/dist/components/modules/maps/map-marker.js +85 -0
  85. package/dist/components/modules/maps/map-marker.js.map +1 -0
  86. package/dist/components/modules/maps/map.js +201 -0
  87. package/dist/components/modules/maps/map.js.map +1 -0
  88. package/dist/components/modules/maps/place-marker.js +37 -0
  89. package/dist/components/modules/maps/place-marker.js.map +1 -0
  90. package/dist/components/modules/maps/tabs.js +84 -0
  91. package/dist/components/modules/maps/tabs.js.map +1 -0
  92. package/dist/constants/placeTypes.js +11 -0
  93. package/dist/constants/placeTypes.js.map +1 -0
  94. package/dist/contexts/mapContext.js +133 -0
  95. package/dist/contexts/mapContext.js.map +1 -0
  96. package/dist/contexts/mapListContext.js +278 -0
  97. package/dist/contexts/mapListContext.js.map +1 -0
  98. package/dist/contexts/placesContext.js +152 -0
  99. package/dist/contexts/placesContext.js.map +1 -0
  100. package/dist/hooks/useList.js +119 -0
  101. package/dist/hooks/useList.js.map +1 -0
  102. package/dist/index.js +2 -4536
  103. package/dist/index.js.map +1 -0
  104. package/dist/services/_virtual/_rollupPluginBabelHelpers.js +372 -0
  105. package/dist/services/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  106. package/dist/services/apis/hcApi.js +189 -0
  107. package/dist/services/apis/hcApi.js.map +1 -0
  108. package/dist/services/clientToken.js +7 -0
  109. package/dist/services/clientToken.js.map +1 -0
  110. package/dist/services/configService.js +33 -0
  111. package/dist/services/configService.js.map +1 -0
  112. package/dist/services/googlePlacesNearbyService.js +61 -0
  113. package/dist/services/googlePlacesNearbyService.js.map +1 -0
  114. package/dist/services/listingAggregatorService.js +56 -0
  115. package/dist/services/listingAggregatorService.js.map +1 -0
  116. package/dist/services/listingEntityService.js +36 -0
  117. package/dist/services/listingEntityService.js.map +1 -0
  118. package/dist/services/listingService.js +60 -112
  119. package/dist/services/listingService.js.map +1 -0
  120. package/dist/services/recruiterService.js +36 -0
  121. package/dist/services/recruiterService.js.map +1 -0
  122. package/dist/services/styles/index.css +3 -0
  123. package/dist/styles/index.css +3 -0
  124. package/dist/util/filterUtil.js +213 -0
  125. package/dist/util/filterUtil.js.map +1 -0
  126. package/dist/util/loading.js +16 -0
  127. package/dist/util/loading.js.map +1 -0
  128. package/dist/util/localStorageUtil.js +32 -0
  129. package/dist/util/localStorageUtil.js.map +1 -0
  130. package/dist/util/mapIconUtil.js +73 -0
  131. package/dist/util/mapIconUtil.js.map +1 -0
  132. package/dist/util/mapUtil.js +76 -0
  133. package/dist/util/mapUtil.js.map +1 -0
  134. package/dist/util/sortUtil.js +33 -0
  135. package/dist/util/sortUtil.js.map +1 -0
  136. package/dist/util/stringUtils.js +9 -0
  137. package/dist/util/stringUtils.js.map +1 -0
  138. package/jsconfig.json +7 -0
  139. package/package.json +51 -38
  140. package/postcss.config.js +13 -15
  141. package/{src/tailwind/preset.default.js → preset.default.js} +15 -15
  142. package/rollup.config.mjs +87 -0
  143. package/src/apis/hcApi.js +93 -87
  144. package/src/clientToken.js +9 -9
  145. package/src/components/HireControlMap.js +121 -0
  146. package/src/components/modules/accordions/MapAccordionItem.js +72 -69
  147. package/src/components/modules/accordions/default.js +171 -173
  148. package/src/components/modules/accordions/filterItem.js +53 -53
  149. package/src/components/modules/accordions/filters.js +47 -44
  150. package/src/components/modules/buttons/button-group-apply.js +113 -85
  151. package/src/components/modules/buttons/commute-pill.js +22 -21
  152. package/src/components/modules/buttons/default.js +196 -196
  153. package/src/components/modules/buttons/items-pill.js +32 -31
  154. package/src/components/modules/buttons/pill-wrapper.js +27 -26
  155. package/src/components/modules/buttons/show-all-button.js +20 -20
  156. package/src/components/modules/cards/default.js +167 -168
  157. package/src/components/modules/cards/filter.js +56 -55
  158. package/src/components/modules/dialogs/apply-dialog.js +48 -47
  159. package/src/components/modules/filter/commute.js +148 -151
  160. package/src/components/modules/filter/index.js +87 -86
  161. package/src/components/modules/filter/item.js +76 -77
  162. package/src/components/modules/filter/location.js +71 -69
  163. package/src/components/modules/filter/points-of-interest.js +44 -43
  164. package/src/components/modules/filter/radio-item.js +53 -51
  165. package/src/components/modules/filter/search.js +92 -91
  166. package/src/components/modules/filter/sort.js +83 -83
  167. package/src/components/modules/grid.js +55 -56
  168. package/src/components/modules/icon.js +33 -33
  169. package/src/components/modules/jobListing/listing-details.js +94 -88
  170. package/src/components/modules/maps/info-window-card.js +17 -17
  171. package/src/components/modules/maps/info-window-content.js +58 -60
  172. package/src/components/modules/maps/list/field-mapper.js +112 -111
  173. package/src/components/modules/maps/list/header-item.js +91 -90
  174. package/src/components/modules/maps/list/header.js +47 -46
  175. package/src/components/modules/maps/list/index.js +107 -104
  176. package/src/components/modules/maps/list/item-expand-card/index.js +22 -21
  177. package/src/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js +50 -48
  178. package/src/components/modules/maps/list/item-expand-card/recruiter-details.js +68 -67
  179. package/src/components/modules/maps/list/item-expand-card/recruiter-headshot.js +22 -22
  180. package/src/components/modules/maps/list/list-item/index.js +134 -133
  181. package/src/components/modules/maps/map-list.js +74 -73
  182. package/src/components/modules/maps/map-marker.js +86 -84
  183. package/src/components/modules/maps/map.js +229 -226
  184. package/src/components/modules/maps/place-marker.js +1 -1
  185. package/src/components/modules/maps/tabs.js +81 -79
  186. package/src/constants/placeTypes.js +8 -8
  187. package/src/contexts/mapContext.js +20 -19
  188. package/src/contexts/mapListContext.js +20 -15
  189. package/src/contexts/placesContext.js +4 -0
  190. package/src/hooks/useList.js +12 -10
  191. package/src/index.js +3 -103
  192. package/src/services/configService.js +16 -16
  193. package/src/services/googlePlacesNearbyService.js +33 -33
  194. package/src/services/listingAggregatorService.js +5 -4
  195. package/src/services/listingEntityService.js +2 -1
  196. package/src/services/listingService.js +27 -28
  197. package/src/services/recruiterService.js +17 -17
  198. package/src/styles/{globals.css → index.css} +23 -23
  199. package/src/util/arrayUtil.js +3 -3
  200. package/src/util/fieldMapper.js +22 -19
  201. package/src/util/filterUtil.js +19 -19
  202. package/src/util/loading.js +17 -17
  203. package/src/util/localStorageUtil.js +26 -26
  204. package/src/util/mapIconUtil.js +3 -3
  205. package/src/util/sortUtil.js +32 -32
  206. package/src/util/stringUtils.js +6 -6
  207. package/{src/tailwind/tailwind.config.js → tailwind.config.js} +126 -127
  208. package/dist/globals.css +0 -3
  209. package/dist/output.css +0 -784
  210. package/dist/services/globals.css +0 -3
  211. package/rollup.config.js +0 -68
  212. package/src/components/layout/footer.js +0 -34
  213. package/src/components/layout/header.js +0 -23
  214. package/src/components/layout/layout.js +0 -36
  215. package/src/components/modules/animations/slidein.js +0 -41
  216. package/src/components/modules/navigation/nav-link.js +0 -65
  217. package/src/components/modules/navigation/navbar.js +0 -106
  218. package/src/components/modules/navigation/skip-link.js +0 -21
  219. package/src/components/modules/navigation/social.js +0 -29
  220. package/src/components/modules/sections/default.js +0 -59
  221. package/src/components/modules/sections/sectionContext.js +0 -4
  222. package/src/hooks/useClickOutside.js +0 -16
  223. package/src/hooks/useEventListener.js +0 -25
  224. package/src/hooks/useEventTracker.js +0 -19
  225. package/src/hooks/useRefScrollProgress.js +0 -24
  226. package/src/hooks/useScript.js +0 -63
  227. package/src/hooks/useScrollDirection.js +0 -39
  228. package/src/hooks/useSectionTracker.js +0 -95
  229. package/src/hooks/useUserAgent.js +0 -43
  230. package/src/hooks/useWindowSize.js +0 -28
  231. package/src/index.css +0 -25
  232. package/src/styles/fonts.js +0 -0
  233. package/src/util/page-head.js +0 -62
  234. package/src/util/provider.js +0 -12
@@ -0,0 +1,133 @@
1
+ import { slicedToArray as _slicedToArray, defineProperty as _defineProperty } from '../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React, { useState, useRef, useEffect, createContext, useContext } from 'react';
3
+ import { getStorageObject, setStorageObject } from '../util/localStorageUtil.js';
4
+
5
+ var MapContext = /*#__PURE__*/createContext();
6
+ var useMap = function useMap() {
7
+ var context = useContext(MapContext);
8
+ if (!context) {
9
+ throw new Error("useMap must be used within a MapProvider");
10
+ }
11
+ return context;
12
+ };
13
+ var MapProvider = function MapProvider(_ref) {
14
+ var _getStorageObject;
15
+ var children = _ref.children,
16
+ resetFilters = _ref.resetFilters;
17
+ var _useState = useState(getStorageObject('selectedListItem')),
18
+ _useState2 = _slicedToArray(_useState, 2),
19
+ selectedListItem = _useState2[0],
20
+ setSelectedListItem = _useState2[1];
21
+ var _useState3 = useState(getStorageObject('location')),
22
+ _useState4 = _slicedToArray(_useState3, 2),
23
+ location = _useState4[0],
24
+ setLocation = _useState4[1];
25
+ var _useState5 = useState(getStorageObject("center", {
26
+ lat: 39.8283,
27
+ lng: -98.5795
28
+ })),
29
+ _useState6 = _slicedToArray(_useState5, 2),
30
+ center = _useState6[0],
31
+ setCenter = _useState6[1];
32
+ var _useState7 = useState(getStorageObject("zoom", 10)),
33
+ _useState8 = _slicedToArray(_useState7, 2),
34
+ zoom = _useState8[0],
35
+ setZoom = _useState8[1];
36
+ var _useState9 = useState(getStorageObject('commuteLocation')),
37
+ _useState10 = _slicedToArray(_useState9, 2),
38
+ commuteLocation = _useState10[0],
39
+ setCommuteLocation = _useState10[1];
40
+ var _useState11 = useState([]),
41
+ _useState12 = _slicedToArray(_useState11, 2),
42
+ selectedPlaces = _useState12[0],
43
+ setSelectedPlaces = _useState12[1];
44
+ var _useState13 = useState(false),
45
+ _useState14 = _slicedToArray(_useState13, 2),
46
+ mapInteracted = _useState14[0],
47
+ setMapInteracted = _useState14[1];
48
+ var _useState15 = useState((_getStorageObject = getStorageObject('selectedListItem')) !== null && _getStorageObject !== void 0 ? _getStorageObject : {
49
+ id: "defaultId"
50
+ }),
51
+ _useState16 = _slicedToArray(_useState15, 1),
52
+ firstLoadListItem = _useState16[0];
53
+ var _useState17 = useState(null),
54
+ _useState18 = _slicedToArray(_useState17, 2),
55
+ travelTime = _useState18[0],
56
+ setTravelTime = _useState18[1];
57
+ var userSetZoom = useRef(true);
58
+ useEffect(function () {
59
+ setStorageObject("commuteLocation", commuteLocation);
60
+ if (!commuteLocation) {
61
+ setTravelTime(null);
62
+ }
63
+ }, [commuteLocation]);
64
+ useEffect(function () {
65
+ setStorageObject("selectedListItem", selectedListItem);
66
+ }, [selectedListItem]);
67
+ useEffect(function () {
68
+ localStorage.setItem("zoom", zoom);
69
+ }, [zoom]);
70
+ useEffect(function () {
71
+ if (location == null) {
72
+ localStorage.removeItem("location");
73
+ } else {
74
+ setStorageObject("location", location);
75
+ }
76
+ }, [location]);
77
+ useEffect(function () {
78
+ setStorageObject("center", center);
79
+ }, [center]);
80
+ var selectItem = function selectItem(item, itemLocation, zoom, center) {
81
+ setSelectedListItem(item);
82
+ if (mapInteracted === false && itemLocation != null) {
83
+ setLocation(itemLocation);
84
+ }
85
+ if (mapInteracted === false || itemLocation != null) {
86
+ setLocation(itemLocation);
87
+ setCenter(center);
88
+ }
89
+ if (mapInteracted === false) {
90
+ setZoom(zoom);
91
+ }
92
+ };
93
+ var filterReset = function filterReset() {
94
+ setSelectedPlaces({});
95
+ setSelectedListItem(null);
96
+ setLocation(null);
97
+ setZoom(8);
98
+ setMapInteracted(false);
99
+ };
100
+ if (resetFilters === true) {
101
+ filterReset();
102
+ }
103
+ var selectLocationEntity = function selectLocationEntity(location) {
104
+ localStorage.removeItem("selectedListItem");
105
+ setTimeout(function () {
106
+ return setLocation(location);
107
+ }, 200);
108
+ setSelectedListItem(null);
109
+ };
110
+ return /*#__PURE__*/React.createElement(MapContext.Provider, {
111
+ value: _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({
112
+ selectedListItem: selectedListItem,
113
+ setSelectedListItem: setSelectedListItem,
114
+ location: location,
115
+ center: center,
116
+ zoom: zoom,
117
+ setZoom: setZoom,
118
+ selectItem: selectItem,
119
+ commuteLocation: commuteLocation,
120
+ setCommuteLocation: setCommuteLocation,
121
+ setSelectedPlaces: setSelectedPlaces,
122
+ selectedPlaces: selectedPlaces,
123
+ selectLocationEntity: selectLocationEntity,
124
+ setLocation: setLocation,
125
+ setMapInteracted: setMapInteracted,
126
+ mapInteracted: mapInteracted,
127
+ userSetZoom: userSetZoom
128
+ }, "setLocation", setLocation), "location", location), "firstLoadListItem", firstLoadListItem), "travelTime", travelTime), "setTravelTime", setTravelTime), "filterReset", filterReset)
129
+ }, children);
130
+ };
131
+
132
+ export { MapProvider, useMap };
133
+ //# sourceMappingURL=mapContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapContext.js","sources":["../../src/contexts/mapContext.js"],"sourcesContent":["import React, { createContext, useState, useContext, useEffect, useRef } from 'react';\nimport { getStorageObject, setStorageObject } from '~/util/localStorageUtil';\n\nconst MapContext = createContext();\n\nexport const useMap = () => {\n\tconst context = useContext(MapContext);\n\tif (!context) {\n\t\tthrow new Error(\"useMap must be used within a MapProvider\");\n\t}\n\treturn context;\n};\n\nexport const MapProvider = ({ children, resetFilters }) => {\n\tconst [selectedListItem, setSelectedListItem] = useState(getStorageObject('selectedListItem'));\n\tconst [location, setLocation] = useState(getStorageObject('location'));\n\tconst [center, setCenter] = useState(getStorageObject(\"center\", { lat: 39.8283, lng: -98.5795 }));\n\tconst [zoom, setZoom] = useState(getStorageObject(\"zoom\", 10));\n\tconst [commuteLocation, setCommuteLocation] = useState(getStorageObject('commuteLocation'));\n\tconst [selectedPlaces, setSelectedPlaces] = useState([]);\n\tconst [mapInteracted, setMapInteracted] = useState(false);\n\tconst [firstLoadListItem] = useState(getStorageObject('selectedListItem') ?? { id: \"defaultId\" });\n\tconst [travelTime, setTravelTime] = useState(null);\n\tconst userSetZoom = useRef(true);\n\n\tuseEffect(() => {\n\t\tsetStorageObject(\"commuteLocation\", commuteLocation);\n\t\tif (!commuteLocation) {\n\t\t\tsetTravelTime(null);\n\t\t}\n\t}, [commuteLocation]);\n\n\tuseEffect(() => {\n\t\tsetStorageObject(\"selectedListItem\", selectedListItem);\n\t}, [selectedListItem]);\n\n\tuseEffect(() => {\n\t\tlocalStorage.setItem(\"zoom\", zoom);\n\t}, [zoom]);\n\n\tuseEffect(() => {\n\t\tif (location == null) {\n\t\t\tlocalStorage.removeItem(\"location\");\n\t\t} else {\n\t\t\tsetStorageObject(\"location\", location);\n\t\t}\n\t}, [location]);\n\n\tuseEffect(() => {\n\t\tsetStorageObject(\"center\", center);\n\t}, [center]);\n\n\tconst selectItem = (item, itemLocation, zoom, center) => {\n\t\tsetSelectedListItem(item);\n\t\tif (mapInteracted === false && itemLocation != null) {\n\t\t\tsetLocation(itemLocation);\n\t\t}\n\t\tif (mapInteracted === false || itemLocation != null) {\n\t\t\tsetLocation(itemLocation);\n\t\t\tsetCenter(center);\n\t\t}\n\t\tif (mapInteracted === false) {\n\t\t\tsetZoom(zoom);\n\n\t\t}\n\n\t};\n\n\tconst filterReset = () => {\n\t\tsetSelectedPlaces({});\n\t\tsetSelectedListItem(null);\n\t\tsetLocation(null);\n\t\tsetZoom(8);\n\t\tsetMapInteracted(false);\n\t};\n\n\tif (resetFilters === true) {\n\t\tfilterReset();\n\t}\n\tconst selectLocationEntity = location => {\n\n\t\tlocalStorage.removeItem(\"selectedListItem\");\n\t\tsetTimeout(() => setLocation(location), 200);\n\t\tsetSelectedListItem(null);\n\t};\n\n\treturn (\n\t\t<MapContext.Provider\n\t\t\tvalue={{\n\t\t\t\tselectedListItem,\n\t\t\t\tsetSelectedListItem,\n\t\t\t\tlocation,\n\t\t\t\tcenter,\n\t\t\t\tzoom,\n\t\t\t\tsetZoom,\n\t\t\t\tselectItem,\n\t\t\t\tcommuteLocation,\n\t\t\t\tsetCommuteLocation,\n\t\t\t\tsetSelectedPlaces,\n\t\t\t\tselectedPlaces,\n\t\t\t\tselectLocationEntity,\n\t\t\t\tsetLocation,\n\t\t\t\tsetMapInteracted,\n\t\t\t\tmapInteracted,\n\t\t\t\tuserSetZoom,\n\t\t\t\tsetLocation,\n\t\t\t\tlocation,\n\t\t\t\tfirstLoadListItem,\n\t\t\t\ttravelTime,\n\t\t\t\tsetTravelTime,\n\t\t\t\tfilterReset\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</MapContext.Provider>\n\t);\n};\n"],"names":["MapContext","createContext","useMap","context","useContext","Error","MapProvider","_ref","_getStorageObject","children","resetFilters","_useState","useState","getStorageObject","_useState2","_slicedToArray","selectedListItem","setSelectedListItem","_useState3","_useState4","location","setLocation","_useState5","lat","lng","_useState6","center","setCenter","_useState7","_useState8","zoom","setZoom","_useState9","_useState10","commuteLocation","setCommuteLocation","_useState11","_useState12","selectedPlaces","setSelectedPlaces","_useState13","_useState14","mapInteracted","setMapInteracted","_useState15","id","_useState16","firstLoadListItem","_useState17","_useState18","travelTime","setTravelTime","userSetZoom","useRef","useEffect","setStorageObject","localStorage","setItem","removeItem","selectItem","item","itemLocation","filterReset","selectLocationEntity","setTimeout","React","createElement","Provider","value","_defineProperty"],"mappings":";;;;AAGA,IAAMA,UAAU,gBAAGC,aAAa,EAAE,CAAA;IAErBC,MAAM,GAAG,SAATA,MAAMA,GAAS;AAC3B,EAAA,IAAMC,OAAO,GAAGC,UAAU,CAACJ,UAAU,CAAC,CAAA;EACtC,IAAI,CAACG,OAAO,EAAE;AACb,IAAA,MAAM,IAAIE,KAAK,CAAC,0CAA0C,CAAC,CAAA;AAC5D,GAAA;AACA,EAAA,OAAOF,OAAO,CAAA;AACf,EAAC;IAEYG,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAAmC;AAAA,EAAA,IAAAC,iBAAA,CAAA;AAAA,EAAA,IAA7BC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,YAAY,GAAAH,IAAA,CAAZG,YAAY,CAAA;EACnD,IAAAC,SAAA,GAAgDC,QAAQ,CAACC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAJ,SAAA,EAAA,CAAA,CAAA;AAAvFK,IAAAA,gBAAgB,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,mBAAmB,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;EAC5C,IAAAI,UAAA,GAAgCN,QAAQ,CAACC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAAAM,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAA/DE,IAAAA,QAAQ,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,WAAW,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAC5B,EAAA,IAAAG,UAAA,GAA4BV,QAAQ,CAACC,gBAAgB,CAAC,QAAQ,EAAE;AAAEU,MAAAA,GAAG,EAAE,OAAO;AAAEC,MAAAA,GAAG,EAAE,CAAC,OAAA;AAAQ,KAAC,CAAC,CAAC;IAAAC,UAAA,GAAAV,cAAA,CAAAO,UAAA,EAAA,CAAA,CAAA;AAA1FI,IAAAA,MAAM,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;EACxB,IAAAG,UAAA,GAAwBhB,QAAQ,CAACC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAAAgB,UAAA,GAAAd,cAAA,CAAAa,UAAA,EAAA,CAAA,CAAA;AAAvDE,IAAAA,IAAI,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,OAAO,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;EACpB,IAAAG,UAAA,GAA8CpB,QAAQ,CAACC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAAAoB,WAAA,GAAAlB,cAAA,CAAAiB,UAAA,EAAA,CAAA,CAAA;AAApFE,IAAAA,eAAe,GAAAD,WAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,kBAAkB,GAAAF,WAAA,CAAA,CAAA,CAAA,CAAA;AAC1C,EAAA,IAAAG,WAAA,GAA4CxB,QAAQ,CAAC,EAAE,CAAC;IAAAyB,WAAA,GAAAtB,cAAA,CAAAqB,WAAA,EAAA,CAAA,CAAA;AAAjDE,IAAAA,cAAc,GAAAD,WAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,iBAAiB,GAAAF,WAAA,CAAA,CAAA,CAAA,CAAA;AACxC,EAAA,IAAAG,WAAA,GAA0C5B,QAAQ,CAAC,KAAK,CAAC;IAAA6B,WAAA,GAAA1B,cAAA,CAAAyB,WAAA,EAAA,CAAA,CAAA;AAAlDE,IAAAA,aAAa,GAAAD,WAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,gBAAgB,GAAAF,WAAA,CAAA,CAAA,CAAA,CAAA;AACtC,EAAA,IAAAG,WAAA,GAA4BhC,QAAQ,CAAA,CAAAJ,iBAAA,GAACK,gBAAgB,CAAC,kBAAkB,CAAC,MAAA,IAAA,IAAAL,iBAAA,KAAA,KAAA,CAAA,GAAAA,iBAAA,GAAI;AAAEqC,MAAAA,EAAE,EAAE,WAAA;AAAY,KAAC,CAAC;IAAAC,WAAA,GAAA/B,cAAA,CAAA6B,WAAA,EAAA,CAAA,CAAA;AAA1FG,IAAAA,iBAAiB,GAAAD,WAAA,CAAA,CAAA,CAAA,CAAA;AACxB,EAAA,IAAAE,WAAA,GAAoCpC,QAAQ,CAAC,IAAI,CAAC;IAAAqC,WAAA,GAAAlC,cAAA,CAAAiC,WAAA,EAAA,CAAA,CAAA;AAA3CE,IAAAA,UAAU,GAAAD,WAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,aAAa,GAAAF,WAAA,CAAA,CAAA,CAAA,CAAA;AAChC,EAAA,IAAMG,WAAW,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;AAEhCC,EAAAA,SAAS,CAAC,YAAM;AACfC,IAAAA,gBAAgB,CAAC,iBAAiB,EAAErB,eAAe,CAAC,CAAA;IACpD,IAAI,CAACA,eAAe,EAAE;MACrBiB,aAAa,CAAC,IAAI,CAAC,CAAA;AACpB,KAAA;AACD,GAAC,EAAE,CAACjB,eAAe,CAAC,CAAC,CAAA;AAErBoB,EAAAA,SAAS,CAAC,YAAM;AACfC,IAAAA,gBAAgB,CAAC,kBAAkB,EAAEvC,gBAAgB,CAAC,CAAA;AACvD,GAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC,CAAA;AAEtBsC,EAAAA,SAAS,CAAC,YAAM;AACfE,IAAAA,YAAY,CAACC,OAAO,CAAC,MAAM,EAAE3B,IAAI,CAAC,CAAA;AACnC,GAAC,EAAE,CAACA,IAAI,CAAC,CAAC,CAAA;AAEVwB,EAAAA,SAAS,CAAC,YAAM;IACf,IAAIlC,QAAQ,IAAI,IAAI,EAAE;AACrBoC,MAAAA,YAAY,CAACE,UAAU,CAAC,UAAU,CAAC,CAAA;AACpC,KAAC,MAAM;AACNH,MAAAA,gBAAgB,CAAC,UAAU,EAAEnC,QAAQ,CAAC,CAAA;AACvC,KAAA;AACD,GAAC,EAAE,CAACA,QAAQ,CAAC,CAAC,CAAA;AAEdkC,EAAAA,SAAS,CAAC,YAAM;AACfC,IAAAA,gBAAgB,CAAC,QAAQ,EAAE7B,MAAM,CAAC,CAAA;AACnC,GAAC,EAAE,CAACA,MAAM,CAAC,CAAC,CAAA;AAEZ,EAAA,IAAMiC,UAAU,GAAG,SAAbA,UAAUA,CAAIC,IAAI,EAAEC,YAAY,EAAE/B,IAAI,EAAEJ,MAAM,EAAK;IACxDT,mBAAmB,CAAC2C,IAAI,CAAC,CAAA;AACzB,IAAA,IAAIlB,aAAa,KAAK,KAAK,IAAImB,YAAY,IAAI,IAAI,EAAE;MACpDxC,WAAW,CAACwC,YAAY,CAAC,CAAA;AAC1B,KAAA;AACA,IAAA,IAAInB,aAAa,KAAK,KAAK,IAAImB,YAAY,IAAI,IAAI,EAAE;MACpDxC,WAAW,CAACwC,YAAY,CAAC,CAAA;MACzBlC,SAAS,CAACD,MAAM,CAAC,CAAA;AAClB,KAAA;IACA,IAAIgB,aAAa,KAAK,KAAK,EAAE;MAC5BX,OAAO,CAACD,IAAI,CAAC,CAAA;AAEd,KAAA;GAEA,CAAA;AAED,EAAA,IAAMgC,WAAW,GAAG,SAAdA,WAAWA,GAAS;IACzBvB,iBAAiB,CAAC,EAAE,CAAC,CAAA;IACrBtB,mBAAmB,CAAC,IAAI,CAAC,CAAA;IACzBI,WAAW,CAAC,IAAI,CAAC,CAAA;IACjBU,OAAO,CAAC,CAAC,CAAC,CAAA;IACVY,gBAAgB,CAAC,KAAK,CAAC,CAAA;GACvB,CAAA;EAED,IAAIjC,YAAY,KAAK,IAAI,EAAE;AAC1BoD,IAAAA,WAAW,EAAE,CAAA;AACd,GAAA;AACA,EAAA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAG3C,QAAQ,EAAI;AAExCoC,IAAAA,YAAY,CAACE,UAAU,CAAC,kBAAkB,CAAC,CAAA;AAC3CM,IAAAA,UAAU,CAAC,YAAA;MAAA,OAAM3C,WAAW,CAACD,QAAQ,CAAC,CAAA;AAAA,KAAA,EAAE,GAAG,CAAC,CAAA;IAC5CH,mBAAmB,CAAC,IAAI,CAAC,CAAA;GACzB,CAAA;AAED,EAAA,oBACCgD,KAAA,CAAAC,aAAA,CAAClE,UAAU,CAACmE,QAAQ,EAAA;IACnBC,KAAK,EAAAC,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAA;AACJrD,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBC,MAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBG,MAAAA,QAAQ,EAARA,QAAQ;AACRM,MAAAA,MAAM,EAANA,MAAM;AACNI,MAAAA,IAAI,EAAJA,IAAI;AACJC,MAAAA,OAAO,EAAPA,OAAO;AACP4B,MAAAA,UAAU,EAAVA,UAAU;AACVzB,MAAAA,eAAe,EAAfA,eAAe;AACfC,MAAAA,kBAAkB,EAAlBA,kBAAkB;AAClBI,MAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBD,MAAAA,cAAc,EAAdA,cAAc;AACdyB,MAAAA,oBAAoB,EAApBA,oBAAoB;AACpB1C,MAAAA,WAAW,EAAXA,WAAW;AACXsB,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBD,MAAAA,aAAa,EAAbA,aAAa;AACbU,MAAAA,WAAW,EAAXA,WAAAA;KACA/B,EAAAA,aAAAA,EAAAA,WAAW,CACXD,EAAAA,UAAAA,EAAAA,QAAQ,CACR2B,EAAAA,mBAAAA,EAAAA,iBAAiB,iBACjBG,UAAU,CAAA,EAAA,eAAA,EACVC,aAAa,CAAA,EAAA,aAAA,EACbW,WAAW,CAAA;AACV,GAAA,EAEDrD,QACmB,CAAC,CAAA;AAExB;;;;"}
@@ -0,0 +1,278 @@
1
+ import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime, toConsumableArray as _toConsumableArray } from '../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React, { useContext, useState, useEffect, createContext } from 'react';
3
+ import { applyFilters, generateFilterOptions, filterListingsByLocation } from '../util/filterUtil.js';
4
+ import { getStorageObject, setStorageObject } from '../util/localStorageUtil.js';
5
+ import { getListingEntities } from '../services/listingEntityService.js';
6
+ import fetchListings from '../services/listingAggregatorService.js';
7
+
8
+ var MapListContext = /*#__PURE__*/createContext();
9
+ var useMapList = function useMapList() {
10
+ return useContext(MapListContext);
11
+ };
12
+ var getQuery = function getQuery() {
13
+ var query;
14
+ //if (!hasQueryInUrl(location)) {
15
+ query = typeof window !== 'undefined' ? localStorage.getItem('query') : '';
16
+ // }
17
+ //else {
18
+ // query = filtersFromURL(location).query;
19
+ // }
20
+ return query;
21
+ };
22
+ var MapListProvider = function MapListProvider(_ref) {
23
+ var children = _ref.children,
24
+ siteConfig = _ref.siteConfig,
25
+ resetFilters = _ref.resetFilters,
26
+ navigateToDetails = _ref.navigateToDetails,
27
+ navigateToEasyApply = _ref.navigateToEasyApply,
28
+ Link = _ref.Link;
29
+ // const location = useLocation();
30
+ // const navigate = useNavigate();
31
+ var _useState = useState(getStorageObject("listings", [])),
32
+ _useState2 = _slicedToArray(_useState, 2),
33
+ allListings = _useState2[0],
34
+ setAllListings = _useState2[1];
35
+ var _useState3 = useState([]),
36
+ _useState4 = _slicedToArray(_useState3, 2),
37
+ filteredListings = _useState4[0],
38
+ setFilteredListings = _useState4[1];
39
+ var _useState5 = useState(false),
40
+ _useState6 = _slicedToArray(_useState5, 2),
41
+ loading = _useState6[0],
42
+ setLoading = _useState6[1];
43
+ var _useState7 = useState(getStorageObject('mapItems', [])),
44
+ _useState8 = _slicedToArray(_useState7, 2),
45
+ mapItems = _useState8[0],
46
+ setMapItems = _useState8[1];
47
+ var _useState9 = useState(function () {
48
+ return resetFilters ? null : getQuery();
49
+ }),
50
+ _useState10 = _slicedToArray(_useState9, 2),
51
+ query = _useState10[0],
52
+ setQuery = _useState10[1];
53
+ var _useState11 = useState(getStorageObject("listingEntities", null)),
54
+ _useState12 = _slicedToArray(_useState11, 2),
55
+ listingEntities = _useState12[0],
56
+ setListingEntities = _useState12[1];
57
+ var _useState13 = useState(true),
58
+ _useState14 = _slicedToArray(_useState13, 2),
59
+ firstLoad = _useState14[0],
60
+ setFirstLoad = _useState14[1];
61
+ var _useState15 = useState(null),
62
+ _useState16 = _slicedToArray(_useState15, 2),
63
+ commuteLocation = _useState16[0],
64
+ setCommuteLocation = _useState16[1];
65
+ var _useState17 = useState(function () {
66
+ return resetFilters ? {} : getStorageObject('selectedFilters', {});
67
+ }),
68
+ _useState18 = _slicedToArray(_useState17, 2),
69
+ selectedFilters = _useState18[0],
70
+ setSelectedFilters = _useState18[1]; //hasFiltersInURL(location) ? filtersFromURL(location).filters : getStorageObject('selectedFilters', {}));
71
+ var _useState19 = useState(),
72
+ _useState20 = _slicedToArray(_useState19, 2),
73
+ filterOptions = _useState20[0],
74
+ setFilterOptions = _useState20[1];
75
+ var _useState21 = useState(getStorageObject("recruiters", {})),
76
+ _useState22 = _slicedToArray(_useState21, 2),
77
+ recruiters = _useState22[0],
78
+ setRecruiters = _useState22[1];
79
+ var _useState23 = useState(false),
80
+ _useState24 = _slicedToArray(_useState23, 2),
81
+ filterDialogIsOpen = _useState24[0],
82
+ setFilterDialogIsOpen = _useState24[1];
83
+ var _useState25 = useState("listTab"),
84
+ _useState26 = _slicedToArray(_useState25, 2),
85
+ mobileTab = _useState26[0],
86
+ setMobileTab = _useState26[1];
87
+ var _useState27 = useState([]),
88
+ _useState28 = _slicedToArray(_useState27, 2),
89
+ favorites = _useState28[0],
90
+ setFavorites = _useState28[1];
91
+ var _useState29 = useState(false),
92
+ _useState30 = _slicedToArray(_useState29, 2),
93
+ filterByFavorites = _useState30[0],
94
+ setFilterByFavorites = _useState30[1];
95
+ useEffect(function () {
96
+ var loadedFavorites = JSON.parse(localStorage.getItem('favorites')) || [];
97
+ setFavorites(loadedFavorites);
98
+ }, []);
99
+ useEffect(function () {
100
+ if (commuteLocation === null || commuteLocation === '') return;
101
+ function fetchEntities() {
102
+ return _fetchEntities.apply(this, arguments);
103
+ }
104
+ function _fetchEntities() {
105
+ _fetchEntities = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
106
+ var distinctEntityIds, fetchedEntities, newFilteredListings, i;
107
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
108
+ while (1) switch (_context.prev = _context.next) {
109
+ case 0:
110
+ distinctEntityIds = _toConsumableArray(new Set(allListings.map(function (listing) {
111
+ return listing.entityId;
112
+ })));
113
+ _context.prev = 1;
114
+ _context.next = 4;
115
+ return getListingEntities(distinctEntityIds, "".concat(commuteLocation.lat, ", ").concat(commuteLocation.lng));
116
+ case 4:
117
+ fetchedEntities = _context.sent;
118
+ setListingEntities(fetchedEntities);
119
+ newFilteredListings = filteredListings;
120
+ for (i = 0; i < allListings.length; i++) {
121
+ if (newFilteredListings[i].entityId != -1) {
122
+ newFilteredListings[i].fields.travelTime = fetchedEntities[newFilteredListings[i].entityId].travelTime;
123
+ }
124
+ }
125
+ for (i = 0; i < newFilteredListings.length; i++) {
126
+ if (newFilteredListings[i].entityId != -1) {
127
+ newFilteredListings[i].fields.travelTime = fetchedEntities[newFilteredListings[i].entityId].travelTime;
128
+ }
129
+ }
130
+ setFilteredListings(newFilteredListings);
131
+ _context.next = 15;
132
+ break;
133
+ case 12:
134
+ _context.prev = 12;
135
+ _context.t0 = _context["catch"](1);
136
+ console.error("Failed to fetch listing entities:", _context.t0);
137
+ case 15:
138
+ case "end":
139
+ return _context.stop();
140
+ }
141
+ }, _callee, null, [[1, 12]]);
142
+ }));
143
+ return _fetchEntities.apply(this, arguments);
144
+ }
145
+ fetchEntities();
146
+ }, [commuteLocation, allListings, siteConfig.companyId]);
147
+ useEffect(function () {
148
+ var handleFetchListings = /*#__PURE__*/function () {
149
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
150
+ var _yield$fetchListings, listingsResult, fetchedRecruiters, fetchedEntities, distinctItems;
151
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
152
+ while (1) switch (_context2.prev = _context2.next) {
153
+ case 0:
154
+ if (!getStorageObject('listings', []).length > 0) {
155
+ setLoading(true);
156
+ }
157
+ _context2.prev = 1;
158
+ _context2.next = 4;
159
+ return fetchListings(query, siteConfig);
160
+ case 4:
161
+ _yield$fetchListings = _context2.sent;
162
+ listingsResult = _yield$fetchListings.listingsResult;
163
+ fetchedRecruiters = _yield$fetchListings.fetchedRecruiters;
164
+ fetchedEntities = _yield$fetchListings.fetchedEntities;
165
+ distinctItems = _yield$fetchListings.distinctItems;
166
+ setAllListings(listingsResult);
167
+ setRecruiters(fetchedRecruiters);
168
+ setListingEntities(fetchedEntities);
169
+ setMapItems(distinctItems);
170
+ setStorageObject("mapItems", distinctItems);
171
+ setStorageObject("listingEntities", fetchedEntities);
172
+ setStorageObject("recruiters", fetchedRecruiters);
173
+ setStorageObject("listings", listingsResult);
174
+ _context2.next = 22;
175
+ break;
176
+ case 19:
177
+ _context2.prev = 19;
178
+ _context2.t0 = _context2["catch"](1);
179
+ console.log(_context2.t0);
180
+ case 22:
181
+ setLoading(false);
182
+ case 23:
183
+ case "end":
184
+ return _context2.stop();
185
+ }
186
+ }, _callee2, null, [[1, 19]]);
187
+ }));
188
+ return function handleFetchListings() {
189
+ return _ref2.apply(this, arguments);
190
+ };
191
+ }();
192
+ handleFetchListings();
193
+ }, [query, siteConfig]);
194
+ useEffect(function () {
195
+ var processListings = function processListings() {
196
+ var _applyFilters = applyFilters(allListings, selectedFilters, query, listingEntities, favorites, siteConfig),
197
+ filteredListings = _applyFilters.filteredListings,
198
+ mapItems = _applyFilters.mapItems;
199
+ if (filterByFavorites) {
200
+ filteredListings = filteredListings.filter(function (x) {
201
+ return favorites.includes(x.id);
202
+ });
203
+ }
204
+ setFilteredListings(filteredListings);
205
+ // if (firstLoad && hasFiltersInURL(location)) {
206
+ // const { filters } = filtersFromURL(location);
207
+ // setSelectedFilters(filters);
208
+ // }
209
+ if (firstLoad && selectedFilters) ; else if (Object.keys(selectedFilters).length === 0 && !firstLoad) {
210
+ localStorage.removeItem('selectedFilters');
211
+ //updateURLWithFilters(selectedFilters,location, navigate, query);
212
+ } else if (!firstLoad) {
213
+ setStorageObject('selectedFilters', selectedFilters);
214
+ //updateURLWithFilters(selectedFilters,location, navigate, query);
215
+ }
216
+ query != null ? localStorage.setItem('query', query) : localStorage.removeItem('query');
217
+ setMapItems(mapItems);
218
+ if (selectedFilters) {
219
+ var keys = Object.keys(selectedFilters);
220
+ var lastKey = keys[keys.length - 1];
221
+ var options = generateFilterOptions(firstLoad ? allListings : filteredListings, allListings, siteConfig, filterOptions, lastKey, favorites);
222
+ if (options) {
223
+ setFilterOptions(options);
224
+ if (firstLoad) setFirstLoad(false);
225
+ }
226
+ }
227
+ };
228
+ processListings();
229
+ }, [selectedFilters, query, listingEntities, filterByFavorites, favorites]);
230
+ var handleFilterListingsByLocation = function handleFilterListingsByLocation(selectedLocation) {
231
+ var _filterListingsByLoca = filterListingsByLocation(allListings, selectedLocation, listingEntities),
232
+ filteredListings = _filterListingsByLoca.filteredListings;
233
+ setFilteredListings(filteredListings);
234
+ //setMapItems(mapItems);
235
+ };
236
+ var handleSettingFavorites = function handleSettingFavorites(newFavorites) {
237
+ if (newFavorites == null) {
238
+ localStorage.removeItem('favorites');
239
+ } else {
240
+ setFavorites(newFavorites);
241
+ localStorage.setItem('favorites', JSON.stringify(newFavorites));
242
+ }
243
+ };
244
+ return /*#__PURE__*/React.createElement(MapListContext.Provider, {
245
+ value: {
246
+ loading: loading,
247
+ allListings: allListings,
248
+ filteredListings: filteredListings,
249
+ mapItems: mapItems,
250
+ query: query,
251
+ setFilteredListings: setFilteredListings,
252
+ setQuery: setQuery,
253
+ listingEntities: listingEntities,
254
+ selectedFilters: selectedFilters,
255
+ setSelectedFilters: setSelectedFilters,
256
+ filterOptions: filterOptions,
257
+ recruiters: recruiters,
258
+ handleFilterListingsByLocation: handleFilterListingsByLocation,
259
+ filterDialogIsOpen: filterDialogIsOpen,
260
+ setFilterDialogIsOpen: setFilterDialogIsOpen,
261
+ setMobileTab: setMobileTab,
262
+ mobileTab: mobileTab,
263
+ siteConfig: siteConfig,
264
+ favorites: favorites,
265
+ handleSettingFavorites: handleSettingFavorites,
266
+ setFilterByFavorites: setFilterByFavorites,
267
+ filterByFavorites: filterByFavorites,
268
+ commuteLocation: commuteLocation,
269
+ setCommuteLocation: setCommuteLocation,
270
+ navigateToDetails: navigateToDetails,
271
+ navigateToEasyApply: navigateToEasyApply,
272
+ Link: Link
273
+ }
274
+ }, children);
275
+ };
276
+
277
+ export { MapListProvider, useMapList };
278
+ //# sourceMappingURL=mapListContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapListContext.js","sources":["../../src/contexts/mapListContext.js"],"sourcesContent":["import React, { createContext, useState, useEffect, useContext } from 'react';\n\nimport { generateFilterOptions, applyFilters, filterListingsByLocation } from '~/util/filterUtil';\nimport { getStorageObject, setStorageObject } from '~/util/localStorageUtil';\n\nimport { getListingEntities } from \"~/services/listingEntityService\";\nimport fetchListings from '~/services/listingAggregatorService';\n\nconst MapListContext = createContext();\n\nexport const useMapList = () => useContext(MapListContext);\n\nconst getQuery = () => {\n\tlet query;\n\t//if (!hasQueryInUrl(location)) {\n\tquery = typeof window !== 'undefined' ? localStorage.getItem('query') : '';\n\t// }\n\t//else {\n\t// \tquery = filtersFromURL(location).query;\n\t// }\n\treturn query;\n};\n\nexport const MapListProvider = ({\n\tchildren,\n\tsiteConfig,\n\tresetFilters,\n\tnavigateToDetails,\n\tnavigateToEasyApply,\n\tLink\n}) => {\n\t// const location = useLocation();\n\t// const navigate = useNavigate();\n\tconst [allListings, setAllListings] = useState(getStorageObject(\"listings\", []));\n\tconst [filteredListings, setFilteredListings] = useState([]);\n\tconst [loading, setLoading] = useState(false);\n\tconst [mapItems, setMapItems] = useState(getStorageObject('mapItems', []));\n\tconst [query, setQuery] = useState(() => resetFilters ? null : getQuery());\n\tconst [listingEntities, setListingEntities] = useState(getStorageObject(\"listingEntities\", null));\n\tconst [firstLoad, setFirstLoad] = useState(true);\n\tconst [commuteLocation, setCommuteLocation] = useState(null);\n\tconst [selectedFilters, setSelectedFilters] = useState(() => resetFilters ? {} : getStorageObject('selectedFilters', {}));//hasFiltersInURL(location) ? filtersFromURL(location).filters : getStorageObject('selectedFilters', {}));\n\tconst [filterOptions, setFilterOptions] = useState();\n\tconst [recruiters, setRecruiters] = useState(getStorageObject(\"recruiters\", {}));\n\tconst [filterDialogIsOpen, setFilterDialogIsOpen] = useState(false);\n\tconst [mobileTab, setMobileTab] = useState(\"listTab\");\n\tconst [favorites, setFavorites] = useState([]);\n\tconst [filterByFavorites, setFilterByFavorites] = useState(false);\n\n\tuseEffect(() => {\n\t\tconst loadedFavorites = JSON.parse(localStorage.getItem('favorites')) || [];\n\t\tsetFavorites(loadedFavorites);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (commuteLocation === null || commuteLocation === '') return;\n\t\tasync function fetchEntities() {\n\t\t\tconst distinctEntityIds = [\n\t\t\t\t...new Set(allListings.map(listing => listing.entityId))\n\t\t\t];\n\t\t\ttry {\n\t\t\t\tconst fetchedEntities = await getListingEntities(\n\t\t\t\t\tdistinctEntityIds,\n\t\t\t\t\t`${commuteLocation.lat}, ${commuteLocation.lng}`\n\t\t\t\t);\n\t\t\t\tsetListingEntities(fetchedEntities);\n\t\t\t\tvar newFilteredListings = filteredListings;\n\t\t\t\tfor (var i = 0; i < allListings.length; i++) {\n\t\t\t\t\tif (newFilteredListings[i].entityId != -1) {\n\t\t\t\t\t\tnewFilteredListings[i].fields.travelTime = fetchedEntities[newFilteredListings[i].entityId].travelTime;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (var i = 0; i < newFilteredListings.length; i++) {\n\t\t\t\t\tif (newFilteredListings[i].entityId != -1) {\n\t\t\t\t\t\tnewFilteredListings[i].fields.travelTime = fetchedEntities[newFilteredListings[i].entityId].travelTime;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsetFilteredListings(newFilteredListings);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"Failed to fetch listing entities:\", error);\n\t\t\t}\n\t\t}\n\n\t\tfetchEntities();\n\t}, [commuteLocation, allListings, siteConfig.companyId]);\n\n\tuseEffect(() => {\n\t\tconst handleFetchListings = async () => {\n\t\t\tif (!getStorageObject('listings', []).length > 0) {\n\t\t\t\tsetLoading(true);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst {\n\t\t\t\t\tlistingsResult,\n\t\t\t\t\tfetchedRecruiters,\n\t\t\t\t\tfetchedEntities,\n\t\t\t\t\tdistinctItems\n\t\t\t\t} = await fetchListings(query, siteConfig);\n\t\t\t\tsetAllListings(listingsResult);\n\t\t\t\tsetRecruiters(fetchedRecruiters);\n\t\t\t\tsetListingEntities(fetchedEntities);\n\t\t\t\tsetMapItems(distinctItems);\n\t\t\t\tsetStorageObject(\"mapItems\", distinctItems);\n\t\t\t\tsetStorageObject(\"listingEntities\", fetchedEntities);\n\t\t\t\tsetStorageObject(\"recruiters\", fetchedRecruiters);\n\t\t\t\tsetStorageObject(\"listings\", listingsResult);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.log(error);\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t};\n\t\thandleFetchListings();\n\t}, [query, siteConfig]);\n\n\tuseEffect(() => {\n\t\tconst processListings = () => {\n\t\t\tlet { filteredListings, mapItems } = applyFilters(\n\t\t\t\tallListings,\n\t\t\t\tselectedFilters,\n\t\t\t\tquery,\n\t\t\t\tlistingEntities,\n\t\t\t\tfavorites,\n\t\t\t\tsiteConfig\n\t\t\t);\n\t\t\tif (filterByFavorites) {\n\t\t\t\tfilteredListings = filteredListings.filter(x => favorites.includes(x.id));\n\t\t\t}\n\t\t\tsetFilteredListings(filteredListings);\n\t\t\t// if (firstLoad && hasFiltersInURL(location)) {\n\t\t\t// \tconst { filters } = filtersFromURL(location);\n\t\t\t// \tsetSelectedFilters(filters);\n\t\t\t// }\n\t\t\tif (firstLoad && selectedFilters) {\n\t\t\t\t//updateURLWithFilters(selectedFilters,location, navigate, query);\n\t\t\t} else if (Object.keys(selectedFilters).length === 0 && !firstLoad) {\n\t\t\t\tlocalStorage.removeItem('selectedFilters');\n\t\t\t\t//updateURLWithFilters(selectedFilters,location, navigate, query);\n\t\t\t} else if (!firstLoad) {\n\t\t\t\tsetStorageObject('selectedFilters', selectedFilters);\n\t\t\t\t//updateURLWithFilters(selectedFilters,location, navigate, query);\n\t\t\t}\n\t\t\tquery != null ? localStorage.setItem('query', query) : localStorage.removeItem('query');\n\t\t\tsetMapItems(mapItems);\n\n\t\t\tif (selectedFilters) {\n\t\t\t\tconst keys = Object.keys(selectedFilters);\n\t\t\t\tconst lastKey = keys[keys.length - 1];\n\t\t\t\tconst options = generateFilterOptions(\n\t\t\t\t\tfirstLoad ? allListings : filteredListings,\n\t\t\t\t\tallListings,\n\t\t\t\t\tsiteConfig,\n\t\t\t\t\tfilterOptions,\n\t\t\t\t\tlastKey,\n\t\t\t\t\tfavorites\n\t\t\t\t);\n\t\t\t\tif (options) {\n\t\t\t\t\tsetFilterOptions(options);\n\t\t\t\t\tif (firstLoad) setFirstLoad(false);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tprocessListings();\n\t}, [selectedFilters, query, listingEntities, filterByFavorites, favorites]);\n\n\tconst handleFilterListingsByLocation = selectedLocation => {\n\t\tconst { filteredListings, mapItems } = filterListingsByLocation(\n\t\t\tallListings,\n\t\t\tselectedLocation,\n\t\t\tlistingEntities,\n\t\t);\n\t\tsetFilteredListings(filteredListings);\n\t\t//setMapItems(mapItems);\n\t};\n\n\tconst handleSettingFavorites = newFavorites => {\n\t\tif (newFavorites == null) {\n\t\t\tlocalStorage.removeItem('favorites');\n\t\t} else {\n\t\t\tsetFavorites(newFavorites);\n\t\t\tlocalStorage.setItem('favorites', JSON.stringify(newFavorites));\n\t\t}\n\t};\n\n\treturn (\n\t\t<MapListContext.Provider value={{\n\t\t\tloading,\n\t\t\tallListings,\n\t\t\tfilteredListings,\n\t\t\tmapItems,\n\t\t\tquery,\n\t\t\tsetFilteredListings,\n\t\t\tsetQuery,\n\t\t\tlistingEntities,\n\t\t\tselectedFilters,\n\t\t\tsetSelectedFilters,\n\t\t\tfilterOptions,\n\t\t\trecruiters,\n\t\t\thandleFilterListingsByLocation,\n\t\t\tfilterDialogIsOpen,\n\t\t\tsetFilterDialogIsOpen,\n\t\t\tsetMobileTab,\n\t\t\tmobileTab,\n\t\t\tsiteConfig,\n\t\t\tfavorites,\n\t\t\thandleSettingFavorites,\n\t\t\tsetFilterByFavorites,\n\t\t\tfilterByFavorites,\n\t\t\tcommuteLocation,\n\t\t\tsetCommuteLocation,\n\t\t\tnavigateToDetails,\n\t\t\tnavigateToEasyApply,\n\t\t\tLink\n\t\t}}>\n\t\t\t{children}\n\t\t</MapListContext.Provider>\n\t);\n};\n"],"names":["MapListContext","createContext","useMapList","useContext","getQuery","query","window","localStorage","getItem","MapListProvider","_ref","children","siteConfig","resetFilters","navigateToDetails","navigateToEasyApply","Link","_useState","useState","getStorageObject","_useState2","_slicedToArray","allListings","setAllListings","_useState3","_useState4","filteredListings","setFilteredListings","_useState5","_useState6","loading","setLoading","_useState7","_useState8","mapItems","setMapItems","_useState9","_useState10","setQuery","_useState11","_useState12","listingEntities","setListingEntities","_useState13","_useState14","firstLoad","setFirstLoad","_useState15","_useState16","commuteLocation","setCommuteLocation","_useState17","_useState18","selectedFilters","setSelectedFilters","_useState19","_useState20","filterOptions","setFilterOptions","_useState21","_useState22","recruiters","setRecruiters","_useState23","_useState24","filterDialogIsOpen","setFilterDialogIsOpen","_useState25","_useState26","mobileTab","setMobileTab","_useState27","_useState28","favorites","setFavorites","_useState29","_useState30","filterByFavorites","setFilterByFavorites","useEffect","loadedFavorites","JSON","parse","fetchEntities","_fetchEntities","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","distinctEntityIds","fetchedEntities","newFilteredListings","i","wrap","_callee$","_context","prev","next","_toConsumableArray","Set","map","listing","entityId","getListingEntities","concat","lat","lng","sent","length","fields","travelTime","t0","console","error","stop","companyId","handleFetchListings","_ref2","_callee2","_yield$fetchListings","listingsResult","fetchedRecruiters","distinctItems","_callee2$","_context2","fetchListings","setStorageObject","log","processListings","_applyFilters","applyFilters","filter","x","includes","id","Object","keys","removeItem","setItem","lastKey","options","generateFilterOptions","handleFilterListingsByLocation","selectedLocation","_filterListingsByLoca","filterListingsByLocation","handleSettingFavorites","newFavorites","stringify","React","createElement","Provider","value"],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime, createForOfIteratorHelper as _createForOfIteratorHelper } from '../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React, { useState, useEffect, createContext, useContext } from 'react';
3
+ import { markerIconProps } from '../util/mapIconUtil.js';
4
+ import { useMap } from './mapContext.js';
5
+ import { searchNearbyPlaces } from '../services/googlePlacesNearbyService.js';
6
+
7
+ var PlacesContext = /*#__PURE__*/createContext();
8
+ var usePlaces = function usePlaces() {
9
+ return useContext(PlacesContext);
10
+ };
11
+ var PlacesProvider = function PlacesProvider(_ref) {
12
+ var children = _ref.children,
13
+ placeMappings = _ref.placeMappings,
14
+ markerColors = _ref.markerColors;
15
+ var _useMap = useMap(),
16
+ selectedPlaces = _useMap.selectedPlaces,
17
+ zoom = _useMap.zoom,
18
+ center = _useMap.center;
19
+ var _useState = useState({
20
+ markers: [],
21
+ icon: null
22
+ }),
23
+ _useState2 = _slicedToArray(_useState, 2),
24
+ poiMarkers = _useState2[0],
25
+ setPoiMarkers = _useState2[1];
26
+ var _useState3 = useState(center),
27
+ _useState4 = _slicedToArray(_useState3, 2),
28
+ currentCenter = _useState4[0],
29
+ setCurrentCenter = _useState4[1];
30
+ var _useState5 = useState(zoom),
31
+ _useState6 = _slicedToArray(_useState5, 2),
32
+ currentZoom = _useState6[0],
33
+ setCurrentZoom = _useState6[1];
34
+ var _useState7 = useState(false),
35
+ _useState8 = _slicedToArray(_useState7, 2),
36
+ placesWindow = _useState8[0],
37
+ setPlacesWindow = _useState8[1];
38
+ var _useState9 = useState(null),
39
+ _useState10 = _slicedToArray(_useState9, 2),
40
+ selectedPlaceMarker = _useState10[0],
41
+ setSelectedPlaceMarker = _useState10[1];
42
+ var getRadiusForZoom = function getRadiusForZoom() {
43
+ if (currentZoom >= 18) return 1000;
44
+ if (currentZoom <= 10) return 0;
45
+ var tempZoom = Math.pow(19 - currentZoom, 4.85);
46
+ var radius = tempZoom;
47
+ var minRadius = 1500;
48
+ var maxRadius = 800000;
49
+ if (radius < minRadius) radius = minRadius;else if (radius > maxRadius) radius = maxRadius;
50
+ return radius;
51
+ };
52
+ useEffect(function () {
53
+ if (!selectedPlaces || !selectedPlaces.length > 0 || !center || currentZoom < 12) {
54
+ setPoiMarkers({
55
+ markers: [],
56
+ icon: null
57
+ });
58
+ return;
59
+ }
60
+ var fetchPlaces = /*#__PURE__*/function () {
61
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
62
+ var poiTypes, selectedPOICategories, radius, location, response, newMarkers;
63
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
64
+ while (1) switch (_context.prev = _context.next) {
65
+ case 0:
66
+ poiTypes = [];
67
+ selectedPOICategories = selectedPlaces;
68
+ selectedPOICategories.forEach(function (pointOfInterest) {
69
+ poiTypes = poiTypes.concat(placeMappings[pointOfInterest]);
70
+ });
71
+ radius = getRadiusForZoom();
72
+ location = {
73
+ latitude: currentCenter.lat,
74
+ longitude: currentCenter.lng
75
+ };
76
+ _context.prev = 5;
77
+ _context.next = 8;
78
+ return searchNearbyPlaces(poiTypes, location, radius);
79
+ case 8:
80
+ response = _context.sent;
81
+ newMarkers = response.places.map(function (place) {
82
+ var getParentCategory = function getParentCategory(types) {
83
+ var selectedTypes = selectedPOICategories.reduce(function (acc, category) {
84
+ return acc.concat(placeMappings[category]);
85
+ }, []);
86
+ var _iterator = _createForOfIteratorHelper(types),
87
+ _step;
88
+ try {
89
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
90
+ var type = _step.value;
91
+ if (!selectedTypes.includes(type)) continue;
92
+ for (var category in placeMappings) {
93
+ if (placeMappings[category].includes(type)) {
94
+ return category;
95
+ }
96
+ }
97
+ }
98
+ } catch (err) {
99
+ _iterator.e(err);
100
+ } finally {
101
+ _iterator.f();
102
+ }
103
+ };
104
+ var icon = markerIconProps(markerColors.placeMarkers, getParentCategory(place.types));
105
+ return {
106
+ position: {
107
+ lat: place.location.latitude,
108
+ lng: place.location.longitude
109
+ },
110
+ title: place.displayName.text,
111
+ icon: icon
112
+ };
113
+ });
114
+ setPoiMarkers({
115
+ markers: newMarkers,
116
+ icon: null
117
+ });
118
+ _context.next = 16;
119
+ break;
120
+ case 13:
121
+ _context.prev = 13;
122
+ _context.t0 = _context["catch"](5);
123
+ console.error('Failed to fetch places:', _context.t0);
124
+ case 16:
125
+ case "end":
126
+ return _context.stop();
127
+ }
128
+ }, _callee, null, [[5, 13]]);
129
+ }));
130
+ return function fetchPlaces() {
131
+ return _ref2.apply(this, arguments);
132
+ };
133
+ }();
134
+ fetchPlaces();
135
+ }, [selectedPlaces, currentZoom, currentCenter]);
136
+ return /*#__PURE__*/React.createElement(PlacesContext.Provider, {
137
+ value: {
138
+ poiMarkers: poiMarkers,
139
+ setCurrentCenter: setCurrentCenter,
140
+ currentCenter: currentCenter,
141
+ setCurrentZoom: setCurrentZoom,
142
+ currentZoom: currentZoom,
143
+ placesWindow: placesWindow,
144
+ setPlacesWindow: setPlacesWindow,
145
+ selectedPlaceMarker: selectedPlaceMarker,
146
+ setSelectedPlaceMarker: setSelectedPlaceMarker
147
+ }
148
+ }, children);
149
+ };
150
+
151
+ export { PlacesProvider, usePlaces };
152
+ //# sourceMappingURL=placesContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placesContext.js","sources":["../../src/contexts/placesContext.js"],"sourcesContent":["import React, { createContext, useContext, useEffect, useState } from 'react';\n\nimport { markerIconProps } from '~/util/mapIconUtil';\n\nimport { useMap } from '~/contexts/mapContext';\n\nimport { searchNearbyPlaces } from '~/services/googlePlacesNearbyService';\n\nconst PlacesContext = createContext();\n\nexport const usePlaces = () => useContext(PlacesContext);\n\nexport const PlacesProvider = ({ children, placeMappings, markerColors }) => {\n\tconst { selectedPlaces, zoom, center } = useMap();\n\tconst [poiMarkers, setPoiMarkers] = useState({ markers: [], icon: null });\n\tconst [currentCenter, setCurrentCenter] = useState(center);\n\tconst [currentZoom, setCurrentZoom] = useState(zoom);\n\tconst [placesWindow, setPlacesWindow] = useState(false);\n\tconst [selectedPlaceMarker, setSelectedPlaceMarker] = useState(null);\n\n\tconst getRadiusForZoom = () => {\n\t\tif (currentZoom >= 18) return 1000;\n\t\tif (currentZoom <= 10) return 0;\n\n\t\tlet tempZoom = Math.pow(19 - currentZoom, 4.85);\n\t\tlet radius = tempZoom;\n\t\tlet minRadius = 1500;\n\t\tlet maxRadius = 800000;\n\n\t\tif (radius < minRadius) radius = minRadius;\n\t\telse if (radius > maxRadius) radius = maxRadius;\n\n\t\treturn radius;\n\t};\n\n\tuseEffect(() => {\n\t\tif (!selectedPlaces || (!selectedPlaces.length > 0) || !center || currentZoom < 12) {\n\t\t\tsetPoiMarkers({ markers: [], icon: null });\n\t\t\treturn;\n\t\t}\n\t\tconst fetchPlaces = async () => {\n\t\t\tlet poiTypes = [];\n\t\t\tconst selectedPOICategories = selectedPlaces;\n\t\t\tselectedPOICategories.forEach(pointOfInterest => {\n\t\t\t\tpoiTypes = poiTypes.concat(placeMappings[pointOfInterest]);\n\t\t\t});\n\n\t\t\tconst radius = getRadiusForZoom();\n\t\t\tconst location = { latitude: currentCenter.lat, longitude: currentCenter.lng };\n\n\t\t\ttry {\n\t\t\t\tconst response = await searchNearbyPlaces(poiTypes, location, radius);\n\t\t\t\tconst newMarkers = response.places.map(place => {\n\t\t\t\t\tconst getParentCategory = types => {\n\t\t\t\t\t\tconst selectedTypes = selectedPOICategories.reduce((acc, category) => {\n\t\t\t\t\t\t\treturn acc.concat(placeMappings[category]);\n\t\t\t\t\t\t}, []);\n\n\t\t\t\t\t\tfor (const type of types) {\n\t\t\t\t\t\t\tif (!selectedTypes.includes(type)) continue;\n\t\t\t\t\t\t\tfor (const category in placeMappings) {\n\t\t\t\t\t\t\t\tif (placeMappings[category].includes(type)) {\n\t\t\t\t\t\t\t\t\treturn category;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tconst icon = markerIconProps(markerColors.placeMarkers, getParentCategory(place.types));\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tposition: { lat: place.location.latitude, lng: place.location.longitude },\n\t\t\t\t\t\ttitle: place.displayName.text,\n\t\t\t\t\t\ticon: icon\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\tsetPoiMarkers({ markers: newMarkers, icon: null });\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Failed to fetch places:', error);\n\t\t\t}\n\t\t};\n\n\t\tfetchPlaces();\n\t}, [selectedPlaces, currentZoom, currentCenter]);\n\n\treturn (\n\t\t<PlacesContext.Provider value={{\n\t\t\tpoiMarkers,\n\t\t\tsetCurrentCenter,\n\t\t\tcurrentCenter,\n\t\t\tsetCurrentZoom,\n\t\t\tcurrentZoom,\n\t\t\tplacesWindow,\n\t\t\tsetPlacesWindow,\n\t\t\tselectedPlaceMarker,\n\t\t\tsetSelectedPlaceMarker\n\t\t}}>\n\t\t\t{children}\n\t\t</PlacesContext.Provider>\n\t);\n};\n"],"names":["PlacesContext","createContext","usePlaces","useContext","PlacesProvider","_ref","children","placeMappings","markerColors","_useMap","useMap","selectedPlaces","zoom","center","_useState","useState","markers","icon","_useState2","_slicedToArray","poiMarkers","setPoiMarkers","_useState3","_useState4","currentCenter","setCurrentCenter","_useState5","_useState6","currentZoom","setCurrentZoom","_useState7","_useState8","placesWindow","setPlacesWindow","_useState9","_useState10","selectedPlaceMarker","setSelectedPlaceMarker","getRadiusForZoom","tempZoom","Math","pow","radius","minRadius","maxRadius","useEffect","length","fetchPlaces","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","poiTypes","selectedPOICategories","location","response","newMarkers","wrap","_callee$","_context","prev","next","forEach","pointOfInterest","concat","latitude","lat","longitude","lng","searchNearbyPlaces","sent","places","map","place","getParentCategory","types","selectedTypes","reduce","acc","category","_iterator","_createForOfIteratorHelper","_step","s","n","done","type","value","includes","err","e","f","markerIconProps","placeMarkers","position","title","displayName","text","t0","console","error","stop","apply","arguments","React","createElement","Provider"],"mappings":"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"}