@zohodesk/hooks
Version:
Unified Component Library - Hooks
23 lines (21 loc) • 744 B
JavaScript
export default function defaultResolve(elRef, query, matchedQuery) {
let addClassNames = [];
let removeClassNames = [];
Object.keys(matchedQuery).forEach(queryName => {
let queryClassName = (query[queryName] ? query[queryName].className : null) || "";
if (!queryClassName) {
return;
}
if (matchedQuery[queryName] === true) {
if (!elRef.classList.contains(queryClassName)) {
addClassNames.push(queryClassName);
}
} else {
if (elRef.classList.contains(queryClassName)) {
removeClassNames.push(queryClassName);
}
}
});
removeClassNames.length > 0 && elRef.classList.remove(...removeClassNames);
addClassNames.length > 0 && elRef.classList.add(...addClassNames);
}