@abcagency/hc-ui-components 1.3.14 → 1.3.16

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 (166) hide show
  1. package/dist/_virtual/_rollupPluginBabelHelpers.js +1 -1
  2. package/dist/apis/hcApi.js +1 -1
  3. package/dist/apis/hcApi.js.map +1 -1
  4. package/dist/clientToken.js.map +1 -1
  5. package/dist/components/HireControlMap.js +15 -5
  6. package/dist/components/HireControlMap.js.map +1 -1
  7. package/dist/components/modules/accordions/MapAccordionItem.js +11 -1
  8. package/dist/components/modules/accordions/MapAccordionItem.js.map +1 -1
  9. package/dist/components/modules/accordions/default.js.map +1 -1
  10. package/dist/components/modules/accordions/filterItem.js +2 -1
  11. package/dist/components/modules/accordions/filterItem.js.map +1 -1
  12. package/dist/components/modules/accordions/filters.js +0 -3
  13. package/dist/components/modules/accordions/filters.js.map +1 -1
  14. package/dist/components/modules/buttons/button-group-apply.js +36 -15
  15. package/dist/components/modules/buttons/button-group-apply.js.map +1 -1
  16. package/dist/components/modules/buttons/commute-pill.js.map +1 -1
  17. package/dist/components/modules/buttons/default.js.map +1 -1
  18. package/dist/components/modules/buttons/items-pill.js.map +1 -1
  19. package/dist/components/modules/buttons/pill-wrapper.js.map +1 -1
  20. package/dist/components/modules/buttons/show-all-button.js.map +1 -1
  21. package/dist/components/modules/cards/default.js.map +1 -1
  22. package/dist/components/modules/cards/filter.js.map +1 -1
  23. package/dist/components/modules/dialogs/apply-dialog.js.map +1 -1
  24. package/dist/components/modules/filter/commute.js +22 -6
  25. package/dist/components/modules/filter/commute.js.map +1 -1
  26. package/dist/components/modules/filter/index.js +7 -0
  27. package/dist/components/modules/filter/index.js.map +1 -1
  28. package/dist/components/modules/filter/item.js +16 -1
  29. package/dist/components/modules/filter/item.js.map +1 -1
  30. package/dist/components/modules/filter/location.js +1 -1
  31. package/dist/components/modules/filter/location.js.map +1 -1
  32. package/dist/components/modules/filter/points-of-interest.js.map +1 -1
  33. package/dist/components/modules/filter/radio-item.js +7 -0
  34. package/dist/components/modules/filter/radio-item.js.map +1 -1
  35. package/dist/components/modules/filter/search.js.map +1 -1
  36. package/dist/components/modules/filter/sort.js.map +1 -1
  37. package/dist/components/modules/grid.js.map +1 -1
  38. package/dist/components/modules/icon.js.map +1 -1
  39. package/dist/components/modules/jobListing/listing-details.js +6 -0
  40. package/dist/components/modules/jobListing/listing-details.js.map +1 -1
  41. package/dist/components/modules/maps/info-window-card.js.map +1 -1
  42. package/dist/components/modules/maps/info-window-content.js +20 -0
  43. package/dist/components/modules/maps/info-window-content.js.map +1 -1
  44. package/dist/components/modules/maps/list/field-mapper.js.map +1 -1
  45. package/dist/components/modules/maps/list/header-item.js.map +1 -1
  46. package/dist/components/modules/maps/list/header.js.map +1 -1
  47. package/dist/components/modules/maps/list/index.js +21 -12
  48. package/dist/components/modules/maps/list/index.js.map +1 -1
  49. package/dist/components/modules/maps/list/item-expand-card/index.js.map +1 -1
  50. package/dist/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js.map +1 -1
  51. package/dist/components/modules/maps/list/item-expand-card/recruiter-details.js.map +1 -1
  52. package/dist/components/modules/maps/list/item-expand-card/recruiter-headshot.js.map +1 -1
  53. package/dist/components/modules/maps/list/list-item/index.js +12 -2
  54. package/dist/components/modules/maps/list/list-item/index.js.map +1 -1
  55. package/dist/components/modules/maps/map-list.js.map +1 -1
  56. package/dist/components/modules/maps/map-marker.js +10 -0
  57. package/dist/components/modules/maps/map-marker.js.map +1 -1
  58. package/dist/components/modules/maps/map.js.map +1 -1
  59. package/dist/components/modules/maps/place-marker.js.map +1 -1
  60. package/dist/components/modules/maps/tabs.js.map +1 -1
  61. package/dist/constants/eventTypes.js +16 -0
  62. package/dist/constants/eventTypes.js.map +1 -0
  63. package/dist/constants/placeTypes.js.map +1 -1
  64. package/dist/contexts/mapContext.js +9 -27
  65. package/dist/contexts/mapContext.js.map +1 -1
  66. package/dist/contexts/mapListContext.js +57 -38
  67. package/dist/contexts/mapListContext.js.map +1 -1
  68. package/dist/contexts/placesContext.js.map +1 -1
  69. package/dist/contexts/trackEventContext.js +20 -0
  70. package/dist/contexts/trackEventContext.js.map +1 -0
  71. package/dist/hooks/useList.js +1 -13
  72. package/dist/hooks/useList.js.map +1 -1
  73. package/dist/services/apis/hcApi.js +1 -1
  74. package/dist/services/apis/hcApi.js.map +1 -1
  75. package/dist/services/clientToken.js.map +1 -1
  76. package/dist/services/configService.js.map +1 -1
  77. package/dist/services/googlePlacesNearbyService.js.map +1 -1
  78. package/dist/services/listingAggregatorService.js +43 -16
  79. package/dist/services/listingAggregatorService.js.map +1 -1
  80. package/dist/services/listingEntityService.js.map +1 -1
  81. package/dist/services/listingService.js.map +1 -1
  82. package/dist/services/recruiterService.js.map +1 -1
  83. package/dist/util/filterUtil.js.map +1 -1
  84. package/dist/util/loading.js.map +1 -1
  85. package/dist/util/localStorageUtil.js.map +1 -1
  86. package/dist/util/mapIconUtil.js.map +1 -1
  87. package/dist/util/mapUtil.js.map +1 -1
  88. package/dist/util/sortUtil.js.map +1 -1
  89. package/dist/util/stringUtils.js.map +1 -1
  90. package/jsconfig.json +7 -7
  91. package/package.json +60 -60
  92. package/postcss.config.js +13 -13
  93. package/preset.default.js +15 -15
  94. package/rollup.config.mjs +88 -87
  95. package/src/apis/hcApi.js +93 -93
  96. package/src/clientToken.js +9 -9
  97. package/src/components/HireControlMap.js +129 -124
  98. package/src/components/modules/accordions/MapAccordionItem.js +74 -72
  99. package/src/components/modules/accordions/default.js +171 -171
  100. package/src/components/modules/accordions/filterItem.js +55 -53
  101. package/src/components/modules/accordions/filters.js +47 -47
  102. package/src/components/modules/buttons/button-group-apply.js +123 -116
  103. package/src/components/modules/buttons/commute-pill.js +22 -22
  104. package/src/components/modules/buttons/default.js +194 -194
  105. package/src/components/modules/buttons/items-pill.js +35 -35
  106. package/src/components/modules/buttons/pill-wrapper.js +27 -27
  107. package/src/components/modules/buttons/show-all-button.js +20 -20
  108. package/src/components/modules/cards/default.js +167 -167
  109. package/src/components/modules/cards/filter.js +56 -56
  110. package/src/components/modules/dialogs/apply-dialog.js +48 -48
  111. package/src/components/modules/filter/commute.js +154 -149
  112. package/src/components/modules/filter/index.js +89 -87
  113. package/src/components/modules/filter/item.js +87 -76
  114. package/src/components/modules/filter/location.js +71 -71
  115. package/src/components/modules/filter/points-of-interest.js +44 -44
  116. package/src/components/modules/filter/radio-item.js +57 -53
  117. package/src/components/modules/filter/search.js +92 -92
  118. package/src/components/modules/filter/sort.js +83 -83
  119. package/src/components/modules/grid.js +54 -54
  120. package/src/components/modules/icon.js +33 -33
  121. package/src/components/modules/jobListing/listing-details.js +99 -95
  122. package/src/components/modules/maps/info-window-card.js +17 -17
  123. package/src/components/modules/maps/info-window-content.js +81 -74
  124. package/src/components/modules/maps/list/field-mapper.js +112 -112
  125. package/src/components/modules/maps/list/header-item.js +91 -91
  126. package/src/components/modules/maps/list/header.js +47 -47
  127. package/src/components/modules/maps/list/index.js +112 -107
  128. package/src/components/modules/maps/list/item-expand-card/index.js +22 -22
  129. package/src/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js +50 -50
  130. package/src/components/modules/maps/list/item-expand-card/recruiter-details.js +68 -68
  131. package/src/components/modules/maps/list/item-expand-card/recruiter-headshot.js +22 -22
  132. package/src/components/modules/maps/list/list-item/index.js +135 -133
  133. package/src/components/modules/maps/map-list.js +74 -74
  134. package/src/components/modules/maps/map-marker.js +88 -86
  135. package/src/components/modules/maps/map.js +230 -230
  136. package/src/components/modules/maps/place-marker.js +41 -41
  137. package/src/components/modules/maps/tabs.js +81 -81
  138. package/src/constants/eventTypes.js +13 -0
  139. package/src/constants/placeTypes.js +8 -8
  140. package/src/contexts/mapContext.js +101 -115
  141. package/src/contexts/mapListContext.js +242 -222
  142. package/src/contexts/placesContext.js +102 -102
  143. package/src/contexts/trackEventContext.js +14 -0
  144. package/src/hooks/useList.js +89 -100
  145. package/src/index.js +3 -3
  146. package/src/services/configService.js +16 -16
  147. package/src/services/googlePlacesNearbyService.js +33 -33
  148. package/src/services/listingAggregatorService.js +50 -45
  149. package/src/services/listingEntityService.js +15 -15
  150. package/src/services/listingService.js +26 -26
  151. package/src/services/recruiterService.js +17 -17
  152. package/src/styles/index.css +23 -23
  153. package/src/util/arrayUtil.js +3 -3
  154. package/src/util/fieldMapper.js +22 -22
  155. package/src/util/filterUtil.js +195 -195
  156. package/src/util/loading.js +17 -17
  157. package/src/util/localStorageUtil.js +26 -26
  158. package/src/util/mapIconUtil.js +180 -180
  159. package/src/util/mapUtil.js +91 -91
  160. package/src/util/sortUtil.js +32 -32
  161. package/src/util/stringUtils.js +6 -6
  162. package/src/util/urlFilterUtil.js +90 -90
  163. package/tailwind.config.js +126 -126
  164. package/.editorconfig +0 -12
  165. package/.eslintrc +0 -105
  166. package/.prettierignore +0 -3
@@ -1,124 +1,129 @@
1
- import React, { useEffect, useState } from 'react';
2
- import { useLoadScript } from '@react-google-maps/api';
3
-
4
- import Grid from '~/components/modules/grid';
5
- import Filter from '~/components/modules/filter';
6
- import MapList from '~/components/modules/maps/map-list';
7
-
8
- import { MapProvider } from '~/contexts/mapContext';
9
- import { PlacesProvider } from '~/contexts/placesContext';
10
- import { MapListProvider } from '~/contexts/mapListContext';
11
-
12
- import { getMapConfig } from '~/services/configService';
13
- import { setClientAuthKey } from '~/clientToken.js';
14
-
15
- import '../styles/index.css';
16
-
17
- const libraries = ['places'];
18
-
19
- export const HireControlMap = ({
20
- clientToken,
21
- navigateToDetails = null,
22
- navigateToEasyApply = null,
23
- Link = null,
24
- linkFormat = '/jobs/[slug]'
25
- }) => {
26
- const [siteConfig, setSiteconfig] = useState(null);
27
-
28
- useEffect(() => {
29
- setClientAuthKey(clientToken);
30
- const fetchSiteConfig = async () => {
31
- try {
32
- const configData = await getMapConfig(clientToken);
33
- setSiteconfig(configData);
34
- } catch (error) {
35
- console.error('Failed to fetch site configuration:', error);
36
- }
37
- };
38
-
39
- fetchSiteConfig();
40
- }, [clientToken]);
41
-
42
- const { isLoaded } = useLoadScript({
43
- googleMapsApiKey: process.env.GOOGLE_MAPS_API_KEY,
44
- version: 'quarterly',
45
- libraries: libraries
46
- });
47
-
48
- return (
49
- <div>
50
- {isLoaded && siteConfig && (
51
- <HomeBody
52
- siteConfig={siteConfig}
53
- navigateToDetails={navigateToDetails}
54
- navigateToEasyApply={navigateToEasyApply}
55
- Link={Link}
56
- linkFormat={linkFormat}
57
- />
58
- )}
59
- </div>
60
- );
61
- };
62
-
63
- const HomeBody = ({ siteConfig, navigateToDetails, navigateToEasyApply, Link, linkFormat }) => {
64
- const resetFilters = false;
65
-
66
- return (
67
- <MapListProvider
68
- siteConfig={siteConfig}
69
- resetFilters={resetFilters}
70
- avigateToDetails={navigateToDetails}
71
- navigateToEasyApply={navigateToEasyApply}
72
- Link={Link}
73
- linkFormat={linkFormat}
74
- >
75
- <MapProvider resetFilters={resetFilters}>
76
- <PlacesProvider
77
- placeMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}
78
- markerColors={{
79
- fillColor: siteConfig.colors.primary,
80
- strokeColor: siteConfig.colors.primaryDark,
81
- selectedFillColor: siteConfig.colors.secondary,
82
- selectedStrokeColor: siteConfig.colors.secondaryDark,
83
- placeMarkers: {
84
- colors: siteConfig.pointsOfInterestConfig.placeMarkerColors,
85
- size: siteConfig.pointsOfInterestConfig.placeMarkerSize
86
- }
87
- }}
88
- >
89
- <Grid
90
- as='section'
91
- id='job-search-interface'
92
- columns='md:hc-grid-cols-[1fr_2.5fr] lg:hc-grid-cols-[1fr_3.5fr]'
93
- gap='hc-gap-0'
94
- autoRows={false}
95
- className='hc-items-stretch hc-h-screen hc-min-h-[30rem] hc-divide-x hc-divide-uiAccent/20'
96
- >
97
- <Grid.Item className='hc-bg-gray-100'>
98
- <Filter showMap={siteConfig.showMap} className='hc-hidden md:hc-block' />
99
- </Grid.Item>
100
- <MapList
101
- markerConfigs={{
102
- fillColor: siteConfig.colors.primary,
103
- strokeColor: siteConfig.colors.primaryDark,
104
- selectedFillColor: siteConfig.colors.secondary,
105
- selectedStrokeColor: siteConfig.colors.secondaryDark,
106
- placeMarkers: {
107
- colors: siteConfig.pointsOfInterestConfig.placeMarkerColors,
108
- size: siteConfig.pointsOfInterestConfig.placeMarkerSize
109
- }
110
- }}
111
- showMap={siteConfig.showMap}
112
- fieldsShown={siteConfig.fieldsShown}
113
- specialFeatures={siteConfig.specialFeatures}
114
- fieldNames={siteConfig.fieldNames}
115
- placeMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}
116
- />
117
- </Grid>
118
- </PlacesProvider>
119
- </MapProvider>
120
- </MapListProvider>
121
- );
122
- };
123
-
124
- export default HireControlMap;
1
+ import React, { useEffect, useState } from 'react';
2
+ import { useLoadScript } from '@react-google-maps/api';
3
+
4
+ import Grid from '~/components/modules/grid';
5
+ import Filter from '~/components/modules/filter';
6
+ import MapList from '~/components/modules/maps/map-list';
7
+
8
+ import { MapProvider } from '~/contexts/mapContext';
9
+ import { PlacesProvider } from '~/contexts/placesContext';
10
+ import { MapListProvider } from '~/contexts/mapListContext';
11
+ import { TrackEventProvider } from '~/contexts/trackEventContext';
12
+
13
+ import { getMapConfig } from '~/services/configService';
14
+ import { setClientAuthKey } from '~/clientToken.js';
15
+
16
+ import '../styles/index.css';
17
+
18
+ const libraries = ['places'];
19
+
20
+ export const HireControlMap = ({
21
+ clientToken,
22
+ navigateToDetails = null,
23
+ navigateToEasyApply = null,
24
+ Link = null,
25
+ linkFormat = '/jobs/[slug]',
26
+ trackEvent = (eventType, eventObj) => {console.log(eventType); console.log(eventObj);}
27
+ }) => {
28
+ const [siteConfig, setSiteconfig] = useState(null);
29
+
30
+ useEffect(() => {
31
+ setClientAuthKey(clientToken);
32
+ const fetchSiteConfig = async () => {
33
+ try {
34
+ const configData = await getMapConfig(clientToken);
35
+ setSiteconfig(configData);
36
+ } catch (error) {
37
+ console.error('Failed to fetch site configuration:', error);
38
+ }
39
+ };
40
+
41
+ fetchSiteConfig();
42
+ }, [clientToken]);
43
+
44
+ const { isLoaded } = useLoadScript({
45
+ googleMapsApiKey: process.env.GOOGLE_MAPS_API_KEY,
46
+ version: 'quarterly',
47
+ libraries: libraries
48
+ });
49
+
50
+ return (
51
+ <div>
52
+ {isLoaded && siteConfig && (
53
+ <HomeBody
54
+ siteConfig={siteConfig}
55
+ navigateToDetails={navigateToDetails}
56
+ navigateToEasyApply={navigateToEasyApply}
57
+ Link={Link}
58
+ linkFormat={linkFormat}
59
+ trackEvent={trackEvent}
60
+ />
61
+ )}
62
+ </div>
63
+ );
64
+ };
65
+
66
+ const HomeBody = ({ siteConfig, navigateToDetails, navigateToEasyApply, Link, linkFormat, trackEvent }) => {
67
+ const resetFilters = false;
68
+
69
+ return (
70
+ <TrackEventProvider trackEvent={trackEvent}>
71
+ <MapListProvider
72
+ siteConfig={siteConfig}
73
+ resetFilters={resetFilters}
74
+ avigateToDetails={navigateToDetails}
75
+ navigateToEasyApply={navigateToEasyApply}
76
+ Link={Link}
77
+ linkFormat={linkFormat}
78
+ >
79
+ <MapProvider resetFilters={resetFilters}>
80
+ <PlacesProvider
81
+ placeMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}
82
+ markerColors={{
83
+ fillColor: siteConfig.colors.primary,
84
+ strokeColor: siteConfig.colors.primaryDark,
85
+ selectedFillColor: siteConfig.colors.secondary,
86
+ selectedStrokeColor: siteConfig.colors.secondaryDark,
87
+ placeMarkers: {
88
+ colors: siteConfig.pointsOfInterestConfig.placeMarkerColors,
89
+ size: siteConfig.pointsOfInterestConfig.placeMarkerSize
90
+ }
91
+ }}
92
+ >
93
+ <Grid
94
+ as='section'
95
+ id='job-search-interface'
96
+ columns='md:hc-grid-cols-[1fr_2.5fr] lg:hc-grid-cols-[1fr_3.5fr]'
97
+ gap='hc-gap-0'
98
+ autoRows={false}
99
+ className='hc-items-stretch hc-h-screen hc-min-h-[30rem] hc-divide-x hc-divide-uiAccent/20'
100
+ >
101
+ <Grid.Item className='hc-bg-gray-100'>
102
+ <Filter showMap={siteConfig.showMap} className='hc-hidden md:hc-block' />
103
+ </Grid.Item>
104
+ <MapList
105
+ markerConfigs={{
106
+ fillColor: siteConfig.colors.primary,
107
+ strokeColor: siteConfig.colors.primaryDark,
108
+ selectedFillColor: siteConfig.colors.secondary,
109
+ selectedStrokeColor: siteConfig.colors.secondaryDark,
110
+ placeMarkers: {
111
+ colors: siteConfig.pointsOfInterestConfig.placeMarkerColors,
112
+ size: siteConfig.pointsOfInterestConfig.placeMarkerSize
113
+ }
114
+ }}
115
+ showMap={siteConfig.showMap}
116
+ fieldsShown={siteConfig.fieldsShown}
117
+ specialFeatures={siteConfig.specialFeatures}
118
+ fieldNames={siteConfig.fieldNames}
119
+ placeMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}
120
+ />
121
+ </Grid>
122
+ </PlacesProvider>
123
+ </MapProvider>
124
+ </MapListProvider>
125
+ </TrackEventProvider>
126
+ );
127
+ };
128
+
129
+ export default HireControlMap;
@@ -1,72 +1,74 @@
1
- import React from 'react';
2
-
3
- import Accordion from '~/components/modules/accordions/default';
4
- import ListItem from '~/components/modules/maps/list/list-item';
5
- import ItemExpandCard from '~/components/modules/maps/list/item-expand-card';
6
-
7
- import { useMap } from '~/contexts/mapContext';
8
- import { useMapList } from '~/contexts/mapListContext';
9
-
10
- import { setStorageObject } from '~/util/localStorageUtil';
11
-
12
- const MapAccordionItem = ({
13
- item,
14
- itemRefs,
15
- itemExpandedContent,
16
- fieldsShown,
17
- showMap,
18
- hasListItemSelected,
19
- specialFeatures,
20
- isActive
21
- }) => {
22
- const {
23
- mapItems,
24
- recruiters,
25
- setMobileTab,
26
- favorites,
27
- handleSettingFavorites
28
- } = useMapList();
29
- const { selectItem } = useMap();
30
- const setSelectedItemAndZoomMap = item => {
31
- if (isActive) {
32
- localStorage.removeItem("selectedListItem");
33
- mapItems.find(x => Object.prototype.hasOwnProperty.call(x.items, item.id)) || null;
34
- selectItem(null, null, 9, { lat: 39.8283, lng: -98.5795 });
35
- } else {
36
- setStorageObject("selectedListItem", item);
37
- let location = mapItems.find(x => Object.prototype.hasOwnProperty.call(x.items, item.id)) || null;
38
- selectItem(item, location, 12, {
39
- lat: location?.latitude,
40
- lng: location?.longitude
41
- });
42
- }
43
- };
44
- return (
45
- <Accordion.Item key={item.id} id={item.id}>
46
- <Accordion.Trigger.Blank>
47
- <ListItem
48
- ref={el => (itemRefs.current[item.id] = el)}
49
- id={item.id}
50
- key={item.id}
51
- item={item}
52
- fieldsShown={fieldsShown}
53
- onClick={() => setSelectedItemAndZoomMap(item)}
54
- showMap={showMap}
55
- isActive={isActive}
56
- setMobileTab={setMobileTab}
57
- specialFeatures={specialFeatures}
58
- className={hasListItemSelected ? isActive ? "!hc-border-secondary hc-border hc-border-b-0" : "hc-opacity-85" : ""}
59
- favorites={favorites}
60
- setFavorites={handleSettingFavorites}
61
- />
62
- </Accordion.Trigger.Blank>
63
- {isActive &&
64
- <Accordion.Content bodyClassName="hc-px-2 hc-py-2 hc-pt-0 hc-bg-uiAccent/5 hc-border-secondary hc-border hc-border-t-0">
65
- <ItemExpandCard content={itemExpandedContent(item, recruiters)} />
66
- </Accordion.Content>
67
- }
68
- </Accordion.Item>
69
- );
70
- };
71
-
72
- export default MapAccordionItem;
1
+ import React from 'react';
2
+
3
+ import Accordion from '~/components/modules/accordions/default';
4
+ import ListItem from '~/components/modules/maps/list/list-item';
5
+ import ItemExpandCard from '~/components/modules/maps/list/item-expand-card';
6
+
7
+ import { useMap } from '~/contexts/mapContext';
8
+ import { useMapList } from '~/contexts/mapListContext';
9
+ import { useTrackEvent } from '~/contexts/trackEventContext';
10
+
11
+ import { setStorageObject } from '~/util/localStorageUtil';
12
+
13
+ const MapAccordionItem = ({
14
+ item,
15
+ itemRefs,
16
+ itemExpandedContent,
17
+ fieldsShown,
18
+ showMap,
19
+ hasListItemSelected,
20
+ specialFeatures,
21
+ isActive
22
+ }) => {
23
+ const {
24
+ mapItems,
25
+ recruiters,
26
+ setMobileTab,
27
+ favorites,
28
+ handleSettingFavorites
29
+ } = useMapList();
30
+ const { selectItem } = useMap();
31
+ const { trackEvent, eventTypes } = useTrackEvent();
32
+ const setSelectedItemAndZoomMap = item => {
33
+ if (isActive) {
34
+ localStorage.removeItem("selectedListItem");
35
+ mapItems.find(x => Object.prototype.hasOwnProperty.call(x.items, item.id)) || null;
36
+ selectItem(null, null, 9, { lat: 39.8283, lng: -98.5795 });
37
+ } else {
38
+ setStorageObject("selectedListItem", item);
39
+ let location = mapItems.find(x => Object.prototype.hasOwnProperty.call(x.items, item.id)) || null;
40
+ selectItem(item, location, 12, {
41
+ lat: location?.latitude,
42
+ lng: location?.longitude
43
+ });
44
+ }
45
+ };
46
+ return (
47
+ <Accordion.Item key={item.id} id={item.id}>
48
+ <Accordion.Trigger.Blank>
49
+ <ListItem
50
+ ref={el => (itemRefs.current[item.id] = el)}
51
+ id={item.id}
52
+ key={item.id}
53
+ item={item}
54
+ fieldsShown={fieldsShown}
55
+ onClick={() => { trackEvent(eventTypes.JOB_LISTING_SELECTED, { jobTitle: item.fields.position, jobCategory: item.fields.category, entityDisplayName: item?.mapDetails?.entityDisplayName });setSelectedItemAndZoomMap(item);}}
56
+ showMap={showMap}
57
+ isActive={isActive}
58
+ setMobileTab={setMobileTab}
59
+ specialFeatures={specialFeatures}
60
+ className={hasListItemSelected ? isActive ? "!hc-border-secondary hc-border hc-border-b-0" : "hc-opacity-85" : ""}
61
+ favorites={favorites}
62
+ setFavorites={handleSettingFavorites}
63
+ />
64
+ </Accordion.Trigger.Blank>
65
+ {isActive &&
66
+ <Accordion.Content bodyClassName="hc-px-2 hc-py-2 hc-pt-0 hc-bg-uiAccent/5 hc-border-secondary hc-border hc-border-t-0">
67
+ <ItemExpandCard content={itemExpandedContent(item, recruiters)} />
68
+ </Accordion.Content>
69
+ }
70
+ </Accordion.Item>
71
+ );
72
+ };
73
+
74
+ export default MapAccordionItem;