fix: empty class attribute (#1619)

The above `join` returns an empty `className` JSX attribute when
called on an empty array, setting an empty `class` HTML attribute.

fix #1618
This commit is contained in:
yvanzo 2019-11-05 22:29:36 +01:00 committed by Tanner Linsley
parent 8ca57779a3
commit 4c013ba214
10 changed files with 561 additions and 1753 deletions

View File

@ -2,169 +2,111 @@
exports[`renders a basic table 1`] = `
<DocumentFragment>
<table
class=""
>
<table>
<thead>
<tr
class=""
>
<tr>
<th
class=""
colspan="2"
>
Name
</th>
<th
class=""
colspan="4"
>
Info
</th>
</tr>
<tr
class=""
>
<tr>
<th
class=""
colspan="1"
>
First Name
</th>
<th
class=""
colspan="1"
>
Last Name
</th>
<th
class=""
colspan="1"
>
Age
</th>
<th
class=""
colspan="1"
>
Visits
</th>
<th
class=""
colspan="1"
>
Status
</th>
<th
class=""
colspan="1"
>
Profile Progress
</th>
</tr>
</thead>
<tbody
class=""
>
<tr
class=""
>
<td
class=""
>
<tbody>
<tr>
<td>
tanner
</td>
<td
class=""
>
<td>
linsley
</td>
<td
class=""
>
<td>
29
</td>
<td
class=""
>
<td>
100
</td>
<td
class=""
>
<td>
In Relationship
</td>
<td
class=""
>
<td>
50
</td>
</tr>
<tr
class=""
>
<td
class=""
>
<tr>
<td>
derek
</td>
<td
class=""
>
<td>
perkins
</td>
<td
class=""
>
<td>
40
</td>
<td
class=""
>
<td>
40
</td>
<td
class=""
>
<td>
Single
</td>
<td
class=""
>
<td>
80
</td>
</tr>
<tr
class=""
>
<td
class=""
>
<tr>
<td>
joe
</td>
<td
class=""
>
<td>
bergevin
</td>
<td
class=""
>
<td>
45
</td>
<td
class=""
>
<td>
20
</td>
<td
class=""
>
<td>
Complicated
</td>
<td
class=""
>
<td>
10
</td>
</tr>

View File

@ -74,7 +74,6 @@ exports[`renders a table 1`] = `
</div>
</div>
<div
class=""
style="position: relative; width: 1400px;"
>
<div

View File

@ -73,9 +73,7 @@ exports[`renders a table 1`] = `
</div>
</div>
</div>
<div
class=""
>
<div>
<div
class="row"
style="display: flex; width: 1400px;"

File diff suppressed because it is too large Load Diff

View File

@ -16,87 +16,54 @@ Snapshot Diff:
/>
</th>
<th
class=""
colspan="1"
@@ -117,78 +117,10 @@
</td>
<td
class=""
>
<td>
progress: 50
- </td>
- </tr>
- <tr
- class=""
- >
- <td
- class=""
- >
- <tr>
- <td>
- firstName: derek
- </td>
- <td
- class=""
- >
- <td>
- lastName: perkins
- </td>
- <td
- class=""
- >
- <td>
- age: 40
- </td>
- <td
- class=""
- >
- <td>
- visits: 40
- </td>
- <td
- class=""
- >
- <td>
- status: Single
- </td>
- <td
- class=""
- >
- <td>
- progress: 80
- </td>
- </tr>
- <tr
- class=""
- >
- <td
- class=""
- >
- <tr>
- <td>
- firstName: joe
- </td>
- <td
- class=""
- >
- <td>
- lastName: bergevin
- </td>
- <td
- class=""
- >
- <td>
- age: 45
- </td>
- <td
- class=""
- >
- <td>
- visits: 20
- </td>
- <td
- class=""
- >
- <td>
- status: Complicated
- </td>
- <td
- class=""
- >
- <td>
- progress: 10
</td>
</tr>
<tr
class=""
>
<tr>
`;
exports[`renders a filterable table 2`] = `
@ -115,84 +82,56 @@ Snapshot Diff:
/>
</th>
<th
class=""
colspan="1"
@@ -91,70 +91,70 @@
class=""
>
<td
class=""
>
<td>
- firstName: tanner
+ firstName: derek
</td>
<td
class=""
>
<td>
- lastName: linsley
+ lastName: perkins
</td>
<td
class=""
>
<td>
- age: 29
+ age: 40
</td>
<td
class=""
>
<td>
- visits: 100
+ visits: 40
</td>
<td
class=""
>
<td>
- status: In Relationship
+ status: Single
</td>
<td
class=""
>
<td>
- progress: 50
+ progress: 80
</td>
</tr>
<tr
class=""
>
<td
class=""
>
<tr>
<td>
- firstName: jaylen
+ firstName: joe
</td>
<td
class=""
>
<td>
- lastName: linsley
+ lastName: bergevin
</td>
<td
class=""
>
<td>
- age: 26
+ age: 45
</td>
<td
class=""
>
<td>
- visits: 99
+ visits: 20
</td>
<td
class=""
>
<td>
- status: In Relationship
+ status: Complicated
</td>
<td
class=""
>
<td>
- progress: 70
+ progress: 10
</td>

View File

@ -7,7 +7,6 @@ Snapshot Diff:
@@ -29,13 +29,13 @@
<span
class=""
style="cursor: pointer;"
title="Toggle GroupBy"
>
@ -18,7 +17,6 @@ Snapshot Diff:
+ Last Name
</th>
<th
class=""
colspan="1"
>
@@ -44,11 +44,11 @@
@ -31,93 +29,62 @@ Snapshot Diff:
+ First Name
</th>
<th
class=""
colspan="1"
>
@@ -109,138 +109,119 @@
class=""
>
<td
class=""
>
<td>
- firstName: tanner
- </td>
- <td
- class=""
+ <span
+ style="cursor: pointer;"
>
- lastName: linsley
- </td>
- <td
- class=""
- >
- <td>
- age: 29
- </td>
- <td
- class=""
- >
- <td>
- visits: 100
- </td>
- <td
- class=""
- >
- <td>
- status: In Relationship
+ 👉
+ </span>
+ lastName: linsley (2)
</td>
<td
class=""
>
<td>
- progress: 50
- </td>
- </tr>
- <tr
- class=""
- >
- <td
- class=""
- >
- <tr>
- <td>
- firstName: derek
- </td>
- <td
- class=""
- >
- <td>
- lastName: perkins
+ 2 Names
</td>
<td
class=""
>
<td>
- age: 40
+ 27.5 (avg)
</td>
<td
class=""
>
<td>
- visits: 40
+ 199 (total)
</td>
<td
class=""
>
<td>
- status: Single
+ status: null
</td>
<td
class=""
>
<td>
- progress: 80
+ 60 (med)
</td>
</tr>
<tr
class=""
>
<td
class=""
>
<tr>
<td>
- firstName: joe
+ <span
+ style="cursor: pointer;"
@ -126,43 +93,29 @@ Snapshot Diff:
+ </span>
+ lastName: perkins (1)
</td>
<td
class=""
>
<td>
- lastName: bergevin
+ 1 Names
</td>
<td
class=""
>
<td>
- age: 45
+ 40 (avg)
</td>
<td
class=""
>
<td>
- visits: 20
+ 40 (total)
</td>
<td
class=""
>
<td>
- status: Complicated
+ status: null
</td>
<td
class=""
>
<td>
- progress: 10
+ 80 (med)
</td>
</tr>
<tr
class=""
>
<td
class=""
>
<tr>
<td>
- firstName: jaylen
+ <span
+ style="cursor: pointer;"
@ -171,33 +124,23 @@ Snapshot Diff:
+ </span>
+ lastName: bergevin (1)
</td>
<td
class=""
>
<td>
- lastName: linsley
+ 1 Names
</td>
<td
class=""
>
<td>
- age: 26
+ 45 (avg)
</td>
<td
class=""
>
<td>
- visits: 99
+ 20 (total)
</td>
<td
class=""
>
<td>
- status: In Relationship
+ status: null
</td>
<td
class=""
>
<td>
- progress: 70
+ 10 (med)
</td>
@ -213,31 +156,25 @@ Snapshot Diff:
+ Second value
@@ -6,17 +6,29 @@
<tr
class=""
>
<tr>
<th
class=""
- colspan="2"
+ colspan="1"
>
Name
</th>
<th
class=""
- colspan="4"
+ colspan="1"
+ >
+ Info
+ </th>
+ <th
+ class=""
+ colspan="1"
+ >
+ Name
+ </th>
+ <th
+ class=""
+ colspan="3"
>
Info
@ -246,7 +183,6 @@ Snapshot Diff:
<tr
@@ -42,13 +54,13 @@
<span
class=""
style="cursor: pointer;"
title="Toggle GroupBy"
>
@ -257,7 +193,6 @@ Snapshot Diff:
+ Visits
</th>
<th
class=""
colspan="1"
>
@@ -57,11 +69,11 @@
@ -270,7 +205,6 @@ Snapshot Diff:
+ First Name
</th>
<th
class=""
colspan="1"
>
@@ -70,11 +82,11 @@
@ -283,7 +217,6 @@ Snapshot Diff:
+ Age
</th>
<th
class=""
colspan="1"
>
@@ -116,10 +128,13 @@
@ -293,79 +226,54 @@ Snapshot Diff:
lastName: linsley (2)
</td>
+ <td
+ class=""
+ />
<td
class=""
>
<td>
2 Names
</td>
@@ -129,15 +144,10 @@
27.5 (avg)
</td>
<td
class=""
>
<td>
- 199 (total)
- </td>
- <td
- class=""
- >
- <td>
status: null
</td>
<td
class=""
>
<td>
@@ -157,22 +167,20 @@
</span>
lastName: perkins (1)
</td>
<td
class=""
- >
<td>
- 1 Names
- </td>
+ />
<td
class=""
>
<td>
- 40 (avg)
+ 1 Names
</td>
<td
class=""
>
<td>
- 40 (total)
+ 40 (avg)
</td>
<td
class=""
>
<td>
status: null
@@ -196,22 +204,20 @@
</span>
lastName: bergevin (1)
</td>
<td
class=""
- >
<td>
- 1 Names
- </td>
+ />
<td
class=""
>
<td>
- 45 (avg)
+ 1 Names
</td>
<td
class=""
>
<td>
- 20 (total)
+ 45 (avg)
</td>
<td
class=""
>
<td>
status: null
`;

View File

@ -6,145 +6,93 @@ Snapshot Diff:
+ Second value
@@ -67,11 +67,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 21
+ tanner 31
</td>
<td
class=""
>
<td>
linsley
@@ -101,11 +101,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 22
+ tanner 32
</td>
<td
class=""
>
<td>
linsley
@@ -135,11 +135,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 23
+ tanner 33
</td>
<td
class=""
>
<td>
linsley
@@ -169,11 +169,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 24
+ tanner 34
</td>
<td
class=""
>
<td>
linsley
@@ -203,11 +203,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 25
+ tanner 35
</td>
<td
class=""
>
<td>
linsley
@@ -237,11 +237,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 26
+ tanner 36
</td>
<td
class=""
>
<td>
linsley
@@ -271,11 +271,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 27
+ tanner 37
</td>
<td
class=""
>
<td>
linsley
@@ -305,11 +305,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 28
+ tanner 38
</td>
<td
class=""
>
<td>
linsley
@@ -339,11 +339,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 29
+ tanner 39
</td>
<td
class=""
>
<td>
linsley
@@ -373,11 +373,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 30
+ tanner 40
</td>
<td
class=""
>
<td>
linsley
@@ -425,20 +425,20 @@
</button>
<span>
Page
<strong>
- 3 of 10
+ 4 of 10
</strong>
</span>
<span>
| Go to page:
@ -155,7 +103,6 @@ Snapshot Diff:
+ value="4"
/>
</span>
<select>
<option
`;
@ -166,145 +113,93 @@ Snapshot Diff:
+ Second value
@@ -67,11 +67,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 31
+ tanner 41
</td>
<td
class=""
>
<td>
linsley
@@ -101,11 +101,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 32
+ tanner 42
</td>
<td
class=""
>
<td>
linsley
@@ -135,11 +135,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 33
+ tanner 43
</td>
<td
class=""
>
<td>
linsley
@@ -169,11 +169,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 34
+ tanner 44
</td>
<td
class=""
>
<td>
linsley
@@ -203,11 +203,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 35
+ tanner 45
</td>
<td
class=""
>
<td>
linsley
@@ -237,11 +237,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 36
+ tanner 46
</td>
<td
class=""
>
<td>
linsley
@@ -271,11 +271,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 37
+ tanner 47
</td>
<td
class=""
>
<td>
linsley
@@ -305,11 +305,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 38
+ tanner 48
</td>
<td
class=""
>
<td>
linsley
@@ -339,11 +339,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 39
+ tanner 49
</td>
<td
class=""
>
<td>
linsley
@@ -373,11 +373,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 40
+ tanner 50
</td>
<td
class=""
>
<td>
linsley
@@ -425,20 +425,20 @@
</button>
<span>
Page
<strong>
- 4 of 10
+ 5 of 10
</strong>
</span>
<span>
| Go to page:
@ -315,7 +210,6 @@ Snapshot Diff:
+ value="5"
/>
</span>
<select>
<option
`;
@ -326,162 +220,107 @@ Snapshot Diff:
+ Second value
@@ -67,11 +67,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 41
+ tanner 91
</td>
<td
class=""
>
<td>
linsley
@@ -101,11 +101,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 42
+ tanner 92
</td>
<td
class=""
>
<td>
linsley
@@ -135,11 +135,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 43
+ tanner 93
</td>
<td
class=""
>
<td>
linsley
@@ -169,11 +169,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 44
+ tanner 94
</td>
<td
class=""
>
<td>
linsley
@@ -203,11 +203,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 45
+ tanner 95
</td>
<td
class=""
>
<td>
linsley
@@ -237,11 +237,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 46
+ tanner 96
</td>
<td
class=""
>
<td>
linsley
@@ -271,11 +271,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 47
+ tanner 97
</td>
<td
class=""
>
<td>
linsley
@@ -305,11 +305,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 48
+ tanner 98
</td>
<td
class=""
>
<td>
linsley
@@ -339,11 +339,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 49
+ tanner 99
</td>
<td
class=""
>
<td>
linsley
@@ -373,11 +373,11 @@
class=""
>
<td
class=""
>
<td>
- tanner 50
+ tanner 100
</td>
<td
class=""
>
<td>
linsley
@@ -414,31 +414,35 @@
<button>
&lt;
</button>
- <button>
+ <button
+ disabled=""
+ >
&gt;
</button>
- <button>
+ <button
+ disabled=""
+ >
&gt;&gt;
</button>
<span>
Page
<strong>
- 5 of 10
+ 10 of 10
</strong>
</span>
<span>
| Go to page:
@ -492,7 +331,6 @@ Snapshot Diff:
+ value="10"
/>
</span>
<select>
<option
`;

View File

@ -17,125 +17,83 @@ Snapshot Diff:
+ </span>
</th>
<th
class=""
colspan="1"
style="cursor: pointer;"
@@ -89,104 +91,104 @@
class=""
>
<td
class=""
>
<td>
- firstName: tanner
+ firstName: derek
</td>
<td
class=""
>
<td>
- lastName: linsley
+ lastName: perkins
</td>
<td
class=""
>
<td>
- age: 29
+ age: 40
</td>
<td
class=""
>
<td>
- visits: 100
+ visits: 40
</td>
<td
class=""
>
<td>
- status: In Relationship
+ status: Single
</td>
<td
class=""
>
<td>
- progress: 50
+ progress: 80
</td>
</tr>
<tr
class=""
>
<td
class=""
>
<tr>
<td>
- firstName: derek
+ firstName: joe
</td>
<td
class=""
>
<td>
- lastName: perkins
+ lastName: bergevin
</td>
<td
class=""
>
<td>
- age: 40
+ age: 45
</td>
<td
class=""
>
<td>
- visits: 40
+ visits: 20
</td>
<td
class=""
>
<td>
- status: Single
+ status: Complicated
</td>
<td
class=""
>
<td>
- progress: 80
+ progress: 10
</td>
</tr>
<tr
class=""
>
<td
class=""
>
<tr>
<td>
- firstName: joe
+ firstName: tanner
</td>
<td
class=""
>
<td>
- lastName: bergevin
+ lastName: linsley
</td>
<td
class=""
>
<td>
- age: 45
+ age: 29
</td>
<td
class=""
>
<td>
- visits: 20
+ visits: 100
</td>
<td
class=""
>
<td>
- status: Complicated
+ status: In Relationship
</td>
<td
class=""
>
<td>
- progress: 10
+ progress: 50
</td>
@ -161,87 +119,58 @@ Snapshot Diff:
</span>
</th>
<th
class=""
colspan="1"
@@ -91,36 +91,36 @@
class=""
>
<td
class=""
>
<td>
- firstName: derek
+ firstName: tanner
</td>
<td
class=""
>
<td>
- lastName: perkins
+ lastName: linsley
</td>
<td
class=""
>
<td>
- age: 40
+ age: 29
</td>
<td
class=""
>
<td>
- visits: 40
+ visits: 100
</td>
<td
class=""
>
<td>
- status: Single
+ status: In Relationship
</td>
<td
class=""
>
<td>
- progress: 80
+ progress: 50
</td>
</tr>
<tr
class=""
>
<tr>
@@ -159,36 +159,36 @@
class=""
>
<td
class=""
>
<td>
- firstName: tanner
+ firstName: derek
</td>
<td
class=""
>
<td>
- lastName: linsley
+ lastName: perkins
</td>
<td
class=""
>
<td>
- age: 29
+ age: 40
</td>
<td
class=""
>
<td>
- visits: 100
+ visits: 40
</td>
<td
class=""
>
<td>
- status: In Relationship
+ status: Single
</td>
<td
class=""
>
<td>
- progress: 50
+ progress: 80
</td>

View File

@ -316,6 +316,9 @@ export const mergeProps = (...groups) => {
className: [props.className, className].filter(Boolean).join(' '),
}
})
if (props.className === '') {
delete props.className
}
return props
}