1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/src/renderer/utils/cssNames.ts
Panu Horsmalahti dcf253e7d5
Add eslint rule padding-line-between-statements (#1593)
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-12-02 09:55:52 +02:00

25 lines
640 B
TypeScript
Executable File

// Helper for combining css classes inside components
export type IClassName = string | string[] | IClassNameMap;
export type IClassNameMap = {
[className: string]: boolean | any;
};
export function cssNames(...args: IClassName[]): string {
const map: IClassNameMap = {};
args.forEach(className => {
if (typeof className === "string" || Array.isArray(className)) {
[].concat(className).forEach(name => map[name] = true);
}
else {
Object.assign(map, className);
}
});
return Object.entries(map)
.filter(([, isActive]) => !!isActive)
.map(([className]) => className.trim())
.join(" ");
}