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,16 +194,12 @@ struct MediaEventsTimelineScreen: View {
@ToolbarContentBuilder @ToolbarContentBuilder
private var toolbar: some ToolbarContent { private var toolbar: some ToolbarContent {
ToolbarItem(placement: .principal) { ToolbarItem(placement: .principal) {
Picker("", selection: $context.screenMode) { if #available(iOS 19, *) {
Text(L10n.screenMediaBrowserListModeMedia) screenModePicker
.padding() } else {
.tag(MediaEventsTimelineScreenMode.media) screenModePicker
Text(L10n.screenMediaBrowserListModeFiles) .frame(idealWidth: .greatestFiniteMagnitude)
.padding()
.tag(MediaEventsTimelineScreenMode.files)
} }
.pickerStyle(.segmented)
.frame(idealWidth: .greatestFiniteMagnitude)
} }
ToolbarItem(placement: .primaryAction) { ToolbarItem(placement: .primaryAction) {
@@ -212,6 +208,18 @@ struct MediaEventsTimelineScreen: View {
} }
} }
private var screenModePicker: some View {
Picker("", selection: $context.screenMode) {
Text(L10n.screenMediaBrowserListModeMedia)
.padding()
.tag(MediaEventsTimelineScreenMode.media)
Text(L10n.screenMediaBrowserListModeFiles)
.padding()
.tag(MediaEventsTimelineScreenMode.files)
}
.pickerStyle(.segmented)
}
func tappedItem(_ item: RoomTimelineItemViewState) { func tappedItem(_ item: RoomTimelineItemViewState) {
context.send(viewAction: .tappedItem(item: item)) context.send(viewAction: .tappedItem(item: item))
} }