digitransit-ui/app/util/configureCountry.js
Vesa Meskanen 34b2dda0ec
Update app/util/configureCountry.js
Co-authored-by: Joel Lappalainen <joel.lappalainen@cgi.com>
2023-08-15 10:40:24 +03:00

34 lines
1.2 KiB
JavaScript

/* eslint-disable no-param-reassign */
export const configureCountry = (config, selectedCountries) => {
if (config.mainMenu.countrySelection?.length > 0) {
const keys = Object.keys(selectedCountries);
let boundaries = config.additionalSearchParams.default['boundary.country'];
let feedIds = [...config.feedIds];
keys.forEach(key => {
const additionalFeedIds = config.additionalFeedIds[key];
if (selectedCountries[key]) {
// Country selected
if (config.additionalSearchParams[key]['boundary.country']) {
boundaries += ',';
}
boundaries += config.additionalSearchParams[key]['boundary.country'];
if (additionalFeedIds.every(id => feedIds.indexOf(id) < 0)) {
feedIds = [...feedIds, ...additionalFeedIds];
}
} else {
// Country not selected
feedIds = [...feedIds].filter(id => additionalFeedIds.indexOf(id) < 0);
}
});
if (!config.searchParams) {
config.searchParams = {};
}
config.searchParams = {
...config.searchParams,
'boundary.country': boundaries,
};
config.feedIds = feedIds;
}
};
export default configureCountry;