forked from kay/RouterOS
Bug 29: Übersicht-Tab aktualisierte sich nicht selbst beim Tab-Wechsel
.task lief nur einmal pro View-Lebenszeit — SwiftUI zerstört Tab-Inhalte auf macOS beim Wechsel nicht, die View bleibt am Leben, .task feuert also nie erneut beim Zurückwechseln. Fix: .onAppear statt .task, feuert bei jedem Sichtbarwerden des Tabs neu — Änderungen aus dem Experte-Tab (z.B. eine neu angelegte Route) erscheinen jetzt automatisch, ohne manuellen "Aktualisieren"-Klick. 59 Unit-Tests grün. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YDmUd93KxsYGr2kLTotWnG
This commit is contained in:
@@ -797,3 +797,8 @@ Test, WLAN/Bonding/PPPoE-Live-Tests).
|
||||
(`distance=0` als verlässliches Signal, da RouterOS' "dynamic"-Flag
|
||||
nicht in `print terse` steht). 59 Unit-Tests grün, HANDOFF.md
|
||||
aktualisiert, Commit + Push.
|
||||
- "funktioniert, der Übersicht-Tab aktualisiert sich nicht selbst..." →
|
||||
Bug 29: `.task` lief nur einmal pro View-Lebenszeit, SwiftUI zerstört
|
||||
Tab-Inhalte auf macOS beim Wechsel aber nicht. Fix: `.onAppear` statt
|
||||
`.task`, feuert bei jedem Tab-Besuch neu. 59 Unit-Tests grün, HANDOFF.md
|
||||
aktualisiert, Commit + Push.
|
||||
|
||||
+8
-1
@@ -579,7 +579,14 @@ Route kann das haben (RouterOS erzwingt 1–255 bei `set`). Fix:
|
||||
mehr an (`editTarget=nil`) — die `.id` einer dynamischen Route ist
|
||||
ohnehin nicht stabil, RouterOS kann sie jederzeit neu anlegen. 59
|
||||
Unit-Tests grün (neuer Test `OverviewGraphTests.
|
||||
testDynamicRouteHasNoEditTarget`).
|
||||
testDynamicRouteHasNoEditTarget`). **Übersicht-Tab aktualisierte sich
|
||||
nicht selbst nach Tab-Wechsel** (Bug 29) — `.task` lief nur einmal pro
|
||||
View-Lebenszeit; da SwiftUI Tab-Inhalte beim Wechsel auf macOS nicht neu
|
||||
erzeugt (die View bleibt am Leben), feuerte `.task` beim Zurückwechseln
|
||||
nie erneut. Fix: `.onAppear` statt `.task` (feuert bei jedem
|
||||
Sichtbarwerden des Tabs neu) — Änderungen aus dem Experte-Tab (z.B. eine
|
||||
neu angelegte Route) erscheinen jetzt automatisch beim Reinschauen, ohne
|
||||
manuellen "Aktualisieren"-Klick.
|
||||
|
||||
## `xcodebuild test` hängt — Gatekeeper, kein Code-Bug
|
||||
|
||||
|
||||
@@ -98,10 +98,14 @@ struct OverviewView: View {
|
||||
Button { scale = min(2.0, scale + 0.15) } label: { Image(systemName: "plus.magnifyingglass") }
|
||||
}
|
||||
}
|
||||
.task {
|
||||
if viewModel.graph.nodes.isEmpty {
|
||||
await viewModel.load()
|
||||
}
|
||||
.onAppear {
|
||||
// SwiftUI keeps every tab's content alive when switching tabs on macOS (this view
|
||||
// isn't torn down and recreated) — `.task` only ever runs once per view lifetime,
|
||||
// so it wouldn't refire just from revisiting this tab. `.onAppear` does fire again
|
||||
// each time, which is what actually picks up changes made elsewhere (e.g. a route
|
||||
// added in the Experte-Tab) without a manual "Aktualisieren" click. Confirmed live
|
||||
// (2026-09-15): the tab didn't refresh after switching away and back.
|
||||
Task { await viewModel.load() }
|
||||
}
|
||||
.sheet(item: $expertViewModel.editingItem) { _ in
|
||||
// `selectedSchema` is always set by `editNode` right before `editingItem`, so this
|
||||
|
||||
Reference in New Issue
Block a user