mirror of
https://github.com/tenrok/OverlayScrollbars.git
synced 2026-05-26 03:44:06 +03:00
refine browser testing
This commit is contained in:
@@ -1,17 +1,24 @@
|
||||
function isEvent(obj: any): obj is Event {
|
||||
return obj instanceof Event || !!obj.target;
|
||||
}
|
||||
|
||||
// eslint-disable-next-line
|
||||
const noop = <T>(): T => {
|
||||
return {} as T;
|
||||
};
|
||||
|
||||
const getSelectOptions = (selectElement: HTMLSelectElement) => Array.from(selectElement.options).map((option) => option.value);
|
||||
|
||||
export const generateSelectCallback = (targetElm: HTMLElement | null) => (event: Event) => {
|
||||
const target = event.target as HTMLSelectElement;
|
||||
const selectedOption = target.value;
|
||||
const selectOptions = getSelectOptions(target);
|
||||
export const generateSelectCallback = (targetElm: HTMLElement | null) => (event: Event | HTMLSelectElement | null) => {
|
||||
const target: HTMLSelectElement | null = isEvent(event) ? (event.target as HTMLSelectElement) : event;
|
||||
if (target) {
|
||||
const selectedOption = target.value;
|
||||
const selectOptions = getSelectOptions(target);
|
||||
|
||||
if (targetElm) {
|
||||
targetElm.classList.remove(...selectOptions);
|
||||
targetElm.classList.add(selectedOption);
|
||||
if (targetElm) {
|
||||
targetElm.classList.remove(...selectOptions);
|
||||
targetElm.classList.add(selectedOption);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
const getTestResultElm = () => document.getElementById('testResult');
|
||||
|
||||
export const setTestResult = (result: boolean | null) => {
|
||||
const elm = getTestResultElm();
|
||||
if (elm) {
|
||||
if (typeof result === 'boolean') {
|
||||
elm.setAttribute('class', result ? 'passed' : 'failed');
|
||||
} else {
|
||||
elm.removeAttribute('class');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export const testPassed = (): boolean => {
|
||||
const elm = getTestResultElm();
|
||||
return elm ? elm.getAttribute('class') === 'passed' : false;
|
||||
};
|
||||
Reference in New Issue
Block a user