Gitako/src/utils/cx.ts
2019-11-09 01:53:59 +08:00

18 lines
463 B
TypeScript

/**
* cx('class1', { class2: true, class3: false }) --> 'class1 class2'
*/
export function cx(...classNames: any[]): string {
return classNames
.filter(Boolean)
.map(className => {
switch (typeof className) {
case 'string':
return className
case 'object':
return cx(...Object.entries(className).map(([key, value]) => (value ? key : null)))
default:
return ''
}
})
.join(' ')
}