Skip to content

Commit fae461a

Browse files
PR feedback
1 parent 8b78ccb commit fae461a

File tree

5 files changed

+40
-31
lines changed

5 files changed

+40
-31
lines changed

src/Components/Blazor/Templates/src/content/BlazorWasm-CSharp/Client/wwwroot/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515

1616
<div id="error-ui">
1717
An unhandled error has occurred.
18-
<a href="#" class='reload'>Reload</a>
19-
<a href="#" class='dismiss'>X</a>
18+
<a href class='reload'>Reload</a>
19+
<a href class='dismiss'>🗙</a>
2020
</div>
2121
<script src="_framework/blazor.webassembly.js"></script>
2222
</body>

src/Components/Web.JS/src/Boot.Server.ts

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import '@dotnet/jsinterop';
22
import './GlobalExports';
33
import * as signalR from '@aspnet/signalr';
44
import { MessagePackHubProtocol } from '@aspnet/signalr-protocol-msgpack';
5+
import { showErrorNotification } from './BootErrors';
56
import { shouldAutoStart } from './BootCommon';
67
import { RenderQueue } from './Platform/Circuits/RenderQueue';
78
import { ConsoleLogger } from './Platform/Logging/Loggers';
@@ -102,33 +103,11 @@ async function initializeConnection(options: BlazorOptions, logger: Logger, circ
102103
renderQueue.processBatch(batchId, batchData, connection);
103104
});
104105

105-
const errorUiReloads = document.querySelectorAll<HTMLElement>("#error-ui .reload");
106-
errorUiReloads.forEach(reload => {
107-
reload.onclick = function (e) {
108-
location.reload();
109-
e.preventDefault();
110-
};
111-
});
112-
113-
let errorUiDismiss = document.querySelectorAll<HTMLElement>("#error-ui .dismiss");
114-
errorUiDismiss.forEach(dismiss => {
115-
dismiss.onclick = function (e) {
116-
const errorUi = document.querySelector<HTMLElement>("#error-ui");
117-
if (errorUi) {
118-
errorUi.style.display = 'none';
119-
}
120-
e.preventDefault();
121-
};
122-
});
123-
124106
connection.onclose(error => !renderingFailed && options.reconnectionHandler!.onConnectionDown(options.reconnectionOptions, error));
125107
connection.on('JS.Error', error => {
126108
renderingFailed = true;
127109
unhandledError(connection, error, logger);
128-
let errorUi = document.querySelector("#error-ui") as HTMLElement;
129-
if (errorUi) {
130-
errorUi.style.display = 'block';
131-
}
110+
showErrorNotification();
132111
});
133112

134113
window['Blazor']._internal.forceCloseConnection = () => connection.stop();
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
let hasFailed = false;
2+
3+
export async function showErrorNotification() {
4+
let errorUi = document.querySelector('#error-ui') as HTMLElement;
5+
if (errorUi) {
6+
errorUi.style.display = 'block';
7+
}
8+
9+
if (!hasFailed) {
10+
hasFailed = true;
11+
const errorUiReloads = document.querySelectorAll<HTMLElement>('#error-ui .reload');
12+
errorUiReloads.forEach(reload => {
13+
reload.onclick = function (e) {
14+
location.reload();
15+
e.preventDefault();
16+
};
17+
});
18+
19+
let errorUiDismiss = document.querySelectorAll<HTMLElement>('#error-ui .dismiss');
20+
errorUiDismiss.forEach(dismiss => {
21+
dismiss.onclick = function (e) {
22+
const errorUi = document.querySelector<HTMLElement>('#error-ui');
23+
if (errorUi) {
24+
errorUi.style.display = 'none';
25+
}
26+
e.preventDefault();
27+
};
28+
});
29+
}
30+
}

src/Components/Web.JS/src/Platform/Mono/MonoPlatform.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,18 +233,18 @@ function createEmscriptenModuleInstance(loadAssemblyUrls: string[], onReady: ()
233233

234234
module.print = line => (suppressMessages.indexOf(line) < 0 && console.log(`WASM: ${line}`));
235235

236-
const errorUiReloads = document.querySelectorAll<HTMLElement>("#error-ui .reload");
236+
const errorUiReloads = document.querySelectorAll<HTMLElement>('#error-ui .reload');
237237
errorUiReloads.forEach(reload => {
238238
reload.onclick = function (e) {
239239
location.reload();
240240
e.preventDefault();
241241
};
242242
});
243243

244-
let errorUiDismiss = document.querySelectorAll<HTMLElement>("#error-ui .dismiss");
244+
let errorUiDismiss = document.querySelectorAll<HTMLElement>('#error-ui .dismiss');
245245
errorUiDismiss.forEach(dismiss => {
246246
dismiss.onclick = function (e) {
247-
const errorUi = document.querySelector<HTMLElement>("#error-ui");
247+
const errorUi = document.querySelector<HTMLElement>('#error-ui');
248248
if (errorUi) {
249249
errorUi.style.display = 'none';
250250
}
@@ -254,7 +254,7 @@ function createEmscriptenModuleInstance(loadAssemblyUrls: string[], onReady: ()
254254

255255
module.printErr = line => {
256256
console.error(`WASM: ${line}`);
257-
let errorUi = document.querySelector("#error-ui") as HTMLElement;
257+
let errorUi = document.querySelector('#error-ui') as HTMLElement;
258258
if (errorUi) {
259259
errorUi.style.display = 'block';
260260
}

src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/_Host.cshtml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
<environment include="Development">
2525
An unhandled exception has occurred. See browser dev tools for details.
2626
</environment>
27-
<a href="#" class='reload'>Reload</a>
28-
<a href="#" class='dismiss'>X</a>
27+
<a href class='reload'>Reload</a>
28+
<a href class='dismiss'>🗙</a>
2929
</div>
3030

3131
<script src="_framework/blazor.server.js"></script>

0 commit comments

Comments
 (0)