1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/dashboard/client/utils/cssNames.ts
Jari Kolehmainen 1d0815abd2
Lens app source code (#119)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-03-15 09:52:02 +02:00

23 lines
647 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(([className, isActive]) => !!isActive)
.map(([className]) => className.trim())
.join(' ');
}