@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
25 lines (24 loc) • 794 B
JavaScript
export function mergeClasses(classesFromUseStyles, classesOverrides, cx) {
if (!(classesOverrides instanceof Object)) {
return classesFromUseStyles;
}
const overrideKeys = Object.keys(classesOverrides);
if (overrideKeys.length === 0) {
return classesFromUseStyles;
}
const out = {};
for (const ruleName of Object.keys(classesFromUseStyles)) {
out[ruleName] = cx(classesFromUseStyles[ruleName], classesOverrides[ruleName]);
}
for (const ruleName of overrideKeys) {
if (ruleName in classesFromUseStyles) {
continue;
}
const className = classesOverrides[ruleName];
if (typeof className !== 'string') {
continue;
}
out[ruleName] = className;
}
return out;
}