fix(apple/tvOS): opaque material backdrop behind the full-screen covers
ci / rust (push) Has been cancelled

tvOS forms/lists have CLEAR backgrounds and a fullScreenCover only shows what the
presented view paints, so Settings/Add Host/pairing rendered transparently over the
hosts grid. All three covers now sit on .thickMaterial edge to edge — the standard
tvOS blur-over-content panel look (verified in the Apple TV simulator).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-06-11 13:26:48 +02:00
parent 7dd479f9e4
commit f7ed87e97f
@@ -64,6 +64,7 @@ struct ContentView: View {
pinned.pinnedSHA256 = fingerprint pinned.pinnedSHA256 = fingerprint
connect(pinned) connect(pinned)
} }
.background(.thickMaterial, ignoresSafeAreaEdges: .all)
} }
#else #else
.sheet(item: $pairingTarget) { host in .sheet(item: $pairingTarget) { host in
@@ -165,11 +166,15 @@ struct ContentView: View {
.frame(minWidth: 480, minHeight: 360) .frame(minWidth: 480, minHeight: 360)
#endif #endif
#if os(tvOS) #if os(tvOS)
// tvOS forms/lists have CLEAR backgrounds and a cover only shows what the
// presented view paints back them with the standard tv blur-over-content.
.fullScreenCover(isPresented: $showAddHost) { .fullScreenCover(isPresented: $showAddHost) {
AddHostSheet { store.add($0) } AddHostSheet { store.add($0) }
.background(.thickMaterial, ignoresSafeAreaEdges: .all)
} }
.fullScreenCover(isPresented: $showSettings) { .fullScreenCover(isPresented: $showSettings) {
SettingsView() SettingsView()
.background(.thickMaterial, ignoresSafeAreaEdges: .all)
} }
#else #else
.sheet(isPresented: $showAddHost) { .sheet(isPresented: $showAddHost) {