@@ -42,8 +42,9 @@ const DemoRender = (): JSX.Element => {
42
42
document.querySelectorAll('a').forEach(element => {
43
43
element.addEventListener('click', (event) => {
44
44
event.preventDefault();
45
- window.top.postMessage(event.target.href, '*');
46
- })
45
+ window.top.postMessage(event.currentTarget.href, '*');
46
+ //document.body.style.backgroundColor = 'orange';
47
+ }, true)
47
48
});
48
49
} catch (err) {
49
50
const app = document.querySelector('#app');
@@ -57,6 +58,7 @@ const DemoRender = (): JSX.Element => {
57
58
58
59
//Switch between components when clicking on a link in the live render
59
60
window . onmessage = ( event ) => {
61
+ if ( event . data === undefined ) return ;
60
62
const component = event . data ?. split ( '/' ) . at ( - 1 ) ;
61
63
const componentId = component && state . components ?. find ( ( el ) => {
62
64
return el . name . toLowerCase ( ) === component . toLowerCase ( ) ;
@@ -70,7 +72,6 @@ const DemoRender = (): JSX.Element => {
70
72
const componentBuilder = ( array : object , key : number = 0 ) => {
71
73
const componentsToRender = [ ] ;
72
74
for ( const element of array ) {
73
-
74
75
if ( element . name !== 'separator' ) {
75
76
const elementType = element . name ;
76
77
const childId = element . childId ;
@@ -79,13 +80,13 @@ const DemoRender = (): JSX.Element => {
79
80
const classRender = element . attributes . cssClasses ;
80
81
const activeLink = element . attributes . compLink ;
81
82
let renderedChildren ;
82
- if ( elementType !== 'input' && elementType !== 'img' && element . children . length > 0 ) {
83
+ if ( elementType !== 'input' && elementType !== 'img' && elementType !== 'Image' && element . children . length > 0 ) {
83
84
renderedChildren = componentBuilder ( element . children ) ;
84
85
}
85
86
if ( elementType === 'input' ) componentsToRender . push ( < Box component = { elementType } className = { classRender } style = { elementStyle } key = { key } id = { `rend${ childId } ` } > </ Box > ) ;
86
87
else if ( elementType === 'img' ) componentsToRender . push ( < Box component = { elementType } src = { activeLink } className = { classRender } style = { elementStyle } key = { key } id = { `rend${ childId } ` } > </ Box > ) ;
87
88
else if ( elementType === 'Image' ) componentsToRender . push ( < Box component = 'img' src = { activeLink } className = { classRender } style = { elementStyle } key = { key } id = { `rend${ childId } ` } > </ Box > ) ;
88
- else if ( elementType === 'a' || elementType === 'Link' ) componentsToRender . push ( < Box component = 'a' href = { activeLink } className = { classRender } style = { elementStyle } key = { key } id = { `rend${ childId } ` } > { innerText } </ Box > ) ;
89
+ else if ( elementType === 'a' || elementType === 'Link' ) componentsToRender . push ( < Box component = 'a' href = { activeLink } className = { classRender } style = { elementStyle } key = { key } id = { `rend${ childId } ` } > { innerText } { renderedChildren } </ Box > ) ;
89
90
else if ( elementType === 'Switch' ) componentsToRender . push ( < Switch > { renderedChildren } </ Switch > ) ;
90
91
else if ( elementType === 'Route' ) componentsToRender . push ( < Route exact path = { activeLink } > { renderedChildren } </ Route > ) ;
91
92
else componentsToRender . push ( < Box component = { elementType } className = { classRender } style = { elementStyle } key = { key } id = { `rend${ childId } ` } > { innerText } { renderedChildren } </ Box >
@@ -98,9 +99,10 @@ const DemoRender = (): JSX.Element => {
98
99
99
100
let code = '' ;
100
101
const currComponent = state . components . find ( element => element . id === state . canvasFocus . componentId ) ;
102
+
101
103
componentBuilder ( currComponent . children ) . forEach ( element => {
102
104
try {
103
- code += ReactDOMServer . renderToString ( element )
105
+ code += ReactDOMServer . renderToString ( element ) ;
104
106
} catch {
105
107
return ;
106
108
}
0 commit comments