mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
Setup the threaded timeline media preview action
This commit is contained in:
committed by
Stefan Ceriu
parent
bc1f7ca646
commit
565ca3ab0b
@@ -81,7 +81,7 @@ final class ThreadTimelineScreenCoordinator: CoordinatorProtocol {
|
|||||||
case .displayDocumentPicker:
|
case .displayDocumentPicker:
|
||||||
actionsSubject.send(.presentMediaUploadPicker(.documents))
|
actionsSubject.send(.presentMediaUploadPicker(.documents))
|
||||||
case .displayMediaPreview(let mediaPreviewViewModel):
|
case .displayMediaPreview(let mediaPreviewViewModel):
|
||||||
break
|
viewModel.displayMediaPreview(mediaPreviewViewModel)
|
||||||
case .displayLocationPicker:
|
case .displayLocationPicker:
|
||||||
actionsSubject.send(.presentLocationPicker)
|
actionsSubject.send(.presentLocationPicker)
|
||||||
case .displayPollForm(let mode):
|
case .displayPollForm(let mode):
|
||||||
@@ -96,11 +96,7 @@ final class ThreadTimelineScreenCoordinator: CoordinatorProtocol {
|
|||||||
actionsSubject.send(.presentLocationViewer(body: body, geoURI: geoURI, description: description))
|
actionsSubject.send(.presentLocationViewer(body: body, geoURI: geoURI, description: description))
|
||||||
case .displayResolveSendFailure(let failure, let sendHandle):
|
case .displayResolveSendFailure(let failure, let sendHandle):
|
||||||
actionsSubject.send(.presentResolveSendFailure(failure: failure, sendHandle: sendHandle))
|
actionsSubject.send(.presentResolveSendFailure(failure: failure, sendHandle: sendHandle))
|
||||||
case .displayThread(let itemID):
|
case .displayThread, .composer, .hasScrolled:
|
||||||
break
|
|
||||||
case .composer(let action):
|
|
||||||
break
|
|
||||||
case .hasScrolled(direction: let direction):
|
|
||||||
break
|
break
|
||||||
case .viewInRoomTimeline:
|
case .viewInRoomTimeline:
|
||||||
fatalError("The action: \(action) should not be sent to this coordinator")
|
fatalError("The action: \(action) should not be sent to this coordinator")
|
||||||
|
|||||||
@@ -28,4 +28,18 @@ class ThreadTimelineScreenViewModel: ThreadTimelineScreenViewModelType, ThreadTi
|
|||||||
// Work around QLPreviewController dismissal issues, see the InteractiveQuickLookModifier.
|
// Work around QLPreviewController dismissal issues, see the InteractiveQuickLookModifier.
|
||||||
state.bindings.mediaPreviewViewModel = nil
|
state.bindings.mediaPreviewViewModel = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func displayMediaPreview(_ mediaPreviewViewModel: TimelineMediaPreviewViewModel) {
|
||||||
|
mediaPreviewViewModel.actions.sink { [weak self] action in
|
||||||
|
switch action {
|
||||||
|
case .viewInRoomTimeline:
|
||||||
|
fatalError("viewInRoomTimeline should not be visible on a thread preview.")
|
||||||
|
case .dismiss:
|
||||||
|
self?.state.bindings.mediaPreviewViewModel = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.store(in: &cancellables)
|
||||||
|
|
||||||
|
state.bindings.mediaPreviewViewModel = mediaPreviewViewModel
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -13,4 +13,6 @@ protocol ThreadTimelineScreenViewModelProtocol {
|
|||||||
var context: ThreadTimelineScreenViewModelType.Context { get }
|
var context: ThreadTimelineScreenViewModelType.Context { get }
|
||||||
|
|
||||||
func stop()
|
func stop()
|
||||||
|
|
||||||
|
func displayMediaPreview(_ mediaPreviewViewModel: TimelineMediaPreviewViewModel)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user