Skip to content

Commit a111d56

Browse files
nathancahilldevelopit
authored andcommitted
support the other special prop (#7)
1 parent 8767d17 commit a111d56

2 files changed

Lines changed: 8 additions & 4 deletions

File tree

src/vhtml.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@ import emptyTags from './empty-tags';
33
// escape an attribute
44
let esc = str => String(str).replace(/[&<>"']/g, s=>`&${map[s]};`);
55
let map = {'&':'amp','<':'lt','>':'gt','"':'quot',"'":'apos'};
6+
let DOMAttributeNames = {
7+
className: 'class',
8+
htmlFor: 'for'
9+
};
610

711
let sanitized = {};
812

@@ -23,7 +27,7 @@ export default function h(name, attrs) {
2327
let s = `<${name}`;
2428
if (attrs) for (let i in attrs) {
2529
if (attrs[i]!==false && attrs[i]!=null) {
26-
s += ` ${i === 'className' ? 'class' : esc(i)}="${esc(attrs[i])}"`;
30+
s += ` ${DOMAttributeNames[i] ? DOMAttributeNames[i] : esc(i)}="${esc(attrs[i])}"`;
2731
}
2832
}
2933

test/vhtml.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,11 +158,11 @@ describe('vhtml', () => {
158158
);
159159
});
160160

161-
it('should handle className as class', () => {
161+
it('should handle special prop names', () => {
162162
expect(
163-
<div className="my-class" />
163+
<div className="my-class" htmlFor="id" />
164164
).to.equal(
165-
'<div class="my-class"></div>'
165+
'<div class="my-class" for="id"></div>'
166166
);
167167
});
168168
});

0 commit comments

Comments
 (0)