aboutsummaryrefslogtreecommitdiff
path: root/webAO/packets/handlers/handleARUP.ts
diff options
context:
space:
mode:
authorDavid Skoland <davidskoland@gmail.com>2026-03-24 12:23:45 +0100
committerDavid Skoland <davidskoland@gmail.com>2026-03-24 12:23:45 +0100
commit1a1ed4e1d0568a1610d5f5da3d541a59afe2b863 (patch)
tree6df185dcb2994767619d2dc32e45e27e3496aff3 /webAO/packets/handlers/handleARUP.ts
parent4715e7ccde04a77ff04f1ac839c151eaebc4ad44 (diff)
Add reconnect UI, disconnect button, and visual cleanup
- Redesign disconnect overlay as a full-screen modal with dark backdrop - Add working Reconnect button that properly re-establishes WebSocket connection - Add Disconnect button in Settings for testing - Separate disconnect and ban/kick codepaths (no reconnect on ban) - Log disconnect notice in IC log using hrtext style - Refactor area list rendering from client state (renderAreaList) - Extract appendICNotice for reusable IC log notices - Clean up charselect: hide during loading, simplify toolbar layout - Freshen loading screen and charselect styling - Remove loading progress text updates (just show "Loading...") - Guard against undefined client.chars and client.serv Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'webAO/packets/handlers/handleARUP.ts')
-rw-r--r--webAO/packets/handlers/handleARUP.ts15
1 files changed, 2 insertions, 13 deletions
diff --git a/webAO/packets/handlers/handleARUP.ts b/webAO/packets/handlers/handleARUP.ts
index 7f72b15..5a7aebb 100644
--- a/webAO/packets/handlers/handleARUP.ts
+++ b/webAO/packets/handlers/handleARUP.ts
@@ -1,4 +1,5 @@
import { client } from "../../client";
+import { renderAreaList } from "../../dom/renderAreaList";
import { safeTags } from "../../encoding";
/**
@@ -10,7 +11,6 @@ export const handleARUP = (args: string[]) => {
for (let i = 0; i < args.length - 1; i++) {
if (client.areas[i]) {
// the server sends us ARUP before we even get the area list
- const thisarea = document.getElementById(`area${i}`)!;
switch (Number(args[0])) {
case 0: // playercount
client.areas[i].players = Number(args[i + 1]);
@@ -25,18 +25,7 @@ export const handleARUP = (args: string[]) => {
client.areas[i].locked = safeTags(args[i + 1]);
break;
}
-
- thisarea.className = `area-button area-${client.areas[
- i
- ].status.toLowerCase()}`;
-
- thisarea.innerText = `${client.areas[i].name} (${client.areas[i].players}) [${client.areas[i].status}]`;
-
- thisarea.title =
- `Players: ${client.areas[i].players}\n` +
- `Status: ${client.areas[i].status}\n` +
- `CM: ${client.areas[i].cm}\n` +
- `Area lock: ${client.areas[i].locked}`;
}
}
+ renderAreaList();
};