@@ -74,6 +74,7 @@ function ensureOverlayDivExists(onOverlayDivReady) {
74
74
if ( overlayDiv ) {
75
75
// Everything is ready, call the callback right away.
76
76
onOverlayDivReady ( overlayDiv ) ;
77
+
77
78
return ;
78
79
}
79
80
@@ -117,22 +118,39 @@ function clear() {
117
118
// Compilation with errors (e.g. syntax error or missing modules).
118
119
function showMessage ( messages ) {
119
120
ensureOverlayDivExists ( ( div ) => {
121
+ const headerElement = document . createElement ( 'span' ) ;
122
+
123
+ headerElement . innerText = 'Failed to compile.' ;
124
+ headerElement . style . color = `#${ colors . red } ` ;
125
+
126
+ const closeButtonElement = document . createElement ( 'button' ) ;
127
+
128
+ closeButtonElement . innerText = 'X' ;
129
+ closeButtonElement . style . background = 'transparent' ;
130
+ closeButtonElement . style . border = 'none' ;
131
+ closeButtonElement . style . fontSize = '20px' ;
132
+ closeButtonElement . style . fontWeight = 'bold' ;
133
+ closeButtonElement . style . color = 'white' ;
134
+ closeButtonElement . style . cursor = 'pointer' ;
135
+ closeButtonElement . style . cssFloat = 'right' ;
136
+ closeButtonElement . style . styleFloat = 'right' ;
137
+ closeButtonElement . addEventListener ( 'click' , ( ) => {
138
+ clear ( ) ;
139
+ } ) ;
140
+
141
+ const breakElementFirst = document . createElement ( 'br' ) ;
142
+ const breakElementSecond = document . createElement ( 'br' ) ;
143
+
120
144
// Make it look similar to our terminal.
121
145
const errorMessage = messages [ 0 ] . message || messages [ 0 ] ;
122
146
const text = ansiHTML ( encode ( errorMessage ) ) ;
123
- const closeButton = document . createElement ( 'button' ) ;
124
- closeButton . innerText = 'X' ;
125
- closeButton . style . background = 'transparent' ;
126
- closeButton . style . border = 'none' ;
127
- closeButton . style . fontSize = '20px' ;
128
- closeButton . style . fontWeight = 'bold' ;
129
- closeButton . style . color = 'white' ;
130
- closeButton . style . cursor = 'pointer' ;
131
- closeButton . addEventListener ( 'click' , ( ) => {
132
- clear ( ) ;
133
- } ) ;
134
- div . innerHTML = `<span style="color: #${ colors . red } ">Failed to compile.</span><br><br>${ text } ` ;
135
- div . insertBefore ( closeButton , div . firstChild ) ;
147
+ const messageTextNode = document . createTextNode ( text ) ;
148
+
149
+ div . appendChild ( headerElement ) ;
150
+ div . appendChild ( closeButtonElement ) ;
151
+ div . appendChild ( breakElementFirst ) ;
152
+ div . appendChild ( breakElementSecond ) ;
153
+ div . appendChild ( messageTextNode ) ;
136
154
} ) ;
137
155
}
138
156
0 commit comments