Skip to content

Commit 2a43e59

Browse files
Fixes bug where child elements all being false still includes object key in className
1 parent 3097158 commit 2a43e59

File tree

3 files changed

+23
-10
lines changed

3 files changed

+23
-10
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "classcat",
33
"description": "0.3 KB JavaScript function for conditionally concatenating CSS class names.",
4-
"version": "1.1.3",
4+
"version": "2.0.0",
55
"main": "dist/classcat.js",
66
"jsnext:main": "src/index.js",
77
"module": "src/index.js",

src/index.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,26 @@ export default function cc(classes, prefix) {
33
var className = ""
44
var type = typeof classes
55

6+
prefix = prefix || ""
7+
8+
if (type === "boolean") {
9+
return classes ? prefix : ""
10+
}
11+
612
if ((classes && type === "string") || type === "number") {
713
return classes
814
}
915

10-
prefix = prefix || " "
11-
1216
if (Array.isArray(classes) && classes.length) {
1317
for (var i = 0, len = classes.length; i < len; i++) {
1418
if ((value = cc(classes[i], prefix))) {
15-
className += (className && prefix) + value
19+
className += (className && " ") + prefix + value
1620
}
1721
}
1822
} else {
1923
for (var i in classes) {
2024
if (classes.hasOwnProperty(i) && (value = classes[i])) {
21-
className +=
22-
(className && prefix) +
23-
i +
24-
(typeof value === "object" ? cc(value, prefix + i) : "")
25+
className += (className && " ") + cc(value, prefix + i)
2526
}
2627
}
2728
}

tests/index.test.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ test("prefix", () => {
4343
quux: false,
4444
baz: true
4545
},
46-
"-"
46+
"prefix-"
4747
)
48-
).toBe("foo-bar-baz")
48+
).toBe("prefix-foo prefix-bar prefix-baz")
4949
})
5050

5151
test("deep", () => {
@@ -72,3 +72,15 @@ test("not owned props", () => {
7272

7373
delete Object.prototype.myFunction
7474
})
75+
76+
test("all child elements false", () => {
77+
expect(
78+
cc([
79+
{
80+
foo: {
81+
"--bar": false
82+
}
83+
}
84+
])
85+
).toBe("")
86+
})

0 commit comments

Comments
 (0)