fix disconnect screen taking precedence over error screen

closes #68
This commit is contained in:
りき萌 2025-09-10 16:10:27 +02:00
parent 2810fe248f
commit 3999dd3012
2 changed files with 8 additions and 1 deletions

View file

@ -98,6 +98,10 @@ function readUrl(urlString) {
},
async onDisconnect() {
if (session.errored) return; // Display the error screen
console.info("showing disconnected refresh screen");
let duration = 5000 + Math.random() * 1000;
while (true) {
console.info("waiting a bit for the server to come back up", duration);

View file

@ -81,6 +81,7 @@ class Session extends EventTarget {
super();
this.userId = userId;
this.secret = secret;
this.errored = false;
}
async #recvJson() {
@ -106,6 +107,7 @@ class Session extends EventTarget {
}
#dispatchError(source, kind, message) {
this.errored = true;
this.dispatchEvent(
Object.assign(new Event("error"), {
source,
@ -123,7 +125,7 @@ class Session extends EventTarget {
this.ws.addEventListener("error", (event) => {
console.error("WebSocket connection error", error);
this.dispatchEvent(Object.assign(new Event("error"), event));
this.#dispatchError(event, "ws", "WebSocket connection error");
});
this.ws.addEventListener("message", (event) => {
@ -288,6 +290,7 @@ class Session extends EventTarget {
}
sendViewport({ left, top, right, bottom }) {
console.trace({ left, top, right, bottom });
this.#sendJson({
request: "viewport",
topLeft: { x: left, y: top },