45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
export function changeTheme(element: Element, theme: string) {
|
|
const select = element!.querySelector('.cg-select');
|
|
const caret = element!.querySelector('.caret');
|
|
const list = element!.querySelector('ul.list');
|
|
const search = element!.querySelector('.inputSearch');
|
|
const path = element.querySelectorAll('.pathWhite');
|
|
const nativeSelect = element.querySelector('.nativeSelect');
|
|
|
|
select!.classList.remove('classicSelect');
|
|
list!.classList.remove('classicList');
|
|
path.forEach((elem) => {
|
|
elem.classList.remove('pathBlack');
|
|
elem.classList.remove('pathWhite');
|
|
});
|
|
|
|
switch (theme.toLowerCase()) {
|
|
case 'dark':
|
|
select!.classList.add('selectDark');
|
|
list!.classList.add('listDark');
|
|
nativeSelect?.classList.add('listDark');
|
|
path.forEach((elem) => {
|
|
elem.classList.add('pathWhite');
|
|
});
|
|
break;
|
|
case 'white':
|
|
select!.classList.add('selectWhite');
|
|
caret!.classList.add('caretWhite');
|
|
list!.classList.add('listWhite');
|
|
nativeSelect?.classList.add('listWhite');
|
|
path.forEach((elem) => {
|
|
elem.classList.add('pathBlack');
|
|
});
|
|
|
|
if (search!) {
|
|
search!.classList.add('inputWhite');
|
|
}
|
|
break;
|
|
|
|
default:
|
|
select!.classList.add('classicSelect');
|
|
list!.classList.add('classicList');
|
|
break;
|
|
}
|
|
}
|