@abcagency/hc-ui-components 1.0.2 → 1.0.4

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.
package/dist/index.js CHANGED
@@ -1190,27 +1190,25 @@ var setStorageObject = function setStorageObject(key, item) {
1190
1190
  };
1191
1191
 
1192
1192
  var updateURLWithFilters = function updateURLWithFilters(filters, location, navigate, query) {
1193
- console.log("attempting to update url");
1194
- console.log(filters);
1195
- console.log(location);
1196
- console.log(navigate);
1197
- console.log(query);
1198
- var searchParams = new URLSearchParams();
1199
-
1200
- // Add the new filters to search params
1193
+ var searchParams = new URLSearchParams(location.search);
1194
+ Object.keys(Object.fromEntries(searchParams)).forEach(function (key) {
1195
+ if (!key.includes('.') && key !== 'query') {
1196
+ searchParams.set(key, searchParams.get(key));
1197
+ }
1198
+ });
1199
+ if (query) {
1200
+ searchParams.set('query', query);
1201
+ }
1201
1202
  Object.keys(filters).forEach(function (category) {
1202
1203
  Object.keys(filters[category]).forEach(function (filter) {
1204
+ var key = "".concat(category, ".").concat(filter);
1203
1205
  if (filters[category][filter]) {
1204
- var key = "".concat(category, ".").concat(filter);
1205
1206
  searchParams.set(key, 'true');
1207
+ } else {
1208
+ searchParams["delete"](key);
1206
1209
  }
1207
1210
  });
1208
1211
  });
1209
-
1210
- // Add the query to search params if it exists
1211
- if (query) {
1212
- searchParams.set('query', query);
1213
- }
1214
1212
  navigate({
1215
1213
  search: searchParams.toString()
1216
1214
  }, {
@@ -1278,7 +1276,6 @@ var hasFiltersInURL = function hasFiltersInURL(location) {
1278
1276
  });
1279
1277
  };
1280
1278
  var hasQueryInUrl = function hasQueryInUrl(location) {
1281
- console.log(location);
1282
1279
  if (!location || !location.search) return;
1283
1280
  var queryParams = parseQueryParams(location.search);
1284
1281
  if (!queryParams) return;
@@ -1301,7 +1298,8 @@ var getQuery = function getQuery(location) {
1301
1298
  var MapListProvider = function MapListProvider(_ref) {
1302
1299
  var children = _ref.children,
1303
1300
  siteConfig = _ref.siteConfig,
1304
- resetFilters = _ref.resetFilters;
1301
+ resetFilters = _ref.resetFilters,
1302
+ navigateToDetails = _ref.navigateToDetails;
1305
1303
  var location = useLocation();
1306
1304
  var navigate = useNavigate();
1307
1305
  var _useState = useState(getStorageObject("listings", [])),
@@ -1545,7 +1543,8 @@ var MapListProvider = function MapListProvider(_ref) {
1545
1543
  setFilterByFavorites: setFilterByFavorites,
1546
1544
  filterByFavorites: filterByFavorites,
1547
1545
  commuteLocation: commuteLocation,
1548
- setCommuteLocation: setCommuteLocation
1546
+ setCommuteLocation: setCommuteLocation,
1547
+ navigateToDetails: navigateToDetails
1549
1548
  }
1550
1549
  }, children);
1551
1550
  };
@@ -3491,6 +3490,7 @@ var _templateObject;
3491
3490
  var ButtonGroupApply = function ButtonGroupApply(_ref) {
3492
3491
  var applyUrl = _ref.applyUrl,
3493
3492
  useDetailsPostMessage = _ref.useDetailsPostMessage,
3493
+ navigateToDetails = _ref.navigateToDetails,
3494
3494
  _ref$applyText = _ref.applyText,
3495
3495
  applyText = _ref$applyText === void 0 ? 'Apply Now' : _ref$applyText,
3496
3496
  detailsUrl = _ref.detailsUrl,
@@ -3516,11 +3516,17 @@ var ButtonGroupApply = function ButtonGroupApply(_ref) {
3516
3516
  };
3517
3517
  return /*#__PURE__*/React.createElement("nav", {
3518
3518
  className: twMerge(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n\t\t\t\tflex flex-row justify-between gap-2 w-full\n\t\t\t\t", "\n\t\t\t"])), className !== null && className !== void 0 ? className : '')
3519
- }, detailsUrl && useDetailsPostMessage !== true && /*#__PURE__*/React.createElement(Button.Anchor, {
3519
+ }, navigateToDetails !== null && /*#__PURE__*/React.createElement(Button.Btn, {
3520
+ onClick: function onClick() {
3521
+ navigateToDetails(itemId);
3522
+ },
3523
+ variant: detailsButtonVariant,
3524
+ size: buttonSize
3525
+ }, detailsText), detailsUrl && useDetailsPostMessage !== true && navigateToDetails === null && /*#__PURE__*/React.createElement(Button.Anchor, {
3520
3526
  href: detailsUrl,
3521
3527
  variant: detailsButtonVariant,
3522
3528
  size: buttonSize
3523
- }, detailsText), useDetailsPostMessage === true && /*#__PURE__*/React.createElement(Button.Btn, {
3529
+ }, detailsText), useDetailsPostMessage === true && navigateToDetails === null && /*#__PURE__*/React.createElement(Button.Btn, {
3524
3530
  onClick: function onClick() {
3525
3531
  window.parent.postMessage({
3526
3532
  itemId: itemId,
@@ -3579,7 +3585,8 @@ var ListingDetails = function ListingDetails(_ref) {
3579
3585
  var _useMap = useMap(),
3580
3586
  travelTime = _useMap.travelTime;
3581
3587
  var _useMapList = useMapList(),
3582
- siteConfig = _useMapList.siteConfig;
3588
+ siteConfig = _useMapList.siteConfig,
3589
+ navigateToDetails = _useMapList.navigateToDetails;
3583
3590
  if (!item) {
3584
3591
  return null;
3585
3592
  }
@@ -3608,6 +3615,7 @@ var ListingDetails = function ListingDetails(_ref) {
3608
3615
  }))
3609
3616
  }, (matchingRecruiter === null || matchingRecruiter === void 0 ? void 0 : matchingRecruiter.firstName) && (matchingRecruiter === null || matchingRecruiter === void 0 ? void 0 : matchingRecruiter.lastName) && /*#__PURE__*/React.createElement(RecruiterDetails.Title, null, "".concat(matchingRecruiter === null || matchingRecruiter === void 0 ? void 0 : matchingRecruiter.firstName, " ").concat(matchingRecruiter === null || matchingRecruiter === void 0 ? void 0 : matchingRecruiter.lastName)), ((_item$details = item.details) === null || _item$details === void 0 || (_item$details = _item$details.recruiter) === null || _item$details === void 0 ? void 0 : _item$details.title) && /*#__PURE__*/React.createElement(RecruiterDetails.Text, null, item.details.recruiter.title)), /*#__PURE__*/React.createElement(ButtonGroupApply, {
3610
3617
  useDetailsPostMessage: siteConfig.useDetailsPostMessage,
3618
+ navigateToDetails: navigateToDetails,
3611
3619
  includeDialog: siteConfig.useApplyDialog,
3612
3620
  internalApplyLink: siteConfig.internalApplyLink,
3613
3621
  companyName: siteConfig.companyName,
@@ -4552,7 +4560,9 @@ var getMapConfig = /*#__PURE__*/function () {
4552
4560
 
4553
4561
  var libraries = ['places'];
4554
4562
  var HireControlMap = function HireControlMap(_ref) {
4555
- var clientToken = _ref.clientToken;
4563
+ var clientToken = _ref.clientToken,
4564
+ _ref$navigateToDetail = _ref.navigateToDetails,
4565
+ navigateToDetails = _ref$navigateToDetail === void 0 ? null : _ref$navigateToDetail;
4556
4566
  var _useState = useState(null),
4557
4567
  _useState2 = _slicedToArray(_useState, 2),
4558
4568
  siteConfig = _useState2[0],
@@ -4602,16 +4612,19 @@ var HireControlMap = function HireControlMap(_ref) {
4602
4612
  }),
4603
4613
  isLoaded = _useLoadScript.isLoaded;
4604
4614
  return /*#__PURE__*/React.createElement(BrowserRouter, null, /*#__PURE__*/React.createElement(RootLayout, null, isLoaded && siteConfig && /*#__PURE__*/React.createElement(HomeBody, {
4605
- siteConfig: siteConfig
4615
+ siteConfig: siteConfig,
4616
+ navigateToDetails: navigateToDetails
4606
4617
  })));
4607
4618
  };
4608
4619
  var HomeBody = function HomeBody(_ref3) {
4609
4620
  var _siteConfig$pointsOfI, _siteConfig$pointsOfI2;
4610
- var siteConfig = _ref3.siteConfig;
4621
+ var siteConfig = _ref3.siteConfig,
4622
+ navigateToDetails = _ref3.navigateToDetails;
4611
4623
  var resetFilters = false;
4612
4624
  return /*#__PURE__*/React.createElement(MapListProvider, {
4613
4625
  siteConfig: siteConfig,
4614
- resetFilters: resetFilters
4626
+ resetFilters: resetFilters,
4627
+ navigateToDetails: navigateToDetails
4615
4628
  }, /*#__PURE__*/React.createElement(MapProvider, {
4616
4629
  resetFilters: resetFilters
4617
4630
  }, /*#__PURE__*/React.createElement(PlacesProvider, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abcagency/hc-ui-components",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -6,6 +6,7 @@ import ApplyDialog from '../dialogs/apply-dialog';
6
6
  const ButtonGroupApply = ({
7
7
  applyUrl,
8
8
  useDetailsPostMessage,
9
+ navigateToDetails,
9
10
  applyText = 'Apply Now',
10
11
  detailsUrl,
11
12
  detailsText = 'View Details',
@@ -35,7 +36,16 @@ const ButtonGroupApply = ({
35
36
  ${className ?? ''}
36
37
  `}
37
38
  >
38
- {detailsUrl && useDetailsPostMessage !== true &&
39
+ {navigateToDetails !== null &&
40
+ <Button.Btn
41
+ onClick={() => { navigateToDetails(itemId)}}
42
+ variant={detailsButtonVariant}
43
+ size={buttonSize}
44
+ >
45
+ {detailsText}
46
+ </Button.Btn>
47
+ }
48
+ {detailsUrl && useDetailsPostMessage !== true && navigateToDetails === null &&
39
49
  <Button.Anchor
40
50
  href={detailsUrl}
41
51
  variant={detailsButtonVariant}
@@ -44,7 +54,7 @@ const ButtonGroupApply = ({
44
54
  {detailsText}
45
55
  </Button.Anchor>
46
56
  }
47
- {useDetailsPostMessage === true &&
57
+ {useDetailsPostMessage === true && navigateToDetails === null &&
48
58
  <Button.Btn
49
59
  onClick={() => { window.parent.postMessage({ itemId: itemId, type:'LISTING_ID' }, '*');}}
50
60
  variant={detailsButtonVariant}
@@ -9,7 +9,7 @@ import CommutePill from "../buttons/commute-pill";
9
9
 
10
10
  const ListingDetails = ({ item, recruiters }) => {
11
11
  const { travelTime } = useMap();
12
- const { siteConfig } = useMapList();
12
+ const { siteConfig, navigateToDetails } = useMapList();
13
13
  if (!item) {
14
14
  return null;
15
15
  }
@@ -65,6 +65,7 @@ const ListingDetails = ({ item, recruiters }) => {
65
65
  )}
66
66
  <ApplyButtonGroup
67
67
  useDetailsPostMessage={siteConfig.useDetailsPostMessage}
68
+ navigateToDetails={navigateToDetails}
68
69
  includeDialog={siteConfig.useApplyDialog}
69
70
  internalApplyLink={siteConfig.internalApplyLink}
70
71
  companyName={siteConfig.companyName}
@@ -24,7 +24,7 @@ const getQuery = (location) => {
24
24
  return query;
25
25
  };
26
26
 
27
- export const MapListProvider = ({ children, siteConfig, resetFilters }) => {
27
+ export const MapListProvider = ({ children, siteConfig, resetFilters, navigateToDetails }) => {
28
28
  const location = useLocation();
29
29
  const navigate = useNavigate();
30
30
  const [allListings, setAllListings] = useState(getStorageObject("listings",[]));
@@ -204,7 +204,8 @@ export const MapListProvider = ({ children, siteConfig, resetFilters }) => {
204
204
  setFilterByFavorites,
205
205
  filterByFavorites,
206
206
  commuteLocation,
207
- setCommuteLocation
207
+ setCommuteLocation,
208
+ navigateToDetails
208
209
  }}>
209
210
  {children}
210
211
  </MapListContext.Provider>
package/src/index.js CHANGED
@@ -15,7 +15,7 @@ import { setClientAuthKey } from '~/clientToken.js';
15
15
 
16
16
  const libraries = ['places'];
17
17
 
18
- export const HireControlMap = ({ clientToken }) => {
18
+ export const HireControlMap = ({ clientToken, navigateToDetails = null }) => {
19
19
  const [siteConfig, setSiteconfig] = useState(null);
20
20
 
21
21
  useEffect(() => {
@@ -51,18 +51,18 @@ export const HireControlMap = ({ clientToken }) => {
51
51
  <Router>
52
52
  <RootLayout>
53
53
  {isLoaded && siteConfig && (
54
- <HomeBody siteConfig={siteConfig} />
54
+ <HomeBody siteConfig={siteConfig} navigateToDetails={navigateToDetails} />
55
55
  )}
56
56
  </RootLayout>
57
57
  </Router>
58
58
  );
59
59
  };
60
60
 
61
- const HomeBody = ({ siteConfig }) => {
61
+ const HomeBody = ({ siteConfig, navigateToDetails }) => {
62
62
  const resetFilters = false;
63
63
 
64
64
  return (
65
- <MapListProvider siteConfig={siteConfig} resetFilters={resetFilters}>
65
+ <MapListProvider siteConfig={siteConfig} resetFilters={resetFilters} navigateToDetails={navigateToDetails}>
66
66
  <MapProvider resetFilters={resetFilters}>
67
67
  <PlacesProvider
68
68
  placeMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}
@@ -1,33 +1,33 @@
1
1
  export const updateURLWithFilters = (filters, location, navigate, query) => {
2
- console.log("attempting to update url");
3
- console.log(filters);
4
- console.log(location);
5
- console.log(navigate);
6
- console.log(query);
7
-
8
- const searchParams = new URLSearchParams();
9
-
10
- // Add the new filters to search params
11
- Object.keys(filters).forEach(category => {
12
- Object.keys(filters[category]).forEach(filter => {
13
- if (filters[category][filter]) {
14
- const key = `${category}.${filter}`;
15
- searchParams.set(key, 'true');
16
- }
17
- });
18
- });
19
-
20
- // Add the query to search params if it exists
21
- if (query) {
22
- searchParams.set('query', query);
23
- }
24
-
25
- navigate({
26
- search: searchParams.toString(),
27
- }, { replace: true });
28
-
29
- notifyParentOfUrlChange();
30
- };
2
+ const searchParams = new URLSearchParams(location.search);
3
+
4
+ Object.keys(Object.fromEntries(searchParams)).forEach(key => {
5
+ if (!key.includes('.') && key !== 'query') {
6
+ searchParams.set(key, searchParams.get(key));
7
+ }
8
+ });
9
+
10
+ if (query) {
11
+ searchParams.set('query', query);
12
+ }
13
+
14
+ Object.keys(filters).forEach(category => {
15
+ Object.keys(filters[category]).forEach(filter => {
16
+ const key = `${category}.${filter}`;
17
+ if (filters[category][filter]) {
18
+ searchParams.set(key, 'true');
19
+ } else {
20
+ searchParams.delete(key);
21
+ }
22
+ });
23
+ });
24
+
25
+ navigate({
26
+ search: searchParams.toString(),
27
+ }, { replace: true });
28
+
29
+ notifyParentOfUrlChange();
30
+ };
31
31
 
32
32
  function notifyParentOfUrlChange() {
33
33
  setTimeout(() => {
@@ -83,7 +83,6 @@ export const hasFiltersInURL = location => {
83
83
  };
84
84
 
85
85
  export const hasQueryInUrl = location => {
86
- console.log(location);
87
86
  if (!location || !location.search) return;
88
87
  const queryParams = parseQueryParams(location.search);
89
88
  if (!queryParams) return;