the still-loading screen now displays plugin errors (re. #36)

master^2
Michał 'rysiek' Woźniak 2024-02-28 07:01:44 +00:00
rodzic 0932bf9b9f
commit 18e436568a
1 zmienionych plików z 12 dodań i 1 usunięć

Wyświetl plik

@ -1462,16 +1462,26 @@ self.addEventListener('fetch', async event => {
a {
color: #2d5589
}
#errors {
font-weight: bold;
font-size: smaller;
marin-top: 1em;
color: maroon;
opacity: 0.5;
font-family: monospace;
}
</style>
<h1 id="header">Still loading<span id="throbber1">&#x2022;</span><span id="throbber2">&#x2022;</span><span id="throbber3">&#x2022;</span></h1>
<p id="working">attempts:&nbsp;<span id="status">1</span></p>
<p id="text">The content is still being loaded, thank you for your patience.<br/><br/>This page will auto-reload in a few seconds. If it does not, please <a href="./">click here</a>.</p>
<p id="errors"></p>
<script>
let attempts = 0;
let header = document.getElementById('header')
let text = document.getElementById('text')
let status = document.getElementById('status')
let errors = document.getElementById('errors')
navigator.serviceWorker.addEventListener('message', event => {
@ -1485,9 +1495,10 @@ self.addEventListener('fetch', async event => {
header.innerHTML = "Loading failed."
text.innerHTML = "We're sorry, we were unable to load this page."
}
if ( ( 'error' in event.data ) && ( typeof event.data.error === 'object' ) ) {
if ( 'error' in event.data ) {
attempts += 1;
status.innerHTML = attempts;
errors.innerHTML += '(' + event.data.method + ') ' + event.data.error + '<br/>'
}
}
})