fonteva-design-guide
Version:
## Dev, Build and Test
48 lines (40 loc) • 1.5 kB
JavaScript
import Id from '@salesforce/user/Id';
import { updateRecord } from 'lightning/uiRecordApi';
const authenticatedUser = (userId, contactId, language) => {
updateRecord({
fields: {
Id: userId,
LanguageLocaleKey: language
}
})
.then(user =>
contactId
? updateRecord({
fields: {
Id: contactId,
OrderApi__Preferred_Language__c: language
}
})
: null
)
.then(() => updateLangInURL(language))
.catch(error => console.log(error));
};
const guestUser = (value) => updateLangInURL(value);
let updateLangInURL = (language) => {
let languageCode = language.split('-')[0].replace(' ', '');
let url = window.location.href;
// replace old language UrlParam w/ new value
const parts = window.location.search
.split('&')
.map(keyValue => (keyValue.includes('language=') ? `language=${languageCode.toLowerCase()}` : keyValue));
// add language param if it doesn't exist
if (!url.includes('language=')) {
parts.push(`language=${languageCode.toLowerCase()}`);
} else if (!parts[0].includes('?')) {
// prepend question-mark if necessary
parts[0] = '?' + parts[0];
}
window.location.search = parts.join('&');
};
export { authenticatedUser, guestUser };