@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 +37 -24
- package/package.json +1 -1
- package/src/components/modules/buttons/button-group-apply.js +12 -2
- package/src/components/modules/jobListing/listing-details.js +2 -1
- package/src/contexts/mapListContext.js +3 -2
- package/src/index.js +4 -4
- package/src/util/urlFilterUtil.js +29 -30
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
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
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
|
-
},
|
|
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
|
@@ -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
|
-
{
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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;
|