@abcagency/hc-ui-components 1.3.60 → 1.3.62

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 (278) hide show
  1. package/dist/apis/hcApi.js +85 -85
  2. package/dist/apis/hcApi.js.map +1 -1
  3. package/dist/clientToken.js.map +1 -1
  4. package/dist/components/HireControlMap.js +14 -4
  5. package/dist/components/HireControlMap.js.map +1 -1
  6. package/dist/components/containers/accordions/filter-container.js +10 -3
  7. package/dist/components/containers/accordions/filter-container.js.map +1 -1
  8. package/dist/components/containers/accordions/filter-item-container.js.map +1 -1
  9. package/dist/components/containers/accordions/map-accordion-item-container.js.map +1 -1
  10. package/dist/components/containers/filter/commute-container.js +1 -1
  11. package/dist/components/containers/filter/commute-container.js.map +1 -1
  12. package/dist/components/containers/filter/filter-container.js.map +1 -1
  13. package/dist/components/containers/filter/filter-item-container.js.map +1 -1
  14. package/dist/components/containers/filter/location-container.js.map +1 -1
  15. package/dist/components/containers/filter/points-of-interest-container.js.map +1 -1
  16. package/dist/components/containers/filter/points-of-interest-radio-item-container.js.map +1 -1
  17. package/dist/components/containers/filter/search-container.js.map +1 -1
  18. package/dist/components/containers/jobListing/listing-details-container.js.map +1 -1
  19. package/dist/components/containers/list/item-list-container.js +21 -21
  20. package/dist/components/containers/list/item-list-container.js.map +1 -1
  21. package/dist/components/containers/list/list-item/list-item-container.js.map +1 -1
  22. package/dist/components/containers/maps/info-window-content-container.js.map +1 -1
  23. package/dist/components/containers/maps/map-container.js +1 -1
  24. package/dist/components/containers/maps/map-container.js.map +1 -1
  25. package/dist/components/containers/maps/map-list-container.js.map +1 -1
  26. package/dist/components/containers/maps/map-marker-container.js +1 -1
  27. package/dist/components/containers/maps/map-marker-container.js.map +1 -1
  28. package/dist/components/modules/accordions/MapAccordionItem.js.map +1 -1
  29. package/dist/components/modules/accordions/default.js +2 -2
  30. package/dist/components/modules/accordions/default.js.map +1 -1
  31. package/dist/components/modules/accordions/filterItem.js.map +1 -1
  32. package/dist/components/modules/accordions/filters.js.map +1 -1
  33. package/dist/components/modules/buttons/button-group-apply.js +5 -8
  34. package/dist/components/modules/buttons/button-group-apply.js.map +1 -1
  35. package/dist/components/modules/buttons/commute-pill.js.map +1 -1
  36. package/dist/components/modules/buttons/default.js +2 -2
  37. package/dist/components/modules/buttons/default.js.map +1 -1
  38. package/dist/components/modules/buttons/items-pill.js +5 -8
  39. package/dist/components/modules/buttons/items-pill.js.map +1 -1
  40. package/dist/components/modules/buttons/pill-wrapper.js.map +1 -1
  41. package/dist/components/modules/buttons/show-all-button.js.map +1 -1
  42. package/dist/components/modules/cards/default.js +2 -2
  43. package/dist/components/modules/cards/default.js.map +1 -1
  44. package/dist/components/modules/cards/filter.js.map +1 -1
  45. package/dist/components/modules/dialogs/apply-dialog.js +1 -1
  46. package/dist/components/modules/dialogs/apply-dialog.js.map +1 -1
  47. package/dist/components/modules/filter/commute.js +2 -2
  48. package/dist/components/modules/filter/commute.js.map +1 -1
  49. package/dist/components/modules/filter/index.js +1 -1
  50. package/dist/components/modules/filter/index.js.map +1 -1
  51. package/dist/components/modules/filter/item.js.map +1 -1
  52. package/dist/components/modules/filter/location.js.map +1 -1
  53. package/dist/components/modules/filter/radio-item.js.map +1 -1
  54. package/dist/components/modules/filter/search.js.map +1 -1
  55. package/dist/components/modules/filter/sort.js +2 -2
  56. package/dist/components/modules/filter/sort.js.map +1 -1
  57. package/dist/components/modules/grid.js +1 -1
  58. package/dist/components/modules/grid.js.map +1 -1
  59. package/dist/components/modules/icon.js +1 -1
  60. package/dist/components/modules/icon.js.map +1 -1
  61. package/dist/components/modules/jobListing/listing-details.js.map +1 -1
  62. package/dist/components/modules/list/field-mapper.js.map +1 -1
  63. package/dist/components/modules/list/header-item.js.map +1 -1
  64. package/dist/components/modules/list/header.js +1 -1
  65. package/dist/components/modules/list/header.js.map +1 -1
  66. package/dist/components/modules/list/item-expand-card/index.js +1 -1
  67. package/dist/components/modules/list/item-expand-card/index.js.map +1 -1
  68. package/dist/components/modules/list/item-expand-card/recruiter-contact-nav.js +38 -38
  69. package/dist/components/modules/list/item-expand-card/recruiter-details.js +40 -40
  70. package/dist/components/modules/list/item-expand-card/recruiter-headshot.js +20 -20
  71. package/dist/components/modules/list/item-list.js +43 -43
  72. package/dist/components/modules/list/item-list.js.map +1 -1
  73. package/dist/components/modules/list/list-item/list-item.js.map +1 -1
  74. package/dist/components/modules/maps/info-window-card.js.map +1 -1
  75. package/dist/components/modules/maps/info-window-content.js.map +1 -1
  76. package/dist/components/modules/maps/map-list.js.map +1 -1
  77. package/dist/components/modules/maps/map-marker.js +1 -1
  78. package/dist/components/modules/maps/map-marker.js.map +1 -1
  79. package/dist/components/modules/maps/map.js +1 -1
  80. package/dist/components/modules/maps/map.js.map +1 -1
  81. package/dist/components/modules/maps/place-marker.js +1 -1
  82. package/dist/components/modules/maps/place-marker.js.map +1 -1
  83. package/dist/components/modules/maps/tabs.js +1 -1
  84. package/dist/components/modules/maps/tabs.js.map +1 -1
  85. package/dist/constants/eventTypes.js.map +1 -1
  86. package/dist/constants/placeTypes.js.map +1 -1
  87. package/dist/contexts/mapContext.js +83 -83
  88. package/dist/contexts/mapContext.js.map +1 -1
  89. package/dist/contexts/mapListContext.js +211 -192
  90. package/dist/contexts/mapListContext.js.map +1 -1
  91. package/dist/contexts/placesContext.js.map +1 -1
  92. package/dist/contexts/themeContext.js.map +1 -1
  93. package/dist/contexts/trackEventContext.js.map +1 -1
  94. package/dist/hooks/useList.js.map +1 -1
  95. package/dist/services/configService.js +9 -9
  96. package/dist/services/configService.js.map +1 -1
  97. package/dist/services/googlePlacesNearbyService.js +32 -32
  98. package/dist/services/googlePlacesNearbyService.js.map +1 -1
  99. package/dist/services/listingAggregatorService.js +34 -34
  100. package/dist/services/listingAggregatorService.js.map +1 -1
  101. package/dist/services/listingEntityService.js +9 -9
  102. package/dist/services/listingEntityService.js.map +1 -1
  103. package/dist/services/listingService.js +24 -24
  104. package/dist/services/listingService.js.map +1 -1
  105. package/dist/services/recruiterService.js +10 -10
  106. package/dist/services/recruiterService.js.map +1 -1
  107. package/dist/styles/index.css +1 -1
  108. package/dist/types/apis/hcApi.d.ts +5 -5
  109. package/dist/types/clientToken.d.ts +2 -2
  110. package/dist/types/components/containers/accordions/map-accordion-item-container.d.ts +12 -12
  111. package/dist/types/components/containers/jobListing/listing-details-container.d.ts +6 -6
  112. package/dist/types/components/containers/list/item-list-container.d.ts +9 -9
  113. package/dist/types/components/containers/list/list-item/list-item-container.d.ts +14 -14
  114. package/dist/types/components/modules/accordions/MapAccordionItem.d.ts +10 -10
  115. package/dist/types/components/modules/accordions/default.d.ts +19 -19
  116. package/dist/types/components/modules/buttons/button-group-apply.d.ts +24 -24
  117. package/dist/types/components/modules/buttons/commute-pill.d.ts +5 -5
  118. package/dist/types/components/modules/buttons/default.d.ts +48 -48
  119. package/dist/types/components/modules/buttons/pill-wrapper.d.ts +3 -3
  120. package/dist/types/components/modules/dialogs/apply-dialog.d.ts +8 -8
  121. package/dist/types/components/modules/filter/sort.d.ts +8 -8
  122. package/dist/types/components/modules/grid.d.ts +8 -8
  123. package/dist/types/components/modules/icon.d.ts +10 -10
  124. package/dist/types/components/modules/jobListing/listing-details.d.ts +20 -20
  125. package/dist/types/components/modules/list/field-mapper.d.ts +10 -10
  126. package/dist/types/components/modules/list/header-item.d.ts +11 -11
  127. package/dist/types/components/modules/list/header.d.ts +12 -12
  128. package/dist/types/components/modules/list/item-expand-card/index.d.ts +7 -7
  129. package/dist/types/components/modules/list/item-expand-card/recruiter-contact-nav.d.ts +17 -17
  130. package/dist/types/components/modules/list/item-expand-card/recruiter-details.d.ts +21 -21
  131. package/dist/types/components/modules/list/item-expand-card/recruiter-headshot.d.ts +8 -8
  132. package/dist/types/components/modules/list/item-list.d.ts +20 -20
  133. package/dist/types/components/modules/list/list-item/list-item.d.ts +3 -3
  134. package/dist/types/constants/eventTypes.d.ts +15 -15
  135. package/dist/types/contexts/mapContext.d.ts +29 -29
  136. package/dist/types/contexts/mapListContext.d.ts +69 -65
  137. package/dist/types/contexts/trackEventContext.d.ts +6 -6
  138. package/dist/types/enums/SectionType.d.ts +9 -9
  139. package/dist/types/hooks/useList.d.ts +13 -13
  140. package/dist/types/services/configService.d.ts +6 -6
  141. package/dist/types/services/googlePlacesNearbyService.d.ts +5 -5
  142. package/dist/types/services/listingAggregatorService.d.ts +12 -12
  143. package/dist/types/services/listingEntityService.d.ts +6 -6
  144. package/dist/types/services/listingService.d.ts +9 -9
  145. package/dist/types/services/recruiterService.d.ts +6 -6
  146. package/dist/types/types/Address.d.ts +7 -7
  147. package/dist/types/types/ContentSection.d.ts +8 -8
  148. package/dist/types/types/GetListingParams.d.ts +8 -8
  149. package/dist/types/types/LatLng.d.ts +4 -4
  150. package/dist/types/types/ListingEntity.d.ts +10 -10
  151. package/dist/types/types/ListingFields.d.ts +25 -25
  152. package/dist/types/types/Listings.d.ts +31 -31
  153. package/dist/types/types/Recruiter.d.ts +9 -9
  154. package/dist/types/types/SimilarListing.d.ts +24 -24
  155. package/dist/types/types/config/Colors.d.ts +8 -8
  156. package/dist/types/types/config/MapConfig.d.ts +30 -30
  157. package/dist/types/types/config/PointsOfInterestConfig.d.ts +13 -13
  158. package/dist/types/types/config/SearchConfig.d.ts +4 -4
  159. package/dist/types/util/filterUtil.d.ts +28 -28
  160. package/dist/types/util/loading.d.ts +3 -3
  161. package/dist/types/util/localStorageUtil.d.ts +3 -3
  162. package/dist/types/util/mapUtil.d.ts +16 -16
  163. package/dist/types/util/sortUtil.d.ts +1 -1
  164. package/dist/types/util/stringUtils.d.ts +1 -1
  165. package/dist/types/util/urlFilterUtil.d.ts +8 -8
  166. package/dist/util/filterUtil.js +1 -1
  167. package/dist/util/filterUtil.js.map +1 -1
  168. package/dist/util/loading.js.map +1 -1
  169. package/dist/util/localStorageUtil.js +37 -37
  170. package/dist/util/localStorageUtil.js.map +1 -1
  171. package/dist/util/mapIconUtil.js.map +1 -1
  172. package/dist/util/mapUtil.js.map +1 -1
  173. package/dist/util/sortUtil.js.map +1 -1
  174. package/dist/util/stringUtils.js.map +1 -1
  175. package/dist/util/urlFilterUtil.js.map +1 -1
  176. package/package.json +90 -90
  177. package/src/.editorconfig +12 -12
  178. package/src/apis/hcApi.ts +109 -109
  179. package/src/bundleIndex.js +14 -14
  180. package/src/clientToken.js +9 -9
  181. package/src/components/HireControlMap.js +153 -148
  182. package/src/components/containers/accordions/filter-container.js +52 -48
  183. package/src/components/containers/accordions/filter-item-container.js +83 -83
  184. package/src/components/containers/accordions/map-accordion-item-container.js +70 -70
  185. package/src/components/containers/filter/commute-container.js +89 -89
  186. package/src/components/containers/filter/filter-container.js +76 -76
  187. package/src/components/containers/filter/filter-item-container.js +117 -117
  188. package/src/components/containers/filter/location-container.js +45 -45
  189. package/src/components/containers/filter/points-of-interest-container.js +33 -33
  190. package/src/components/containers/filter/points-of-interest-radio-item-container.js +35 -35
  191. package/src/components/containers/filter/search-container.js +61 -61
  192. package/src/components/containers/jobListing/listing-details-container.js +42 -42
  193. package/src/components/containers/list/item-list-container.tsx +81 -81
  194. package/src/components/containers/list/list-item/list-item-container.js +43 -43
  195. package/src/components/containers/maps/info-window-content-container.js +53 -53
  196. package/src/components/containers/maps/map-container.js +249 -249
  197. package/src/components/containers/maps/map-list-container.js +50 -50
  198. package/src/components/containers/maps/map-marker-container.js +78 -78
  199. package/src/components/modules/accordions/MapAccordionItem.js +30 -30
  200. package/src/components/modules/accordions/default.js +171 -171
  201. package/src/components/modules/accordions/filterItem.js +27 -27
  202. package/src/components/modules/accordions/filters.js +32 -32
  203. package/src/components/modules/buttons/button-group-apply.js +115 -115
  204. package/src/components/modules/buttons/commute-pill.js +22 -22
  205. package/src/components/modules/buttons/default.js +194 -194
  206. package/src/components/modules/buttons/items-pill.js +31 -35
  207. package/src/components/modules/buttons/pill-wrapper.js +27 -27
  208. package/src/components/modules/buttons/show-all-button.js +19 -19
  209. package/src/components/modules/cards/default.js +167 -167
  210. package/src/components/modules/cards/filter.js +56 -56
  211. package/src/components/modules/dialogs/apply-dialog.js +48 -48
  212. package/src/components/modules/filter/commute.js +108 -108
  213. package/src/components/modules/filter/index.js +55 -55
  214. package/src/components/modules/filter/item.js +69 -69
  215. package/src/components/modules/filter/location.js +51 -51
  216. package/src/components/modules/filter/radio-item.js +42 -42
  217. package/src/components/modules/filter/search.js +79 -79
  218. package/src/components/modules/filter/sort.js +83 -83
  219. package/src/components/modules/grid.js +54 -54
  220. package/src/components/modules/icon.js +33 -33
  221. package/src/components/modules/jobListing/listing-details.js +110 -110
  222. package/src/components/modules/list/field-mapper.js +130 -130
  223. package/src/components/modules/list/header-item.js +92 -92
  224. package/src/components/modules/list/header.js +51 -51
  225. package/src/components/modules/list/item-expand-card/index.js +22 -22
  226. package/src/components/modules/list/item-expand-card/recruiter-contact-nav.js +50 -50
  227. package/src/components/modules/list/item-expand-card/recruiter-details.js +68 -68
  228. package/src/components/modules/list/item-expand-card/recruiter-headshot.js +22 -22
  229. package/src/components/modules/list/item-list.tsx +117 -117
  230. package/src/components/modules/list/list-item/list-item.js +130 -130
  231. package/src/components/modules/maps/info-window-card.js +17 -17
  232. package/src/components/modules/maps/info-window-content.js +64 -64
  233. package/src/components/modules/maps/map-list.js +38 -38
  234. package/src/components/modules/maps/map-marker.js +29 -29
  235. package/src/components/modules/maps/map.js +64 -64
  236. package/src/components/modules/maps/place-marker.js +41 -41
  237. package/src/components/modules/maps/tabs.js +81 -81
  238. package/src/constants/eventTypes.js +15 -15
  239. package/src/constants/placeTypes.js +8 -8
  240. package/src/contexts/mapContext.tsx +129 -129
  241. package/src/contexts/mapListContext.tsx +351 -326
  242. package/src/contexts/placesContext.js +102 -102
  243. package/src/contexts/themeContext.js +40 -40
  244. package/src/contexts/trackEventContext.js +14 -14
  245. package/src/enums/SectionType.ts +9 -9
  246. package/src/hooks/useList.js +89 -89
  247. package/src/index.js +3 -3
  248. package/src/services/configService.ts +16 -16
  249. package/src/services/googlePlacesNearbyService.ts +42 -42
  250. package/src/services/listingAggregatorService.ts +76 -76
  251. package/src/services/listingEntityService.ts +16 -16
  252. package/src/services/listingService.ts +40 -40
  253. package/src/services/recruiterService.ts +18 -18
  254. package/src/styles/bundle.css +268 -268
  255. package/src/styles/index.css +33 -33
  256. package/src/types/Address.ts +7 -7
  257. package/src/types/ContentSection.ts +9 -9
  258. package/src/types/GetListingParams.ts +8 -8
  259. package/src/types/LatLng.ts +4 -4
  260. package/src/types/ListingEntity.ts +11 -11
  261. package/src/types/ListingFields.ts +25 -25
  262. package/src/types/Listings.ts +32 -32
  263. package/src/types/Recruiter.ts +9 -9
  264. package/src/types/SimilarListing.ts +24 -24
  265. package/src/types/config/Colors.ts +8 -8
  266. package/src/types/config/MapConfig.ts +31 -31
  267. package/src/types/config/PointsOfInterestConfig.ts +13 -13
  268. package/src/types/config/SearchConfig.ts +4 -4
  269. package/src/util/arrayUtil.js +3 -3
  270. package/src/util/fieldMapper.js +22 -22
  271. package/src/util/filterUtil.js +311 -311
  272. package/src/util/loading.js +17 -17
  273. package/src/util/localStorageUtil.ts +34 -34
  274. package/src/util/mapIconUtil.js +180 -180
  275. package/src/util/mapUtil.js +92 -92
  276. package/src/util/sortUtil.js +32 -32
  277. package/src/util/stringUtils.js +6 -6
  278. package/src/util/urlFilterUtil.js +85 -85
@@ -1,78 +1,78 @@
1
- import React, { useEffect, useRef } from 'react';
2
- import MapMarker from '~/components/modules/maps/map-marker';
3
- import { InfoWindow } from '@react-google-maps/api';
4
- import InfoWindowCard from '~/components/modules/maps/info-window-card';
5
- import InfoWindowContent from "~/components/containers/maps/info-window-content-container";
6
-
7
- import { useMap } from "~/contexts/mapContext";
8
- import { useMapList } from "~/contexts/mapListContext";
9
- import { useTrackEvent } from '~/contexts/trackEventContext';
10
-
11
- const MapMarkerContainer = ({
12
- item,
13
- markerRefs,
14
- infoWindowClasses,
15
- markerClickHandler,
16
- clusterer,
17
- markerIconSelected,
18
- markerIcon,
19
- selectedLocation,
20
- setMapInteracted
21
- }) => {
22
- const { setLocation, commuteLocation } = useMap();
23
- const isSelected = item.id === selectedLocation?.id;
24
- const markerRef = useRef(null);
25
- const { trackEvent, eventTypes } = useTrackEvent();
26
- const { resetEntityFilter } = useMapList();
27
-
28
- useEffect(() => {
29
- markerRefs.current[item.id] = markerRef.current;
30
- }, []);
31
-
32
- const onMarkerClick = () => {
33
- trackEvent(eventTypes.MAP_MARKER_CLICKED, {
34
- entityDisplayName: item.entityDisplayName,
35
- lat: item.latitude,
36
- lng: item.longitude,
37
- travelTime: item.travelTime
38
- });
39
- setMapInteracted(true);
40
- markerClickHandler(item);
41
- };
42
-
43
- return (
44
- <MapMarker
45
- position={{ lat: item.latitude, lng: item.longitude }}
46
- title={item.name}
47
- icon={isSelected ? markerIconSelected : markerIcon}
48
- zIndex={isSelected ? 9999 : 1}
49
- onLoad={marker => (markerRef.current = marker)}
50
- onClick={onMarkerClick}
51
- clusterer={clusterer}
52
- >
53
- {isSelected && (
54
- <InfoWindow
55
- position={{ lat: item.latitude, lng: item.longitude }}
56
- anchor={markerRefs.current[item.id]}
57
- onCloseClick={() => {
58
- setMapInteracted(true);
59
- setLocation(null);
60
- resetEntityFilter();
61
- }}
62
- options={{ maxWidth: 400 }}
63
- >
64
- <InfoWindowCard
65
- className={infoWindowClasses}
66
- id={item.id}
67
- content={<InfoWindowContent
68
- item={item}
69
- commuteLocation={commuteLocation}
70
- />}
71
- />
72
- </InfoWindow>
73
- )}
74
- </MapMarker>
75
- );
76
- };
77
-
78
- export default MapMarkerContainer;
1
+ import React, { useEffect, useRef } from 'react';
2
+ import MapMarker from '~/components/modules/maps/map-marker';
3
+ import { InfoWindow } from '@react-google-maps/api';
4
+ import InfoWindowCard from '~/components/modules/maps/info-window-card';
5
+ import InfoWindowContent from "~/components/containers/maps/info-window-content-container";
6
+
7
+ import { useMap } from "~/contexts/mapContext";
8
+ import { useMapList } from "~/contexts/mapListContext";
9
+ import { useTrackEvent } from '~/contexts/trackEventContext';
10
+
11
+ const MapMarkerContainer = ({
12
+ item,
13
+ markerRefs,
14
+ infoWindowClasses,
15
+ markerClickHandler,
16
+ clusterer,
17
+ markerIconSelected,
18
+ markerIcon,
19
+ selectedLocation,
20
+ setMapInteracted
21
+ }) => {
22
+ const { setLocation, commuteLocation } = useMap();
23
+ const isSelected = item.id === selectedLocation?.id;
24
+ const markerRef = useRef(null);
25
+ const { trackEvent, eventTypes } = useTrackEvent();
26
+ const { resetEntityFilter } = useMapList();
27
+
28
+ useEffect(() => {
29
+ markerRefs.current[item.id] = markerRef.current;
30
+ }, []);
31
+
32
+ const onMarkerClick = () => {
33
+ trackEvent(eventTypes.MAP_MARKER_CLICKED, {
34
+ entityDisplayName: item.entityDisplayName,
35
+ lat: item.latitude,
36
+ lng: item.longitude,
37
+ travelTime: item.travelTime
38
+ });
39
+ setMapInteracted(true);
40
+ markerClickHandler(item);
41
+ };
42
+
43
+ return (
44
+ <MapMarker
45
+ position={{ lat: item.latitude, lng: item.longitude }}
46
+ title={item.name}
47
+ icon={isSelected ? markerIconSelected : markerIcon}
48
+ zIndex={isSelected ? 9999 : 1}
49
+ onLoad={marker => (markerRef.current = marker)}
50
+ onClick={onMarkerClick}
51
+ clusterer={clusterer}
52
+ >
53
+ {isSelected && (
54
+ <InfoWindow
55
+ position={{ lat: item.latitude, lng: item.longitude }}
56
+ anchor={markerRefs.current[item.id]}
57
+ onCloseClick={() => {
58
+ setMapInteracted(true);
59
+ setLocation(null);
60
+ resetEntityFilter();
61
+ }}
62
+ options={{ maxWidth: 400 }}
63
+ >
64
+ <InfoWindowCard
65
+ className={infoWindowClasses}
66
+ id={item.id}
67
+ content={<InfoWindowContent
68
+ item={item}
69
+ commuteLocation={commuteLocation}
70
+ />}
71
+ />
72
+ </InfoWindow>
73
+ )}
74
+ </MapMarker>
75
+ );
76
+ };
77
+
78
+ export default MapMarkerContainer;
@@ -1,30 +1,30 @@
1
- import React from 'react';
2
- import Accordion from '~/components/modules/accordions/default';
3
- import ItemExpandCard from '~/components/modules/list/item-expand-card';
4
-
5
- const MapAccordionItem = ({
6
- item,
7
- itemRefs,
8
- itemExpandedContent,
9
- isActive,
10
- recruiter,
11
- children
12
- }) => {
13
- return (
14
- <Accordion.Item key={item.id} id={item.id}>
15
- <Accordion.Trigger.Blank>
16
- <div ref={el => (itemRefs.current[item.id] = el)}>
17
- {children}
18
- </div>
19
- </Accordion.Trigger.Blank>
20
- {isActive &&
21
-
22
- <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">
23
- { <ItemExpandCard content={itemExpandedContent(item, recruiter)} />}
24
- </Accordion.Content>
25
- }
26
- </Accordion.Item>
27
- );
28
- };
29
-
30
- export default MapAccordionItem;
1
+ import React from 'react';
2
+ import Accordion from '~/components/modules/accordions/default';
3
+ import ItemExpandCard from '~/components/modules/list/item-expand-card';
4
+
5
+ const MapAccordionItem = ({
6
+ item,
7
+ itemRefs,
8
+ itemExpandedContent,
9
+ isActive,
10
+ recruiter,
11
+ children
12
+ }) => {
13
+ return (
14
+ <Accordion.Item key={item.id} id={item.id}>
15
+ <Accordion.Trigger.Blank>
16
+ <div ref={el => (itemRefs.current[item.id] = el)}>
17
+ {children}
18
+ </div>
19
+ </Accordion.Trigger.Blank>
20
+ {isActive &&
21
+
22
+ <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">
23
+ { <ItemExpandCard content={itemExpandedContent(item, recruiter)} />}
24
+ </Accordion.Content>
25
+ }
26
+ </Accordion.Item>
27
+ );
28
+ };
29
+
30
+ export default MapAccordionItem;
@@ -1,171 +1,171 @@
1
- import React, { forwardRef } from 'react';
2
- import * as RadixAccordion from '@radix-ui/react-accordion';
3
- import { twMerge } from 'tailwind-merge';
4
-
5
- import Icon from '~/components/modules/icon';
6
-
7
- const Accordion = ({
8
- className,
9
- type = 'single',
10
- defaultValue,
11
- collapsible = true,
12
- children
13
- }) => {
14
- return (
15
- <RadixAccordion.Root
16
- type={type}
17
- value={defaultValue ?? null}
18
- collapsible={collapsible}
19
- className={className ?? ''}
20
- >
21
- {children}
22
- </RadixAccordion.Root>
23
- );
24
- };
25
-
26
- export const AccordionItem = forwardRef((
27
- {
28
- id,
29
- children,
30
- className,
31
- ...props
32
- },
33
- forwardedRef
34
- ) => {
35
- return (
36
- <RadixAccordion.Item
37
- ref={forwardedRef}
38
- value={id}
39
- className={className ?? ''}
40
- {...props}
41
- >
42
- {children}
43
- </RadixAccordion.Item>
44
- );
45
- });
46
-
47
- export const AccordionTrigger = forwardRef((
48
- {
49
- children,
50
- className,
51
- ...props
52
- },
53
- forwardedRef
54
- ) => (
55
- <RadixAccordion.Header asChild>
56
- <RadixAccordion.Trigger
57
- ref={forwardedRef}
58
- className={twMerge(
59
- 'hc-group hc-flex hc-justify-between hc-w-full hc-p-4 hc-font-bold hc-text-left hc-text-uiText focus:hc-outline-none hfocus-visible:hcring focus-visible:hc-ring-uiAccent focus-visible:hc-ring-opacity-75 hover:hc-text-primary focus:hc-text-primary hc-transition data-[state=open]:hc-text-primary',
60
- className ?? ''
61
- )}
62
- {...props}
63
- >
64
- {children}
65
- <Icon
66
- icon="uil:angle-down"
67
- size="hc-size-5"
68
- className="hc-transition-transform group-data-[state=open]:!hc-rotate-180"
69
- aria-hidden="true"
70
- />
71
- </RadixAccordion.Trigger>
72
- </RadixAccordion.Header>
73
- ));
74
-
75
- export const AccordionTriggerHasHeader = forwardRef((
76
- {
77
- header,
78
- headerClassName,
79
- iconClassName,
80
- children,
81
- className,
82
- ...props
83
- },
84
- forwardedRef
85
- ) => (
86
- <RadixAccordion.Header
87
- className={twMerge(
88
- 'hc-group hc-flex hc-items-start hc-justify-between hc-w-full hc-p-4 hc-pr-3 hc-font-bold hc-text-left hc-text-uiText focus:hc-outline-none focus-visible:hc-ring focus-visible:hc-ring-uiAccent focus-visible:hc-ring-opacity-75 hover:hc-text-primary focus:hc-text-primary hc-transition data-[state=open]:hc-text-primary',
89
- headerClassName ?? ''
90
- )}
91
- >
92
- <RadixAccordion.Trigger
93
- ref={forwardedRef}
94
- className={twMerge('hc-flex hc-items-center hc-justify-between hc-w-full', className ?? '')}
95
- {...props}
96
- >
97
- {children}
98
- <Icon
99
- icon="uil:angle-down"
100
- size="w-5 h-5"
101
- className={twMerge(
102
- 'hc-transition-transform group-data-[state=open]:!hc-rotate-180',
103
- iconClassName ?? ''
104
- )}
105
- aria-hidden="true"
106
- />
107
- {header}
108
- </RadixAccordion.Trigger>
109
- </RadixAccordion.Header>
110
- ));
111
-
112
- export const AccordionTriggerBlank = forwardRef((
113
- {
114
- children,
115
- className,
116
- ...props
117
- },
118
- forwardedRef
119
- ) => (
120
- <RadixAccordion.Header asChild>
121
- <RadixAccordion.Trigger
122
- asChild
123
- ref={forwardedRef}
124
- {...props}
125
- >
126
- {children}
127
- </RadixAccordion.Trigger>
128
- </RadixAccordion.Header>
129
- ));
130
-
131
- export const AccordionContent = forwardRef((
132
- {
133
- children,
134
- className,
135
- bodyClassName,
136
- ...props
137
- },
138
- forwardedRef
139
- ) => (
140
- <RadixAccordion.Content
141
- ref={forwardedRef}
142
- className={twMerge(
143
- 'data-[state=open]:hc-animate-slideDown data-[state=closed]:hc-animate-slideUp hc-overflow-hidden',
144
- className ?? ''
145
- )}
146
- {...props}
147
- >
148
- <div
149
- className={twMerge(
150
- 'hc-p-4 hc-pt-0.5',
151
- bodyClassName ?? ''
152
- )}
153
- >
154
- {children}
155
- </div>
156
- </RadixAccordion.Content>
157
- ));
158
-
159
- Accordion.Item = AccordionItem;
160
- Accordion.Trigger = AccordionTrigger;
161
- Accordion.Trigger.Blank = AccordionTriggerBlank;
162
- Accordion.Trigger.HasHeader = AccordionTriggerHasHeader;
163
- Accordion.Content = AccordionContent;
164
-
165
- AccordionItem.displayName = 'AccordionItem';
166
- AccordionTrigger.displayName = 'AccordionTrigger';
167
- AccordionTriggerBlank.displayName = 'AccordionTriggerBlank';
168
- AccordionTriggerHasHeader.displayName = 'AccordionTriggerHasHeader';
169
- AccordionContent.displayName = 'AccordionContent';
170
-
171
- export default Accordion;
1
+ import React, { forwardRef } from 'react';
2
+ import * as RadixAccordion from '@radix-ui/react-accordion';
3
+ import { twMerge } from 'tailwind-merge';
4
+
5
+ import Icon from '~/components/modules/icon';
6
+
7
+ const Accordion = ({
8
+ className,
9
+ type = 'single',
10
+ defaultValue,
11
+ collapsible = true,
12
+ children
13
+ }) => {
14
+ return (
15
+ <RadixAccordion.Root
16
+ type={type}
17
+ value={defaultValue ?? null}
18
+ collapsible={collapsible}
19
+ className={className ?? ''}
20
+ >
21
+ {children}
22
+ </RadixAccordion.Root>
23
+ );
24
+ };
25
+
26
+ export const AccordionItem = forwardRef((
27
+ {
28
+ id,
29
+ children,
30
+ className,
31
+ ...props
32
+ },
33
+ forwardedRef
34
+ ) => {
35
+ return (
36
+ <RadixAccordion.Item
37
+ ref={forwardedRef}
38
+ value={id}
39
+ className={className ?? ''}
40
+ {...props}
41
+ >
42
+ {children}
43
+ </RadixAccordion.Item>
44
+ );
45
+ });
46
+
47
+ export const AccordionTrigger = forwardRef((
48
+ {
49
+ children,
50
+ className,
51
+ ...props
52
+ },
53
+ forwardedRef
54
+ ) => (
55
+ <RadixAccordion.Header asChild>
56
+ <RadixAccordion.Trigger
57
+ ref={forwardedRef}
58
+ className={twMerge(
59
+ 'hc-group hc-flex hc-justify-between hc-w-full hc-p-4 hc-font-bold hc-text-left hc-text-uiText focus:hc-outline-none hfocus-visible:hcring focus-visible:hc-ring-uiAccent focus-visible:hc-ring-opacity-75 hover:hc-text-primary focus:hc-text-primary hc-transition data-[state=open]:hc-text-primary',
60
+ className ?? ''
61
+ )}
62
+ {...props}
63
+ >
64
+ {children}
65
+ <Icon
66
+ icon="uil:angle-down"
67
+ size="hc-size-5"
68
+ className="hc-transition-transform group-data-[state=open]:!hc-rotate-180"
69
+ aria-hidden="true"
70
+ />
71
+ </RadixAccordion.Trigger>
72
+ </RadixAccordion.Header>
73
+ ));
74
+
75
+ export const AccordionTriggerHasHeader = forwardRef((
76
+ {
77
+ header,
78
+ headerClassName,
79
+ iconClassName,
80
+ children,
81
+ className,
82
+ ...props
83
+ },
84
+ forwardedRef
85
+ ) => (
86
+ <RadixAccordion.Header
87
+ className={twMerge(
88
+ 'hc-group hc-flex hc-items-start hc-justify-between hc-w-full hc-p-4 hc-pr-3 hc-font-bold hc-text-left hc-text-uiText focus:hc-outline-none focus-visible:hc-ring focus-visible:hc-ring-uiAccent focus-visible:hc-ring-opacity-75 hover:hc-text-primary focus:hc-text-primary hc-transition data-[state=open]:hc-text-primary',
89
+ headerClassName ?? ''
90
+ )}
91
+ >
92
+ <RadixAccordion.Trigger
93
+ ref={forwardedRef}
94
+ className={twMerge('hc-flex hc-items-center hc-justify-between hc-w-full', className ?? '')}
95
+ {...props}
96
+ >
97
+ {children}
98
+ <Icon
99
+ icon="uil:angle-down"
100
+ size="w-5 h-5"
101
+ className={twMerge(
102
+ 'hc-transition-transform group-data-[state=open]:!hc-rotate-180',
103
+ iconClassName ?? ''
104
+ )}
105
+ aria-hidden="true"
106
+ />
107
+ {header}
108
+ </RadixAccordion.Trigger>
109
+ </RadixAccordion.Header>
110
+ ));
111
+
112
+ export const AccordionTriggerBlank = forwardRef((
113
+ {
114
+ children,
115
+ className,
116
+ ...props
117
+ },
118
+ forwardedRef
119
+ ) => (
120
+ <RadixAccordion.Header asChild>
121
+ <RadixAccordion.Trigger
122
+ asChild
123
+ ref={forwardedRef}
124
+ {...props}
125
+ >
126
+ {children}
127
+ </RadixAccordion.Trigger>
128
+ </RadixAccordion.Header>
129
+ ));
130
+
131
+ export const AccordionContent = forwardRef((
132
+ {
133
+ children,
134
+ className,
135
+ bodyClassName,
136
+ ...props
137
+ },
138
+ forwardedRef
139
+ ) => (
140
+ <RadixAccordion.Content
141
+ ref={forwardedRef}
142
+ className={twMerge(
143
+ 'data-[state=open]:hc-animate-slideDown data-[state=closed]:hc-animate-slideUp hc-overflow-hidden',
144
+ className ?? ''
145
+ )}
146
+ {...props}
147
+ >
148
+ <div
149
+ className={twMerge(
150
+ 'hc-p-4 hc-pt-0.5',
151
+ bodyClassName ?? ''
152
+ )}
153
+ >
154
+ {children}
155
+ </div>
156
+ </RadixAccordion.Content>
157
+ ));
158
+
159
+ Accordion.Item = AccordionItem;
160
+ Accordion.Trigger = AccordionTrigger;
161
+ Accordion.Trigger.Blank = AccordionTriggerBlank;
162
+ Accordion.Trigger.HasHeader = AccordionTriggerHasHeader;
163
+ Accordion.Content = AccordionContent;
164
+
165
+ AccordionItem.displayName = 'AccordionItem';
166
+ AccordionTrigger.displayName = 'AccordionTrigger';
167
+ AccordionTriggerBlank.displayName = 'AccordionTriggerBlank';
168
+ AccordionTriggerHasHeader.displayName = 'AccordionTriggerHasHeader';
169
+ AccordionContent.displayName = 'AccordionContent';
170
+
171
+ export default Accordion;
@@ -1,27 +1,27 @@
1
- import React from 'react';
2
- import Accordion from '~/components/modules/accordions/default';
3
-
4
- const AccordionFilterItem = ({
5
- id,
6
- setDefaultValue,
7
- header,
8
- body
9
- }) => {
10
- return (
11
- <Accordion.Item key={id} id={id}>
12
- <Accordion.Trigger.HasHeader
13
- onClick={() => setDefaultValue(id)}
14
- className="hc-stretched-link hc-text-left"
15
- iconClassName="hc-order-last"
16
- headerClassName="hc-relative hc-py-2 hc-rounded hc-border hc-border-uiAccent/20 hc-bg-white hc-text-sm hc-transition data-[state=open]:hc-border-b-transparent data-[state=open]:hc-rounded-b-none"
17
- >
18
- {header}
19
- </Accordion.Trigger.HasHeader>
20
- <Accordion.Content bodyClassName="hc-px-2 hc-py-1 hc-bg-white hc-rounded-b hc-border hc-border-uiAccent/20 hc-border-t-0 hc-max-h-[20vh] md:hc-max-h-[25vh] hc-overflow-auto">
21
- {body}
22
- </Accordion.Content>
23
- </Accordion.Item>
24
- );
25
- };
26
-
27
- export default AccordionFilterItem;
1
+ import React from 'react';
2
+ import Accordion from '~/components/modules/accordions/default';
3
+
4
+ const AccordionFilterItem = ({
5
+ id,
6
+ setDefaultValue,
7
+ header,
8
+ body
9
+ }) => {
10
+ return (
11
+ <Accordion.Item key={id} id={id}>
12
+ <Accordion.Trigger.HasHeader
13
+ onClick={() => setDefaultValue(id)}
14
+ className="hc-stretched-link hc-text-left"
15
+ iconClassName="hc-order-last"
16
+ headerClassName="hc-relative hc-py-2 hc-rounded hc-border hc-border-uiAccent/20 hc-bg-white hc-text-sm hc-transition data-[state=open]:hc-border-b-transparent data-[state=open]:hc-rounded-b-none"
17
+ >
18
+ {header}
19
+ </Accordion.Trigger.HasHeader>
20
+ <Accordion.Content bodyClassName="hc-px-2 hc-py-1 hc-bg-white hc-rounded-b hc-border hc-border-uiAccent/20 hc-border-t-0 hc-max-h-[20vh] md:hc-max-h-[25vh] hc-overflow-auto">
21
+ {body}
22
+ </Accordion.Content>
23
+ </Accordion.Item>
24
+ );
25
+ };
26
+
27
+ export default AccordionFilterItem;
@@ -1,32 +1,32 @@
1
- import React from 'react';
2
- import Accordion from '~/components/modules/accordions/default';
3
- import FilterCard from '~/components/modules/cards/filter';
4
- import Loading from '~/util/loading';
5
-
6
- const AccordionFilters = ({
7
- className,
8
- defaultValue,
9
- children,
10
- filterOptions
11
- }) => {
12
- return (
13
- <FilterCard className={className ?? ""}>
14
- <FilterCard.Title icon="fa-solid:sliders-h">
15
- <span>
16
- Filter <span className="md:hc-hidden lg:hc-inline">your search</span>
17
- </span>
18
- </FilterCard.Title>
19
-
20
- <Accordion defaultValue={defaultValue} className="hc-space-y-4" >
21
- {!filterOptions?.filters && (
22
- <Accordion.Item>
23
- <Loading />
24
- </Accordion.Item>
25
- )}
26
- {filterOptions?.filters && children}
27
- </Accordion>
28
- </FilterCard>
29
- );
30
- };
31
-
32
- export default AccordionFilters;
1
+ import React from 'react';
2
+ import Accordion from '~/components/modules/accordions/default';
3
+ import FilterCard from '~/components/modules/cards/filter';
4
+ import Loading from '~/util/loading';
5
+
6
+ const AccordionFilters = ({
7
+ className,
8
+ defaultValue,
9
+ children,
10
+ filterOptions
11
+ }) => {
12
+ return (
13
+ <FilterCard className={className ?? ""}>
14
+ <FilterCard.Title icon="fa-solid:sliders-h">
15
+ <span>
16
+ Filter <span className="md:hc-hidden lg:hc-inline">your search</span>
17
+ </span>
18
+ </FilterCard.Title>
19
+
20
+ <Accordion defaultValue={defaultValue} className="hc-space-y-4" >
21
+ {!filterOptions?.filters && (
22
+ <Accordion.Item>
23
+ <Loading />
24
+ </Accordion.Item>
25
+ )}
26
+ {filterOptions?.filters && children}
27
+ </Accordion>
28
+ </FilterCard>
29
+ );
30
+ };
31
+
32
+ export default AccordionFilters;