mirror of
https://github.com/EnixCoda/Gitako.git
synced 2026-03-11 08:54:44 +00:00
refactor(cx): support unsorted params
This commit is contained in:
parent
dedc67266b
commit
16de00272c
1 changed files with 17 additions and 7 deletions
|
|
@ -1,12 +1,22 @@
|
|||
/**
|
||||
* cx('class1', { class2: true, class3: false }) --> 'class1 class2'
|
||||
* @param {string} baseClassNames
|
||||
* @param {object} optionalClassNames
|
||||
* @param {string} baseClassNames
|
||||
* @param {object} optionalClassNames
|
||||
*/
|
||||
export default function cx(baseClassNames = '', optionalClassNames = {}) {
|
||||
return Object.entries(optionalClassNames)
|
||||
.map(([key, value]) => value ? key : '')
|
||||
.filter(_ => _)
|
||||
.concat([baseClassNames])
|
||||
export default function cx(...classNames) {
|
||||
return classNames
|
||||
.filter(Boolean)
|
||||
.map(className => {
|
||||
switch (typeof className) {
|
||||
case 'string':
|
||||
return className
|
||||
case 'object':
|
||||
return cx(
|
||||
...Object.entries(className).map(([key, value]) => (Boolean(value) ? key : null))
|
||||
)
|
||||
default:
|
||||
return ''
|
||||
}
|
||||
})
|
||||
.join(' ')
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue