### fix: 41 verbessere Lade- und Navigationslogik
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/services/mail/Dockerfile, mail-service, mail-service) (push) Successful in 5m50s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 4m16s

- **OnlineNennungFormular:** `isLoading`-State präziser verwaltet und Erfolgsmeldungen erweitert.
- **WebMainScreen:** Hashwechsel-Logik verbessert, Erfolgsscreen modularisiert.
- **UI-Version:** auf `v2026-04-23.41 - UI NAVIGATION FIX` aktualisiert.
This commit is contained in:
Stefan Mogeritsch 2026-04-23 20:41:55 +02:00
parent 0aaa160b95
commit d493734660
2 changed files with 20 additions and 9 deletions

View File

@ -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)")
}
}
},

View File

@ -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)
)