Skip to content

Commit 9b75cbb

Browse files
Transform XLink attribute names
1 parent 20427d9 commit 9b75cbb

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/index.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ let shallowRender = (vnode, context) => renderToString(vnode, context, SHALLOW);
4949

5050

5151
/** The default export is an alias of `render()`. */
52-
export default function renderToString(vnode, context, opts, inner) {
52+
export default function renderToString(vnode, context, opts, inner, isSvgMode) {
5353
let { nodeName, attributes, children } = vnode || EMPTY,
5454
isComponent = false;
5555
context = context || {};
@@ -117,6 +117,9 @@ export default function renderToString(vnode, context, opts, inner) {
117117
if (attributes['class']) continue;
118118
name = 'class';
119119
}
120+
else if (isSvgMode && name.match(/^xlink\:?(.+)/)) {
121+
name = name.toLowerCase().replace(/^xlink\:?(.+)/, 'xlink:$1')
122+
}
120123

121124
if (name==='class' && v && typeof v==='object') {
122125
v = hashToClassName(v);
@@ -169,7 +172,7 @@ export default function renderToString(vnode, context, opts, inner) {
169172
for (let i=0; i<len; i++) {
170173
let child = children[i];
171174
if (!falsey(child)) {
172-
let ret = renderToString(child, context, opts, true);
175+
let ret = renderToString(child, context, opts, true, nodeName==='svg');
173176
if (!hasLarge && pretty && isLargeString(ret)) hasLarge = true;
174177
pieces.push(ret);
175178
}

0 commit comments

Comments
 (0)