@abcagency/hc-ui-components 1.3.61 → 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 +1 -1
  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,51 +1,51 @@
1
- import React from 'react';
2
- import { twMerge } from 'tailwind-merge';
3
-
4
- import Grid from '~/components/modules/grid';
5
- import HeaderItem from '~/components/modules/list/header-item';
6
-
7
- const ListHeader = ({
8
- className,
9
- fieldsShown,
10
- fieldNames,
11
- fieldIsSortable = true,
12
- setSortSetting,
13
- sortSetting,
14
- includeFavorite = false,
15
- scrollbarWidth
16
- }) => {
17
- return (
18
- <Grid
19
- columns="hc-grid-flow-col hc-auto-cols-fr"
20
- gap="hc-gap-0"
21
- isAnimated={false}
22
- style={{ paddingRight: `${scrollbarWidth && scrollbarWidth > 0 ? scrollbarWidth + 6 : 1 }px` }}
23
- className={twMerge`
24
- hc-hidden md:hc-grid hc-bg-uiAccent/10 hc-border-b hc-border-uiAccent/10 hc-sticky hc-top-0 hc-z-10
25
- ${className ?? ""}
26
- `}
27
- >
28
- {fieldsShown.map(field => (
29
- <HeaderItem
30
- key={field}
31
- isSortable={fieldIsSortable}
32
- sortSetting={sortSetting}
33
- field={field}
34
- setSortSetting={setSortSetting}
35
- >
36
- {fieldNames[field]}
37
- </HeaderItem>
38
- ))}
39
- { includeFavorite == true &&
40
- <HeaderItem key={"favorite"}
41
- isSortable={false}
42
- field={"favorite"}
43
- >
44
- Favorite
45
- </HeaderItem>
46
- }
47
- </Grid>
48
- );
49
- };
50
-
51
- export default ListHeader;
1
+ import React from 'react';
2
+ import { twMerge } from 'tailwind-merge';
3
+
4
+ import Grid from '~/components/modules/grid';
5
+ import HeaderItem from '~/components/modules/list/header-item';
6
+
7
+ const ListHeader = ({
8
+ className,
9
+ fieldsShown,
10
+ fieldNames,
11
+ fieldIsSortable = true,
12
+ setSortSetting,
13
+ sortSetting,
14
+ includeFavorite = false,
15
+ scrollbarWidth
16
+ }) => {
17
+ return (
18
+ <Grid
19
+ columns="hc-grid-flow-col hc-auto-cols-fr"
20
+ gap="hc-gap-0"
21
+ isAnimated={false}
22
+ style={{ paddingRight: `${scrollbarWidth && scrollbarWidth > 0 ? scrollbarWidth + 6 : 1 }px` }}
23
+ className={twMerge`
24
+ hc-hidden md:hc-grid hc-bg-uiAccent/10 hc-border-b hc-border-uiAccent/10 hc-sticky hc-top-0 hc-z-10
25
+ ${className ?? ""}
26
+ `}
27
+ >
28
+ {fieldsShown.map(field => (
29
+ <HeaderItem
30
+ key={field}
31
+ isSortable={fieldIsSortable}
32
+ sortSetting={sortSetting}
33
+ field={field}
34
+ setSortSetting={setSortSetting}
35
+ >
36
+ {fieldNames[field]}
37
+ </HeaderItem>
38
+ ))}
39
+ { includeFavorite == true &&
40
+ <HeaderItem key={"favorite"}
41
+ isSortable={false}
42
+ field={"favorite"}
43
+ >
44
+ Favorite
45
+ </HeaderItem>
46
+ }
47
+ </Grid>
48
+ );
49
+ };
50
+
51
+ export default ListHeader;
@@ -1,22 +1,22 @@
1
- import React from 'react';
2
- import { twMerge } from 'tailwind-merge';
3
-
4
- const CardItemExpand = ({
5
- className,
6
- content,
7
- ...props
8
- }) => {
9
- return (
10
- <div
11
- className={twMerge(
12
- 'hc-flex hc-flex-col lg:hc-flex-row hc-flex-wrap hc-items-stretch hc-gap-x-4 hc-w-full lg:hc-pt-2 hc-border-t hc-border-uiAccent/20',
13
- className ?? ''
14
- )}
15
- {...props}
16
- >
17
- {content}
18
- </div>
19
- );
20
- };
21
-
22
- export default CardItemExpand;
1
+ import React from 'react';
2
+ import { twMerge } from 'tailwind-merge';
3
+
4
+ const CardItemExpand = ({
5
+ className,
6
+ content,
7
+ ...props
8
+ }) => {
9
+ return (
10
+ <div
11
+ className={twMerge(
12
+ 'hc-flex hc-flex-col lg:hc-flex-row hc-flex-wrap hc-items-stretch hc-gap-x-4 hc-w-full lg:hc-pt-2 hc-border-t hc-border-uiAccent/20',
13
+ className ?? ''
14
+ )}
15
+ {...props}
16
+ >
17
+ {content}
18
+ </div>
19
+ );
20
+ };
21
+
22
+ export default CardItemExpand;
@@ -1,50 +1,50 @@
1
- import React from 'react';
2
-
3
- import Button from '~/components/modules/buttons/default';
4
-
5
- const RecruiterContactNav = ({
6
- children,
7
- className
8
- }) => {
9
- return (
10
- <nav
11
- className={`
12
- hc-inline-flex hc-items-center hc-justify-between hc-gap-2 hc-mt-2
13
- ${className ?? ''}
14
- `}
15
- >
16
- {children}
17
- </nav>
18
- );
19
- };
20
-
21
- export const NavButton = ({
22
- className,
23
- href,
24
- target = '_self',
25
- title,
26
- icon,
27
- ...props
28
- }) => {
29
- return (
30
- <Button.Anchor
31
- href={href}
32
- variant="icon"
33
- size="sq"
34
- target={target}
35
- title={title}
36
- className={className ?? ''}
37
- {...props}
38
- >
39
- <span className="hc-sr-only">{title}</span>
40
- <Button.Icon
41
- icon={icon}
42
- size="hc-size-8"
43
- />
44
- </Button.Anchor>
45
- );
46
- };
47
-
48
- RecruiterContactNav.Button = NavButton;
49
-
50
- export default RecruiterContactNav;
1
+ import React from 'react';
2
+
3
+ import Button from '~/components/modules/buttons/default';
4
+
5
+ const RecruiterContactNav = ({
6
+ children,
7
+ className
8
+ }) => {
9
+ return (
10
+ <nav
11
+ className={`
12
+ hc-inline-flex hc-items-center hc-justify-between hc-gap-2 hc-mt-2
13
+ ${className ?? ''}
14
+ `}
15
+ >
16
+ {children}
17
+ </nav>
18
+ );
19
+ };
20
+
21
+ export const NavButton = ({
22
+ className,
23
+ href,
24
+ target = '_self',
25
+ title,
26
+ icon,
27
+ ...props
28
+ }) => {
29
+ return (
30
+ <Button.Anchor
31
+ href={href}
32
+ variant="icon"
33
+ size="sq"
34
+ target={target}
35
+ title={title}
36
+ className={className ?? ''}
37
+ {...props}
38
+ >
39
+ <span className="hc-sr-only">{title}</span>
40
+ <Button.Icon
41
+ icon={icon}
42
+ size="hc-size-8"
43
+ />
44
+ </Button.Anchor>
45
+ );
46
+ };
47
+
48
+ RecruiterContactNav.Button = NavButton;
49
+
50
+ export default RecruiterContactNav;
@@ -1,68 +1,68 @@
1
- import React from 'react';
2
- import { twMerge } from 'tailwind-merge';
3
-
4
- const RecruiterDetails = ({
5
- contactNav,
6
- className,
7
- children
8
- }) => {
9
- return (
10
- <div
11
- className={twMerge`
12
- hc-grow
13
- ${className ?? ''}
14
- `}
15
- >
16
- {children}
17
-
18
- {contactNav &&
19
- <div className="hc-inline-flex">
20
- {contactNav}
21
- </div>
22
- }
23
- </div>
24
- );
25
- };
26
-
27
- export const Title = ({
28
- as = 'h4',
29
- className,
30
- children
31
- }) => {
32
- const Container = as;
33
-
34
- return (
35
- <Container
36
- className={twMerge`
37
- hc-text-base hc-font-medium
38
- ${className ?? ''}
39
- `}
40
- >
41
- {children}
42
- </Container>
43
- );
44
- };
45
-
46
- export const Text = ({
47
- as = 'p',
48
- className,
49
- children
50
- }) => {
51
- const Container = as;
52
-
53
- return (
54
- <Container
55
- className={twMerge`
56
- hc-text-sm hc-text-uiText/60
57
- ${className ?? ''}
58
- `}
59
- >
60
- {children}
61
- </Container>
62
- );
63
- };
64
-
65
- RecruiterDetails.Title = Title;
66
- RecruiterDetails.Text = Text;
67
-
68
- export default RecruiterDetails;
1
+ import React from 'react';
2
+ import { twMerge } from 'tailwind-merge';
3
+
4
+ const RecruiterDetails = ({
5
+ contactNav,
6
+ className,
7
+ children
8
+ }) => {
9
+ return (
10
+ <div
11
+ className={twMerge`
12
+ hc-grow
13
+ ${className ?? ''}
14
+ `}
15
+ >
16
+ {children}
17
+
18
+ {contactNav &&
19
+ <div className="hc-inline-flex">
20
+ {contactNav}
21
+ </div>
22
+ }
23
+ </div>
24
+ );
25
+ };
26
+
27
+ export const Title = ({
28
+ as = 'h4',
29
+ className,
30
+ children
31
+ }) => {
32
+ const Container = as;
33
+
34
+ return (
35
+ <Container
36
+ className={twMerge`
37
+ hc-text-base hc-font-medium
38
+ ${className ?? ''}
39
+ `}
40
+ >
41
+ {children}
42
+ </Container>
43
+ );
44
+ };
45
+
46
+ export const Text = ({
47
+ as = 'p',
48
+ className,
49
+ children
50
+ }) => {
51
+ const Container = as;
52
+
53
+ return (
54
+ <Container
55
+ className={twMerge`
56
+ hc-text-sm hc-text-uiText/60
57
+ ${className ?? ''}
58
+ `}
59
+ >
60
+ {children}
61
+ </Container>
62
+ );
63
+ };
64
+
65
+ RecruiterDetails.Title = Title;
66
+ RecruiterDetails.Text = Text;
67
+
68
+ export default RecruiterDetails;
@@ -1,22 +1,22 @@
1
- import React from 'react';
2
-
3
- const RecruiterHeadshot = ({
4
- image,
5
- alt,
6
- className,
7
- imageClassName
8
- }) => {
9
- return (
10
- <div className={className ?? ''}>
11
- <img
12
- src={image}
13
- width="96"
14
- height="96"
15
- alt={alt}
16
- className={imageClassName ?? ''}
17
- />
18
- </div>
19
- );
20
- };
21
-
22
- export default RecruiterHeadshot;
1
+ import React from 'react';
2
+
3
+ const RecruiterHeadshot = ({
4
+ image,
5
+ alt,
6
+ className,
7
+ imageClassName
8
+ }) => {
9
+ return (
10
+ <div className={className ?? ''}>
11
+ <img
12
+ src={image}
13
+ width="96"
14
+ height="96"
15
+ alt={alt}
16
+ className={imageClassName ?? ''}
17
+ />
18
+ </div>
19
+ );
20
+ };
21
+
22
+ export default RecruiterHeadshot;
@@ -1,117 +1,117 @@
1
- import React, { useEffect, useRef, useState, RefObject, ReactNode } from 'react';
2
- import Header from '~/components/modules/list/header';
3
- import Sort from '~/components/modules/filter/sort';
4
- import Loading from "~/util/loading";
5
- import { Listing } from '~/types/Listings';
6
-
7
- interface ItemsListProps {
8
- fieldNames: Record<string, string>;
9
- showMap: boolean;
10
- fieldsShown: string[];
11
- filteredListings: Listing[];
12
- loading: boolean;
13
- sortSetting: any;
14
- setSortSetting: (setting: any) => void;
15
- itemLimit: number;
16
- loader: RefObject<HTMLDivElement>;
17
- scrollContainerRef: RefObject<HTMLDivElement>;
18
- itemRefs: any;
19
- selectedListItem: Listing | null;
20
- children: ReactNode;
21
- includeFavorite: boolean;
22
- }
23
-
24
- const ItemsList: React.FC<ItemsListProps> = ({
25
- fieldNames,
26
- showMap,
27
- fieldsShown,
28
- filteredListings,
29
- loading,
30
- sortSetting,
31
- setSortSetting,
32
- itemLimit,
33
- loader,
34
- scrollContainerRef,
35
- includeFavorite = false,
36
- children
37
- }) => {
38
- const [scrollbarWidth, setScrollbarWidth] = useState<number>(0);
39
-
40
- const checkScrollbar = () => {
41
- if (scrollContainerRef.current) {
42
- const { scrollHeight, clientHeight, offsetWidth, clientWidth } = scrollContainerRef.current;
43
- const hasVerticalScrollbar = scrollHeight > clientHeight;
44
- const newScrollbarWidth = hasVerticalScrollbar ? offsetWidth - clientWidth : 0;
45
- setScrollbarWidth(newScrollbarWidth);
46
- }
47
- };
48
-
49
- useEffect(() => {
50
- checkScrollbar();
51
-
52
- const resizeObserver = new ResizeObserver(() => checkScrollbar());
53
- const mutationObserver = new MutationObserver(() => checkScrollbar());
54
-
55
- if (scrollContainerRef.current) {
56
- resizeObserver.observe(scrollContainerRef.current);
57
- mutationObserver.observe(scrollContainerRef.current, { childList: true, subtree: true, attributes: true });
58
- }
59
-
60
- return () => {
61
- if (scrollContainerRef.current) {
62
- resizeObserver.unobserve(scrollContainerRef.current);
63
- mutationObserver.disconnect();
64
- }
65
- };
66
- }, [scrollContainerRef]);
67
-
68
- return (
69
- <div className="hc-relative hc-bg-white md:hc-px-4 hc-flex hc-flex-col">
70
- <div className="hc-flex hc-flex-wrap hc-items-center hc-justify-between hc-gap-4 md:hc-mb-2 hc-p-3 md:hc-p-0 hc-bg-uiAccent/10 md:hc-bg-transparent hc-border-b md:hc-border-none hc-border-uiAccent/20">
71
- <h2 className="hc-text-gray-500 hc-font-semibold hc-text-xs md:hc-text-sm">
72
- {loading && <span>Loading...</span>}
73
- {!loading && <span>{filteredListings.length} results</span>}
74
- </h2>
75
- <div className="hc-block md:hc-hidden">
76
- <Sort
77
- className={''}
78
- fields={fieldsShown}
79
- setSortSetting={setSortSetting}
80
- fieldNames={fieldNames}
81
- />
82
- </div>
83
- </div>
84
- <div>
85
- <Header
86
- className={''}
87
- setSortSetting={setSortSetting}
88
- sortSetting={sortSetting}
89
- fieldsShown={fieldsShown}
90
- fieldNames={fieldNames}
91
- includeFavorite={includeFavorite}
92
- scrollbarWidth={scrollbarWidth}
93
- />
94
- </div>
95
- <div
96
- ref={scrollContainerRef}
97
- className={`
98
- hc-flex-grow hc-overflow-y-auto
99
- ${showMap ? "md:hc-max-h-45vh hc-max-h-[100vh]" : "md:hc-max-h-95vh hc-max-h-[95vh]"}
100
- `}
101
- >
102
- {loading ? (
103
- <div className="hc-flex hc-justify-center hc-items-center hc-pt-20">
104
- <Loading />
105
- </div>
106
- ) : (
107
- children
108
- )}
109
- <div ref={loader} style={{ height: "100px", textAlign: "center" }}>
110
- {filteredListings.length >= itemLimit && <Loading />}
111
- </div>
112
- </div>
113
- </div>
114
- );
115
- };
116
-
117
- export default ItemsList;
1
+ import React, { useEffect, useRef, useState, RefObject, ReactNode } from 'react';
2
+ import Header from '~/components/modules/list/header';
3
+ import Sort from '~/components/modules/filter/sort';
4
+ import Loading from "~/util/loading";
5
+ import { Listing } from '~/types/Listings';
6
+
7
+ interface ItemsListProps {
8
+ fieldNames: Record<string, string>;
9
+ showMap: boolean;
10
+ fieldsShown: string[];
11
+ filteredListings: Listing[];
12
+ loading: boolean;
13
+ sortSetting: any;
14
+ setSortSetting: (setting: any) => void;
15
+ itemLimit: number;
16
+ loader: RefObject<HTMLDivElement>;
17
+ scrollContainerRef: RefObject<HTMLDivElement>;
18
+ itemRefs: any;
19
+ selectedListItem: Listing | null;
20
+ children: ReactNode;
21
+ includeFavorite: boolean;
22
+ }
23
+
24
+ const ItemsList: React.FC<ItemsListProps> = ({
25
+ fieldNames,
26
+ showMap,
27
+ fieldsShown,
28
+ filteredListings,
29
+ loading,
30
+ sortSetting,
31
+ setSortSetting,
32
+ itemLimit,
33
+ loader,
34
+ scrollContainerRef,
35
+ includeFavorite = false,
36
+ children
37
+ }) => {
38
+ const [scrollbarWidth, setScrollbarWidth] = useState<number>(0);
39
+
40
+ const checkScrollbar = () => {
41
+ if (scrollContainerRef.current) {
42
+ const { scrollHeight, clientHeight, offsetWidth, clientWidth } = scrollContainerRef.current;
43
+ const hasVerticalScrollbar = scrollHeight > clientHeight;
44
+ const newScrollbarWidth = hasVerticalScrollbar ? offsetWidth - clientWidth : 0;
45
+ setScrollbarWidth(newScrollbarWidth);
46
+ }
47
+ };
48
+
49
+ useEffect(() => {
50
+ checkScrollbar();
51
+
52
+ const resizeObserver = new ResizeObserver(() => checkScrollbar());
53
+ const mutationObserver = new MutationObserver(() => checkScrollbar());
54
+
55
+ if (scrollContainerRef.current) {
56
+ resizeObserver.observe(scrollContainerRef.current);
57
+ mutationObserver.observe(scrollContainerRef.current, { childList: true, subtree: true, attributes: true });
58
+ }
59
+
60
+ return () => {
61
+ if (scrollContainerRef.current) {
62
+ resizeObserver.unobserve(scrollContainerRef.current);
63
+ mutationObserver.disconnect();
64
+ }
65
+ };
66
+ }, [scrollContainerRef]);
67
+
68
+ return (
69
+ <div className="hc-relative hc-bg-white md:hc-px-4 hc-flex hc-flex-col">
70
+ <div className="hc-flex hc-flex-wrap hc-items-center hc-justify-between hc-gap-4 md:hc-mb-2 hc-p-3 md:hc-p-0 hc-bg-uiAccent/10 md:hc-bg-transparent hc-border-b md:hc-border-none hc-border-uiAccent/20">
71
+ <h2 className="hc-text-gray-500 hc-font-semibold hc-text-xs md:hc-text-sm">
72
+ {loading && <span>Loading...</span>}
73
+ {!loading && <span>{filteredListings.length} results</span>}
74
+ </h2>
75
+ <div className="hc-block md:hc-hidden">
76
+ <Sort
77
+ className={''}
78
+ fields={fieldsShown}
79
+ setSortSetting={setSortSetting}
80
+ fieldNames={fieldNames}
81
+ />
82
+ </div>
83
+ </div>
84
+ <div>
85
+ <Header
86
+ className={''}
87
+ setSortSetting={setSortSetting}
88
+ sortSetting={sortSetting}
89
+ fieldsShown={fieldsShown}
90
+ fieldNames={fieldNames}
91
+ includeFavorite={includeFavorite}
92
+ scrollbarWidth={scrollbarWidth}
93
+ />
94
+ </div>
95
+ <div
96
+ ref={scrollContainerRef}
97
+ className={`
98
+ hc-flex-grow hc-overflow-y-auto
99
+ ${showMap ? "md:hc-max-h-45vh hc-max-h-[100vh]" : "md:hc-max-h-95vh hc-max-h-[95vh]"}
100
+ `}
101
+ >
102
+ {loading ? (
103
+ <div className="hc-flex hc-justify-center hc-items-center hc-pt-20">
104
+ <Loading />
105
+ </div>
106
+ ) : (
107
+ children
108
+ )}
109
+ <div ref={loader} style={{ height: "100px", textAlign: "center" }}>
110
+ {filteredListings.length >= itemLimit && <Loading />}
111
+ </div>
112
+ </div>
113
+ </div>
114
+ );
115
+ };
116
+
117
+ export default ItemsList;