Skip to content

Commit 121eb32

Browse files
committedSep 27, 2022
fix(ssr): respect case when rendering dynamic attrs on svg
fix #6755
1 parent 6958ec1 commit 121eb32

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed
 

‎packages/server-renderer/__tests__/ssrRenderAttrs.spec.ts

+11
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,17 @@ describe('ssr: renderAttrs', () => {
9898
)
9999
).toBe(` fooBar="ok"`)
100100
})
101+
102+
test('preserve name on svg elements', () => {
103+
expect(
104+
ssrRenderAttrs(
105+
{
106+
viewBox: 'foo'
107+
},
108+
'svg'
109+
)
110+
).toBe(` viewBox="foo"`)
111+
})
101112
})
102113

103114
describe('ssr: renderAttr', () => {

‎packages/server-renderer/src/helpers/ssrRenderAttrs.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { escapeHtml, stringifyStyle } from '@vue/shared'
1+
import { escapeHtml, isSVGTag, stringifyStyle } from '@vue/shared'
22
import {
33
normalizeClass,
44
normalizeStyle,
@@ -51,8 +51,8 @@ export function ssrRenderDynamicAttr(
5151
return ``
5252
}
5353
const attrKey =
54-
tag && tag.indexOf('-') > 0
55-
? key // preserve raw name on custom elements
54+
tag && (tag.indexOf('-') > 0 || isSVGTag(tag))
55+
? key // preserve raw name on custom elements and svg
5656
: propsToAttrMap[key] || key.toLowerCase()
5757
if (isBooleanAttr(attrKey)) {
5858
return includeBooleanAttr(value) ? ` ${attrKey}` : ``

0 commit comments

Comments
 (0)
Please sign in to comment.