Fix Settings first navigation animation missing

This commit is contained in:
世界
2025-12-22 12:06:56 +08:00
parent 1bbda34a86
commit 0eb5fce745
2 changed files with 34 additions and 8 deletions
@@ -1,17 +1,41 @@
import SwiftUI
public func NavigationStackCompat(@ViewBuilder content: () -> some View) -> some View {
Group {
public struct NavigationStackCompat<Content: View>: View {
private let content: Content
public init(@ViewBuilder content: () -> Content) {
self.content = content()
}
public var body: some View {
if #available(iOS 17.0, macOS 13.0, tvOS 17.0, *) {
// view not updating in iOS 16, but why?
NavigationStack {
content()
NavigationStackWithPath {
content
}
} else {
NavigationView(content: content)
NavigationView {
content
}
#if !os(macOS)
.navigationViewStyle(.stack)
.navigationViewStyle(.stack)
#endif
}
}
}
@available(iOS 16.0, macOS 13.0, tvOS 16.0, *)
private struct NavigationStackWithPath<Content: View>: View {
private let content: Content
@State private var path = NavigationPath()
init(@ViewBuilder content: () -> Content) {
self.content = content()
}
var body: some View {
NavigationStack(path: $path.animation(.linear(duration: 0))) {
content
}
}
}