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 SwiftUIIntrospect
@_spi(Advanced) import SwiftUIIntrospect
extension PlatformViewVersionPredicate<TextFieldType, UITextField> {
static var supportedVersions: Self {
.iOS(.v17, .v18)
.iOS(.v16...)
}
}
extension PlatformViewVersionPredicate<ScrollViewType, UIScrollView> {
static var supportedVersions: Self {
.iOS(.v17, .v18)
.iOS(.v16...)
}
}
extension PlatformViewVersionPredicate<ViewControllerType, UIViewController> {
static var supportedVersions: Self {
.iOS(.v17, .v18)
.iOS(.v16...)
}
}
extension PlatformViewVersionPredicate<NavigationStackType, UINavigationController> {
static var supportedVersions: Self {
.iOS(.v17, .v18)
.iOS(.v16...)
}
}
@@ -194,6 +194,21 @@ struct MediaEventsTimelineScreen: View {
@ToolbarContentBuilder
private var toolbar: some ToolbarContent {
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) {
Text(L10n.screenMediaBrowserListModeMedia)
.padding()
@@ -203,13 +218,6 @@ struct MediaEventsTimelineScreen: View {
.tag(MediaEventsTimelineScreenMode.files)
}
.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) {