@brizy/ui
Version:
React elements in Brizy style
19 lines (18 loc) • 813 B
JavaScript
import classNameFN from "classnames";
import { BRZ_PREFIX_V2 } from "./constants";
function parseClassNames(arg) {
if (typeof arg === "string" && !arg.startsWith(BRZ_PREFIX_V2)) {
return `${BRZ_PREFIX_V2}-${arg}`;
}
if (Array.isArray(arg)) {
return arg.map(parseClassNames);
}
if (typeof arg === "object" && arg !== null) {
return Object.entries(arg).reduce((acc, [key, value]) => {
const prefixedKey = key.startsWith(BRZ_PREFIX_V2) ? key : `${BRZ_PREFIX_V2}-${key}`;
return Object.assign(Object.assign({}, acc), { [prefixedKey]: value });
}, {});
}
return arg;
}
export const alphaClassNames = (...classNameWithoutPrefix) => (...classNameToPrefix) => classNameFN(classNameWithoutPrefix, classNameToPrefix.map(parseClassNames));