diff --git a/frontend/features/nennung-feature/src/commonMain/kotlin/at/mocode/frontend/features/nennung/presentation/web/OnlineNennungFormular.kt b/frontend/features/nennung-feature/src/commonMain/kotlin/at/mocode/frontend/features/nennung/presentation/web/OnlineNennungFormular.kt index ec62210a..282230c8 100644 --- a/frontend/features/nennung-feature/src/commonMain/kotlin/at/mocode/frontend/features/nennung/presentation/web/OnlineNennungFormular.kt +++ b/frontend/features/nennung-feature/src/commonMain/kotlin/at/mocode/frontend/features/nennung/presentation/web/OnlineNennungFormular.kt @@ -400,11 +400,11 @@ fun OnlineNennungFormular( errorMessage = null onNennenAbgeschickt(payload) { success, error -> println("Formular Callback erhalten: success=$success, error=$error") - isLoading = false if (!success) { + isLoading = false errorMessage = "Senden fehlgeschlagen: " + (error ?: "Fehler beim Server-Aufruf. Bitte prüfen Sie die Browser-Konsole (F12) auf Netzwerk-Fehler.") } else { - println("Formular meldet: Erfolg!") + println("Formular meldet: Erfolg! (Ladezustand bleibt aktiv bis Screen-Wechsel)") } } } @@ -445,11 +445,11 @@ fun OnlineNennungFormular( errorMessage = null onNennenAbgeschickt(payload) { success, error -> println("Button Callback erhalten: success=$success, error=$error") - isLoading = false if (!success) { + isLoading = false errorMessage = "Senden fehlgeschlagen: " + (error ?: "Netzwerkfehler oder Server nicht erreichbar.") } else { - println("Button meldet: Erfolg!") + println("Button meldet: Erfolg! (Ladezustand bleibt aktiv bis Screen-Wechsel)") } } }, diff --git a/frontend/shells/meldestelle-web/src/wasmJsMain/kotlin/at/mocode/frontend/shell/web/WebMainScreen.kt b/frontend/shells/meldestelle-web/src/wasmJsMain/kotlin/at/mocode/frontend/shell/web/WebMainScreen.kt index 9030b898..d93ed122 100644 --- a/frontend/shells/meldestelle-web/src/wasmJsMain/kotlin/at/mocode/frontend/shell/web/WebMainScreen.kt +++ b/frontend/shells/meldestelle-web/src/wasmJsMain/kotlin/at/mocode/frontend/shell/web/WebMainScreen.kt @@ -50,12 +50,21 @@ fun MainAppContent() { LaunchedEffect(Unit) { val handleHashChange = { val hash = getWindowHash() - currentScreen = when { + println("Hash geändert: $hash") + when { hash.startsWith("#/nennung/") -> { val tId = hash.substringAfter("#/nennung/").toLongOrNull() ?: 26128L - WebScreen.Nennung(1, tId) + currentScreen = WebScreen.Nennung(1, tId) + } + hash == "#/erfolg" -> { + // Behalte den aktuellen Erfolgsscreen bei oder wechsle zu einem leeren + if (currentScreen !is WebScreen.Erfolg) { + currentScreen = WebScreen.Erfolg("") + } + } + else -> { + currentScreen = WebScreen.Landing } - else -> WebScreen.Landing } } handleHashChange() @@ -69,7 +78,9 @@ fun MainAppContent() { is WebScreen.Nennung -> "/nennung/${screen.turnierId}" is WebScreen.Erfolg -> "/erfolg" } - if (getWindowHash() != "#$targetHash") { + val currentHash = getWindowHash() + if (currentHash != "#$targetHash") { + println("Setze neuen Hash: #$targetHash (aktuell: $currentHash)") setWindowHash("#$targetHash") } } @@ -130,7 +141,7 @@ fun MainAppContent() { // Dezentraler Versions-Marker in der unteren rechten Ecke Box(modifier = Modifier.fillMaxSize().padding(8.dp), contentAlignment = Alignment.BottomEnd) { Text( - text = "v2026-04-23.40 - SMTP PORT FORCE", + text = "v2026-04-23.41 - UI NAVIGATION FIX", style = MaterialTheme.typography.labelSmall, color = Color.LightGray.copy(alpha = 0.5f) )