File tree Expand file tree Collapse file tree 3 files changed +12
-4
lines changed
Expand file tree Collapse file tree 3 files changed +12
-4
lines changed Original file line number Diff line number Diff line change @@ -130,10 +130,10 @@ export class JSXNode implements HtmlEscaped {
130130 buffer [ 0 ] += ` ${ key } ="`
131131 escapeToBuffer ( v , buffer )
132132 buffer [ 0 ] += '"'
133- } else if ( typeof v === 'number' ) {
134- buffer [ 0 ] += ` ${ key } ="${ v } "`
135133 } else if ( v === null || v === undefined ) {
136134 // Do nothing
135+ } else if ( typeof v === 'number' || ( v as HtmlEscaped ) . isEscaped ) {
136+ buffer [ 0 ] += ` ${ key } ="${ v } "`
137137 } else if ( typeof v === 'boolean' && booleanAttributes . includes ( key ) ) {
138138 if ( v ) {
139139 buffer [ 0 ] += ` ${ key } =""`
Original file line number Diff line number Diff line change @@ -365,6 +365,14 @@ describe('render to string', () => {
365365 expect ( template . toString ( ) ) . toBe ( '<h1 style="color:red;font-size:small">Hello</h1>' )
366366 } )
367367 } )
368+
369+ describe ( 'HtmlEscaped in props' , ( ) => {
370+ it ( 'should not be double-escaped' , ( ) => {
371+ const escapedString = html `${ '<html-escaped-string>' } `
372+ const template = < span data-text = { escapedString } > Hello</ span >
373+ expect ( template . toString ( ) ) . toBe ( '<span data-text="<html-escaped-string>">Hello</span>' )
374+ } )
375+ } )
368376} )
369377
370378describe ( 'memo' , ( ) => {
Original file line number Diff line number Diff line change @@ -130,10 +130,10 @@ export class JSXNode implements HtmlEscaped {
130130 buffer [ 0 ] += ` ${ key } ="`
131131 escapeToBuffer ( v , buffer )
132132 buffer [ 0 ] += '"'
133- } else if ( typeof v === 'number' ) {
134- buffer [ 0 ] += ` ${ key } ="${ v } "`
135133 } else if ( v === null || v === undefined ) {
136134 // Do nothing
135+ } else if ( typeof v === 'number' || ( v as HtmlEscaped ) . isEscaped ) {
136+ buffer [ 0 ] += ` ${ key } ="${ v } "`
137137 } else if ( typeof v === 'boolean' && booleanAttributes . includes ( key ) ) {
138138 if ( v ) {
139139 buffer [ 0 ] += ` ${ key } =""`
You can’t perform that action at this time.
0 commit comments