diff options
| author | David Skoland <davidskoland@gmail.com> | 2026-03-24 12:23:45 +0100 |
|---|---|---|
| committer | David Skoland <davidskoland@gmail.com> | 2026-03-24 12:23:45 +0100 |
| commit | 1a1ed4e1d0568a1610d5f5da3d541a59afe2b863 (patch) | |
| tree | 6df185dcb2994767619d2dc32e45e27e3496aff3 /webAO/dom/renderAreaList.ts | |
| parent | 4715e7ccde04a77ff04f1ac839c151eaebc4ad44 (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/dom/renderAreaList.ts')
| -rw-r--r-- | webAO/dom/renderAreaList.ts | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/webAO/dom/renderAreaList.ts b/webAO/dom/renderAreaList.ts new file mode 100644 index 0000000..e622765 --- /dev/null +++ b/webAO/dom/renderAreaList.ts @@ -0,0 +1,24 @@ +import { client } from "../client"; +import { area_click } from "./areaClick"; + +export function renderAreaList() { + const container = document.getElementById("areas")!; + container.innerHTML = ""; + + for (let i = 0; i < client.areas.length; i++) { + const area = client.areas[i]; + const el = document.createElement("SPAN"); + el.className = `area-button area-${area.status.toLowerCase()}`; + el.id = `area${i}`; + el.innerText = `${area.name} (${area.players}) [${area.status}]`; + el.title = + `Players: ${area.players}\n` + + `Status: ${area.status}\n` + + `CM: ${area.cm}\n` + + `Area lock: ${area.locked}`; + el.onclick = function () { + area_click(el); + }; + container.appendChild(el); + } +} |
