Move timeline drag and drop handling to the recently introduced TimelineView.
This commit is contained in:
committed by
Stefan Ceriu
parent
f047e51ab8
commit
eeff596932
@@ -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)")
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user