Route preconnect status to header and silence nickname ack cue

This commit is contained in:
Jage9
2026-02-24 23:44:09 -05:00
parent ba31fee5ce
commit f1a7cbf468
3 changed files with 12 additions and 10 deletions

View File

@@ -1,5 +1,5 @@
// Maintainer-controlled web client version. // Maintainer-controlled web client version.
// Format: YYYY.MM.DD Rn (example: 2026.02.20 R2) // Format: YYYY.MM.DD Rn (example: 2026.02.20 R2)
window.CHGRID_WEB_VERSION = "2026.02.25 R252"; window.CHGRID_WEB_VERSION = "2026.02.25 R253";
// Optional display timezone for timestamps. Falls back to America/Detroit if unset/invalid. // Optional display timezone for timestamps. Falls back to America/Detroit if unset/invalid.
window.CHGRID_TIME_ZONE = "America/Detroit"; window.CHGRID_TIME_ZONE = "America/Detroit";

View File

@@ -482,6 +482,9 @@ async function loadChangelog(): Promise<void> {
/** Announces status text via ARIA with brief de-duplication and auto-clear timing. */ /** Announces status text via ARIA with brief de-duplication and auto-clear timing. */
function updateStatus(message: string): void { function updateStatus(message: string): void {
if (!state.running) {
return;
}
const normalized = String(message) const normalized = String(message)
.replace(/\s*\n+\s*/g, ' ') .replace(/\s*\n+\s*/g, ' ')
.replace(/\s{2,}/g, ' ') .replace(/\s{2,}/g, ' ')
@@ -1424,7 +1427,7 @@ function buildAuthRequestPacket(): OutgoingMessage | null {
function sendAuthRequest(): void { function sendAuthRequest(): void {
const packet = buildAuthRequestPacket(); const packet = buildAuthRequestPacket();
if (!packet) { if (!packet) {
updateStatus('Enter username and password.'); setConnectionStatus('Enter username and password.');
audio.sfxUiCancel(); audio.sfxUiCancel();
mediaSession.setConnecting(false); mediaSession.setConnecting(false);
updateConnectAvailability(); updateConnectAvailability();
@@ -1455,12 +1458,11 @@ async function handleAuthResult(message: Extract<IncomingMessage, { type: 'auth_
authSessionToken = ''; authSessionToken = '';
settings.saveAuthSessionToken(''); settings.saveAuthSessionToken('');
} }
updateStatus(message.message); setConnectionStatus(message.message);
audio.sfxUiCancel(); audio.sfxUiCancel();
mediaSession.setConnecting(false); mediaSession.setConnecting(false);
updateConnectAvailability(); updateConnectAvailability();
signaling.disconnect(); signaling.disconnect();
setConnectionStatus('Authentication failed.');
return; return;
} }
@@ -1508,6 +1510,10 @@ function getConnectionFlowDeps(): ConnectFlowDeps {
dom, dom,
sanitizeName, sanitizeName,
updateStatus: (message) => { updateStatus: (message) => {
if (!state.running) {
setConnectionStatus(message);
return;
}
if (message === 'Disconnected.') { if (message === 'Disconnected.') {
setConnectionStatus('Disconnected.'); setConnectionStatus('Disconnected.');
} else if (message.startsWith('Connect failed.')) { } else if (message.startsWith('Connect failed.')) {
@@ -2672,9 +2678,8 @@ loadPersistedAuthPolicy();
setAuthMode('login'); setAuthMode('login');
updateConnectAvailability(); updateConnectAvailability();
updateDeviceSummary(); updateDeviceSummary();
updateStatus( setConnectionStatus(
isVersionReloadedSession() isVersionReloadedSession()
? 'Client updated, please reconnect.' ? 'Client updated, please reconnect.'
: 'Welcome to the Chat Grid. Log in or register, configure audio if needed, then Connect to join the grid.', : 'Welcome to the Chat Grid. Log in or register, configure audio if needed, then Connect to join the grid.',
); );
setConnectionStatus(isVersionReloadedSession() ? 'Client updated, please reconnect.' : 'Not connected.');

View File

@@ -219,10 +219,7 @@ export function createOnMessageHandler(deps: MessageHandlerDeps): (message: Inco
case 'nickname_result': { case 'nickname_result': {
deps.state.player.nickname = deps.sanitizeName(message.effectiveNickname) || 'user...'; deps.state.player.nickname = deps.sanitizeName(message.effectiveNickname) || 'user...';
if (message.accepted) { if (!message.accepted) {
deps.updateStatus(`Nickname set to ${deps.state.player.nickname}`);
deps.audioUiConfirm();
} else {
deps.pushChatMessage(message.reason || 'Nickname unavailable.'); deps.pushChatMessage(message.reason || 'Nickname unavailable.');
deps.audioUiCancel(); deps.audioUiCancel();
} }