1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-25 11:28:51 +01:00
metamask-extension/shared/lib/switch-direction.js
Filip Sekulic 6e13524bcd
Remove related UI code from the app dir (#15384)
Co-authored-by: metamaskbot <metamaskbot@users.noreply.github.com>
Co-authored-by: Brad Decker <bhdecker84@gmail.com>
Co-authored-by: Akintayo A. Olusegun <akintayo.segun@gmail.com>
2022-09-16 14:05:21 -05:00

37 lines
1.0 KiB
JavaScript

/**
* Switch the CSS stylesheet used between 'rtl' and 'ltr'
*
* @param {('ltr' | 'rtl' | 'auto')} direction - Text direction, either left-to-right (ltr) or right-to-left (rtl)
* @returns {Promise<void>}
*/
const switchDirection = async (direction) => {
if (direction === 'auto') {
// eslint-disable-next-line no-param-reassign
direction = 'ltr';
}
let updatedLink;
Array.from(document.getElementsByTagName('link'))
.filter((link) => link.rel === 'stylesheet')
.forEach((link) => {
if (link.title === direction && link.disabled) {
link.disabled = false;
updatedLink = link;
} else if (link.title !== direction && !link.disabled) {
link.disabled = true;
}
});
if (updatedLink) {
return new Promise((resolve, reject) => {
updatedLink.onload = () => {
resolve();
};
updatedLink.onerror = () =>
reject(new Error(`Failed to load '${direction}' stylesheet`));
});
}
return undefined;
};
export default switchDirection;