diff --git a/ElementX/Sources/Screens/RoomScreen/View/RoomScreen.swift b/ElementX/Sources/Screens/RoomScreen/View/RoomScreen.swift index 0e9152685..e54d6976d 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/RoomScreen.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/RoomScreen.swift @@ -13,7 +13,6 @@ struct RoomScreen: View { @ObservedObject private var context: RoomScreenViewModelType.Context @ObservedObject private var timelineContext: TimelineViewModelType.Context @ObservedObject private var composerToolbarContext: ComposerToolbarViewModelType.Context - @State private var dragOver = false let composerToolbar: ComposerToolbar init(context: RoomScreenViewModelType.Context, @@ -73,15 +72,6 @@ struct RoomScreen: View { .overlay { loadingIndicator } .timelineMediaPreview(viewModel: $context.mediaPreviewViewModel) .track(screen: .Room) - .onDrop(of: ["public.item", "public.file-url"], isTargeted: $dragOver) { providers -> Bool in - guard let provider = providers.first, - provider.isSupportedForPasteOrDrop else { - return false - } - - timelineContext.send(viewAction: .handlePasteOrDrop(provider: provider)) - return true - } .sentryTrace("\(Self.self)") } diff --git a/ElementX/Sources/Screens/ThreadTimelineScreen/View/ThreadTimelineScreen.swift b/ElementX/Sources/Screens/ThreadTimelineScreen/View/ThreadTimelineScreen.swift index aa76009d6..783a09500 100644 --- a/ElementX/Sources/Screens/ThreadTimelineScreen/View/ThreadTimelineScreen.swift +++ b/ElementX/Sources/Screens/ThreadTimelineScreen/View/ThreadTimelineScreen.swift @@ -12,7 +12,6 @@ struct ThreadTimelineScreen: View { @ObservedObject private var context: ThreadTimelineScreenViewModelType.Context @ObservedObject private var timelineContext: TimelineViewModelType.Context @ObservedObject private var composerToolbarContext: ComposerToolbarViewModelType.Context - @State private var dragOver = false private let composerToolbar: ComposerToolbar init(context: ThreadTimelineScreenViewModelType.Context, @@ -53,15 +52,6 @@ struct ThreadTimelineScreen: View { // Make sure the reply header honours the hideTimelineMedia setting too. .environment(\.shouldAutomaticallyLoadImages, !timelineContext.viewState.hideTimelineMedia) } - .onDrop(of: ["public.item", "public.file-url"], isTargeted: $dragOver) { providers -> Bool in - guard let provider = providers.first, - provider.isSupportedForPasteOrDrop else { - return false - } - - timelineContext.send(viewAction: .handlePasteOrDrop(provider: provider)) - return true - } } @ViewBuilder diff --git a/ElementX/Sources/Screens/Timeline/View/TimelineView.swift b/ElementX/Sources/Screens/Timeline/View/TimelineView.swift index 3fecedc59..eb3ca6469 100644 --- a/ElementX/Sources/Screens/Timeline/View/TimelineView.swift +++ b/ElementX/Sources/Screens/Timeline/View/TimelineView.swift @@ -10,6 +10,7 @@ import WysiwygComposer struct TimelineView: View { @ObservedObject var timelineContext: TimelineViewModel.Context + @State private var dragOver = false var body: some View { TimelineViewRepresentable() @@ -51,6 +52,15 @@ struct TimelineView: View { ReadReceiptsSummaryView(orderedReadReceipts: $0.orderedReceipts) .environmentObject(timelineContext) } + .onDrop(of: ["public.item", "public.file-url"], isTargeted: $dragOver) { providers -> Bool in + guard let provider = providers.first, + provider.isSupportedForPasteOrDrop else { + return false + } + + timelineContext.send(viewAction: .handlePasteOrDrop(provider: provider)) + return true + } } }