Tusker/Packages/ComposeUI/Sources/ComposeUI/View+ForwardsCompat.swift
Shadowfacts 7c43261f9c Revert "Raise min deployment target to iOS 16"
This reverts commit f4b51c06c1107cd8149a8e07a0f652ac6816ee3a.
2024-12-26 17:33:13 -05:00

56 lines
1.4 KiB
Swift

//
// View+ForwardsCompat.swift
// ComposeUI
//
// Created by Shadowfacts on 3/25/23.
//
import SwiftUI
extension View {
#if os(visionOS)
func scrollDisabledIfAvailable(_ disabled: Bool) -> some View {
self.scrollDisabled(disabled)
}
#else
@available(iOS, obsoleted: 16.0)
@ViewBuilder
func scrollDisabledIfAvailable(_ disabled: Bool) -> some View {
if #available(iOS 16.0, *) {
self.scrollDisabled(disabled)
} else {
self
}
}
#endif
@available(iOS, obsoleted: 16.0)
@ViewBuilder
func scrollDismissesKeyboardInteractivelyIfAvailable() -> some View {
#if os(visionOS)
self.scrollDismissesKeyboard(.interactively)
#else
if #available(iOS 16.0, *) {
self.scrollDismissesKeyboard(.interactively)
} else {
self
}
#endif
}
@available(iOS, obsoleted: 16.0)
@available(visionOS 1.0, *)
@ViewBuilder
func contextMenu<M: View, P: View>(@ViewBuilder menuItems: () -> M, @ViewBuilder previewIfAvailable preview: () -> P) -> some View {
#if os(visionOS)
self.contextMenu(menuItems: menuItems, preview: preview)
#else
if #available(iOS 16.0, *) {
self.contextMenu(menuItems: menuItems, preview: preview)
} else {
self.contextMenu(menuItems: menuItems)
}
#endif
}
}