### fix: 41 verbessere Lade- und Navigationslogik
All checks were successful
All checks were successful
- **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:
parent
0aaa160b95
commit
d493734660
|
|
@ -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)")
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user