mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 06:55:59 +00:00
Add thread specific route mappings
This commit is contained in:
committed by
Stefan Ceriu
parent
4cb8ae3ef6
commit
1ff1813b01
@@ -346,24 +346,24 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
|
||||
case (.inviteUsersScreen, .dismissInviteUsersScreen, .roomMembersList):
|
||||
break
|
||||
|
||||
case (.room, .presentReportContent, .reportContent(let itemID, let senderID)):
|
||||
case (.room, .presentReportContent, .reportContent(let itemID, let senderID, _)):
|
||||
presentReportContent(for: itemID, from: senderID)
|
||||
case (.reportContent, .dismissReportContent, .room):
|
||||
break
|
||||
|
||||
case (.room, .presentMediaUploadPicker, .mediaUploadPicker(let source)):
|
||||
case (.room, .presentMediaUploadPicker, .mediaUploadPicker(let source, _)):
|
||||
presentMediaUploadPickerWithSource(source)
|
||||
case (.mediaUploadPicker, .dismissMediaUploadPicker, .room):
|
||||
break
|
||||
|
||||
case (.mediaUploadPicker, .presentMediaUploadPreview, .mediaUploadPreview(let fileURL)):
|
||||
case (.mediaUploadPicker, .presentMediaUploadPreview, .mediaUploadPreview(let fileURL, _)):
|
||||
presentMediaUploadPreviewScreen(for: fileURL, animated: animated)
|
||||
case (.room, .presentMediaUploadPreview, .mediaUploadPreview(let fileURL)):
|
||||
case (.room, .presentMediaUploadPreview, .mediaUploadPreview(let fileURL, _)):
|
||||
presentMediaUploadPreviewScreen(for: fileURL, animated: animated)
|
||||
case (.mediaUploadPreview, .dismissMediaUploadPreview, .room):
|
||||
break
|
||||
|
||||
case (_, .presentEmojiPicker, .emojiPicker(let itemID, let selectedEmoji)):
|
||||
case (_, .presentEmojiPicker, .emojiPicker(let itemID, let selectedEmoji, _)):
|
||||
presentEmojiPicker(for: itemID, selectedEmoji: selectedEmoji)
|
||||
case (.emojiPicker, .dismissEmojiPicker, _):
|
||||
break
|
||||
|
||||
@@ -57,18 +57,18 @@ extension RoomFlowCoordinator {
|
||||
case roomMemberDetails(userID: String, previousState: State)
|
||||
case userProfile(userID: String, previousState: State)
|
||||
case inviteUsersScreen(previousState: State)
|
||||
case mediaUploadPicker(source: MediaPickerScreenSource)
|
||||
case mediaUploadPreview(fileURL: URL)
|
||||
case emojiPicker(itemID: TimelineItemIdentifier, selectedEmojis: Set<String>)
|
||||
case mapNavigator
|
||||
case messageForwarding(forwardingItem: MessageForwardingItem)
|
||||
case reportContent(itemID: TimelineItemIdentifier, senderID: String)
|
||||
case pollForm
|
||||
case mediaUploadPicker(source: MediaPickerScreenSource, previousState: State)
|
||||
case mediaUploadPreview(fileURL: URL, previousState: State)
|
||||
case emojiPicker(itemID: TimelineItemIdentifier, selectedEmojis: Set<String>, previousState: State)
|
||||
case mapNavigator(previousState: State)
|
||||
case messageForwarding(forwardingItem: MessageForwardingItem, previousState: State)
|
||||
case reportContent(itemID: TimelineItemIdentifier, senderID: String, previousState: State)
|
||||
case pollForm(previousState: State)
|
||||
case pollsHistory
|
||||
case pollsHistoryForm
|
||||
case rolesAndPermissions
|
||||
case pinnedEventsTimeline(previousState: State)
|
||||
case resolveSendFailure
|
||||
case resolveSendFailure(previousState: State)
|
||||
case knockRequestsList(previousState: State)
|
||||
case mediaEventsTimeline(previousState: State)
|
||||
case securityAndPrivacy(previousState: State)
|
||||
@@ -182,41 +182,27 @@ extension RoomFlowCoordinator {
|
||||
return .complete
|
||||
|
||||
case (.room, .presentReportContent(let itemID, let senderID)):
|
||||
return .reportContent(itemID: itemID, senderID: senderID)
|
||||
case (.reportContent, .dismissReportContent):
|
||||
return .room
|
||||
return .reportContent(itemID: itemID, senderID: senderID, previousState: fromState)
|
||||
|
||||
case (.room, .presentMediaUploadPicker(let source)):
|
||||
return .mediaUploadPicker(source: source)
|
||||
case (.mediaUploadPicker, .dismissMediaUploadPicker):
|
||||
return .room
|
||||
|
||||
return .mediaUploadPicker(source: source, previousState: fromState)
|
||||
|
||||
case (.mediaUploadPicker, .presentMediaUploadPreview(let fileURL)):
|
||||
return .mediaUploadPreview(fileURL: fileURL)
|
||||
return .mediaUploadPreview(fileURL: fileURL, previousState: fromState)
|
||||
case (.room, .presentMediaUploadPreview(let fileURL)):
|
||||
return .mediaUploadPreview(fileURL: fileURL)
|
||||
case (.mediaUploadPreview, .dismissMediaUploadPreview):
|
||||
return .room
|
||||
return .mediaUploadPreview(fileURL: fileURL, previousState: fromState)
|
||||
|
||||
case (.room, .presentEmojiPicker(let itemID, let selectedEmoji)):
|
||||
return .emojiPicker(itemID: itemID, selectedEmojis: selectedEmoji)
|
||||
case (.emojiPicker, .dismissEmojiPicker):
|
||||
return .room
|
||||
|
||||
return .emojiPicker(itemID: itemID, selectedEmojis: selectedEmoji, previousState: fromState)
|
||||
|
||||
case (.room, .presentMessageForwarding(let forwardingItem)):
|
||||
return .messageForwarding(forwardingItem: forwardingItem)
|
||||
case (.messageForwarding, .dismissMessageForwarding):
|
||||
return .room
|
||||
return .messageForwarding(forwardingItem: forwardingItem, previousState: fromState)
|
||||
|
||||
case (.room, .presentMapNavigator):
|
||||
return .mapNavigator
|
||||
case (.mapNavigator, .dismissMapNavigator):
|
||||
return .room
|
||||
return .mapNavigator(previousState: fromState)
|
||||
|
||||
case (.room, .presentPollForm):
|
||||
return .pollForm
|
||||
case (.pollForm, .dismissPollForm):
|
||||
return .room
|
||||
return .pollForm(previousState: fromState)
|
||||
|
||||
case (.room, .presentPinnedEventsTimeline):
|
||||
return .pinnedEventsTimeline(previousState: fromState)
|
||||
@@ -226,16 +212,61 @@ extension RoomFlowCoordinator {
|
||||
return previousState
|
||||
|
||||
case (.room, .presentResolveSendFailure):
|
||||
return .resolveSendFailure
|
||||
case (.resolveSendFailure, .dismissResolveSendFailure):
|
||||
return .room
|
||||
return .resolveSendFailure(previousState: fromState)
|
||||
|
||||
// Thread
|
||||
case (_, .presentThread(let itemID)):
|
||||
case (.room, .presentThread(let itemID)):
|
||||
return .thread(itemID: itemID)
|
||||
case (_, .dismissThread):
|
||||
case (.thread, .dismissThread):
|
||||
return .room
|
||||
|
||||
case (.thread, .presentReportContent(let itemID, let senderID)):
|
||||
return .reportContent(itemID: itemID, senderID: senderID, previousState: fromState)
|
||||
|
||||
case (.thread, .presentMediaUploadPicker(let source)):
|
||||
return .mediaUploadPicker(source: source, previousState: fromState)
|
||||
|
||||
case (.thread, .presentMediaUploadPreview(let fileURL)):
|
||||
return .mediaUploadPreview(fileURL: fileURL, previousState: fromState)
|
||||
|
||||
case (.thread, .presentEmojiPicker(let itemID, let selectedEmoji)):
|
||||
return .emojiPicker(itemID: itemID, selectedEmojis: selectedEmoji, previousState: fromState)
|
||||
|
||||
case (.thread, .presentMessageForwarding(let forwardingItem)):
|
||||
return .messageForwarding(forwardingItem: forwardingItem, previousState: fromState)
|
||||
|
||||
case (.thread, .presentMapNavigator):
|
||||
return .mapNavigator(previousState: fromState)
|
||||
|
||||
case (.thread, .presentPollForm):
|
||||
return .pollForm(previousState: fromState)
|
||||
|
||||
case (.thread, .presentResolveSendFailure):
|
||||
return .resolveSendFailure(previousState: fromState)
|
||||
|
||||
// Room + Thread
|
||||
|
||||
case (.mediaUploadPicker(_, let previousState), .dismissMediaUploadPicker):
|
||||
return previousState
|
||||
|
||||
case (.emojiPicker(_, _, let previouState), .dismissEmojiPicker):
|
||||
return previouState
|
||||
|
||||
case (.reportContent(_, _, let previousState), .dismissReportContent):
|
||||
return previousState
|
||||
|
||||
case (.messageForwarding(_, let previousState), .dismissMessageForwarding):
|
||||
return previousState
|
||||
|
||||
case (.mapNavigator(let previousState), .dismissMapNavigator):
|
||||
return previousState
|
||||
|
||||
case (.pollForm(let previousState), .dismissPollForm):
|
||||
return previousState
|
||||
|
||||
case (.resolveSendFailure(let previousState), .dismissResolveSendFailure):
|
||||
return previousState
|
||||
|
||||
// Room Details
|
||||
|
||||
case (.initial, .presentRoomDetails):
|
||||
@@ -319,6 +350,9 @@ extension RoomFlowCoordinator {
|
||||
case (.knockRequestsList(let previousState), .dismissKnockRequestsListScreen):
|
||||
return previousState
|
||||
|
||||
case (.mediaUploadPreview(_, let previousState), .dismissMediaUploadPreview):
|
||||
return previousState
|
||||
|
||||
case (.notificationSettings, .presentGlobalNotificationSettingsScreen):
|
||||
return .globalNotificationSettings
|
||||
case (.globalNotificationSettings, .dismissGlobalNotificationSettingsScreen):
|
||||
|
||||
Reference in New Issue
Block a user