@@ -67,28 +67,32 @@ function domToReact(nodes, options) {
67
67
68
68
children = null ;
69
69
70
- if ( node . type === 'script' || node . type === 'style' ) {
71
- // prevent text in <script> or <style> from being escaped
72
- // https://facebook.github.io/react/tips/dangerously-set-inner-html.html
73
- if ( node . children [ 0 ] ) {
74
- props . dangerouslySetInnerHTML = {
75
- __html : node . children [ 0 ] . data
76
- } ;
77
- }
78
- } else if ( node . type === 'tag' ) {
79
- // setting textarea value in children is an antipattern in React
80
- // https://reactjs.org/docs/forms.html#the-textarea-tag
81
- if ( node . name === 'textarea' && node . children [ 0 ] ) {
82
- props . defaultValue = node . children [ 0 ] . data ;
83
-
84
- // continue recursion of creating React elements (if applicable)
85
- } else if ( node . children && node . children . length ) {
86
- children = domToReact ( node . children , options ) ;
87
- }
70
+ switch ( node . type ) {
71
+ case 'script' :
72
+ case 'style' :
73
+ // prevent text in <script> or <style> from being escaped
74
+ // https://reactjs.org/docs/dom-elements.html#dangerouslysetinnerhtml
75
+ if ( node . children [ 0 ] ) {
76
+ props . dangerouslySetInnerHTML = {
77
+ __html : node . children [ 0 ] . data
78
+ } ;
79
+ }
80
+ break ;
81
+
82
+ case 'tag' :
83
+ // setting textarea value in children is an antipattern in React
84
+ // https://reactjs.org/docs/forms.html#the-textarea-tag
85
+ if ( node . name === 'textarea' && node . children [ 0 ] ) {
86
+ props . defaultValue = node . children [ 0 ] . data ;
87
+ } else if ( node . children && node . children . length ) {
88
+ // continue recursion of creating React elements (if applicable)
89
+ children = domToReact ( node . children , options ) ;
90
+ }
91
+ break ;
88
92
89
93
// skip all other cases (e.g., comment)
90
- } else {
91
- continue ;
94
+ default :
95
+ continue ;
92
96
}
93
97
94
98
// set "key" prop for sibling elements
0 commit comments