Skip to content

Commit e81b5a0

Browse files
committed
Apply Xcode 16.2 patch
1 parent af280a5 commit e81b5a0

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

Sources/ArcGISToolkit/Components/FloatingPanel/FloatingPanel.swift

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ struct FloatingPanel<Content>: View where Content: View {
7171
.frame(height: height)
7272
.clipped()
7373
.onPreferenceChange(FloatingPanelDetent.Preference.self) { preference in
74+
#if swift(<6.0.3) || swift(>=6.1) // Xcode 16.2 (Swift 6.0.3) needs special handling
7475
if let preference {
7576
// Only set the overridden detent if it's `nil`.
7677
// This prevents a preference from being saved
@@ -85,6 +86,26 @@ struct FloatingPanel<Content>: View where Content: View {
8586
activeDetent = overriddenDetent
8687
self.overriddenDetent = nil
8788
}
89+
#else
90+
Task { @MainActor in
91+
if let preference {
92+
// Only update the overridden detent if one
93+
// wasn't already saved. This prevents a
94+
// FloatingPanelDetentPreference from being
95+
// saved as the overridden detent.
96+
if overriddenDetent == nil {
97+
overriddenDetent = activeDetent
98+
}
99+
activeDetent = preference
100+
} else if let overriddenDetent {
101+
// When the FloatingPanelDetentPreference is
102+
// unset, restore the overridden detent as the
103+
// active detent.
104+
activeDetent = overriddenDetent
105+
self.overriddenDetent = nil
106+
}
107+
}
108+
#endif
88109
}
89110
if !isPortraitOrientation {
90111
Divider()

0 commit comments

Comments
 (0)