From 3cf868874eb649e357546df666f3faf4d516fa3a Mon Sep 17 00:00:00 2001 From: Doug Date: Tue, 24 Sep 2024 13:53:50 +0100 Subject: [PATCH] Don't use the new iPad modal presentation mode for the timeline item menu. --- .../Timeline/View/ItemMenu/TimelineItemMenu.swift | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ElementX/Sources/Screens/Timeline/View/ItemMenu/TimelineItemMenu.swift b/ElementX/Sources/Screens/Timeline/View/ItemMenu/TimelineItemMenu.swift index caa7098fa7..527e54f3d8 100644 --- a/ElementX/Sources/Screens/Timeline/View/ItemMenu/TimelineItemMenu.swift +++ b/ElementX/Sources/Screens/Timeline/View/ItemMenu/TimelineItemMenu.swift @@ -51,6 +51,7 @@ struct TimelineItemMenu: View { } } .accessibilityIdentifier(A11yIdentifiers.roomScreen.timelineItemActionMenu) + .presentationPage() .presentationDetents([.medium, .large]) .presentationBackground(Color.compound.bgCanvasDefault) .presentationDragIndicator(.visible) @@ -233,6 +234,17 @@ private extension EncryptionAuthenticity { } } +private extension View { + /// Uses the old page style modal so that on iPadOS 18 the presentation detents have no effect. + @ViewBuilder func presentationPage() -> some View { + if #available(iOS 18.0, *) { + presentationSizing(.page) + } else { + self + } + } +} + // MARK: - Previews struct TimelineItemMenu_Previews: PreviewProvider, TestablePreview {