Fix MediaTimeline screen header iOS 26 crash, update remaining version predicates.

This commit is contained in:
Stefan Ceriu
2025-06-19 14:06:10 +03:00
parent 087a07c01b
commit f4333ba683
2 changed files with 22 additions and 14 deletions
@@ -6,28 +6,28 @@
// //
import SwiftUI import SwiftUI
import SwiftUIIntrospect @_spi(Advanced) import SwiftUIIntrospect
extension PlatformViewVersionPredicate<TextFieldType, UITextField> { extension PlatformViewVersionPredicate<TextFieldType, UITextField> {
static var supportedVersions: Self { static var supportedVersions: Self {
.iOS(.v17, .v18) .iOS(.v16...)
} }
} }
extension PlatformViewVersionPredicate<ScrollViewType, UIScrollView> { extension PlatformViewVersionPredicate<ScrollViewType, UIScrollView> {
static var supportedVersions: Self { static var supportedVersions: Self {
.iOS(.v17, .v18) .iOS(.v16...)
} }
} }
extension PlatformViewVersionPredicate<ViewControllerType, UIViewController> { extension PlatformViewVersionPredicate<ViewControllerType, UIViewController> {
static var supportedVersions: Self { static var supportedVersions: Self {
.iOS(.v17, .v18) .iOS(.v16...)
} }
} }
extension PlatformViewVersionPredicate<NavigationStackType, UINavigationController> { extension PlatformViewVersionPredicate<NavigationStackType, UINavigationController> {
static var supportedVersions: Self { static var supportedVersions: Self {
.iOS(.v17, .v18) .iOS(.v16...)
} }
} }
@@ -194,6 +194,21 @@ struct MediaEventsTimelineScreen: View {
@ToolbarContentBuilder @ToolbarContentBuilder
private var toolbar: some ToolbarContent { private var toolbar: some ToolbarContent {
ToolbarItem(placement: .principal) { ToolbarItem(placement: .principal) {
if #available(iOS 19, *) {
screenModePicker
} else {
screenModePicker
.frame(idealWidth: .greatestFiniteMagnitude)
}
}
ToolbarItem(placement: .primaryAction) {
// Reserve the space trailing space to match the back button.
CompoundIcon(\.search).hidden()
}
}
private var screenModePicker: some View {
Picker("", selection: $context.screenMode) { Picker("", selection: $context.screenMode) {
Text(L10n.screenMediaBrowserListModeMedia) Text(L10n.screenMediaBrowserListModeMedia)
.padding() .padding()
@@ -203,13 +218,6 @@ struct MediaEventsTimelineScreen: View {
.tag(MediaEventsTimelineScreenMode.files) .tag(MediaEventsTimelineScreenMode.files)
} }
.pickerStyle(.segmented) .pickerStyle(.segmented)
.frame(idealWidth: .greatestFiniteMagnitude)
}
ToolbarItem(placement: .primaryAction) {
// Reserve the space trailing space to match the back button.
CompoundIcon(\.search).hidden()
}
} }
func tappedItem(_ item: RoomTimelineItemViewState) { func tappedItem(_ item: RoomTimelineItemViewState) {