Have the EmojiPicker screen take in a TimelineController similar to all the other flows.

This commit is contained in:
Stefan Ceriu
2025-07-24 14:02:17 +03:00
committed by Stefan Ceriu
parent c53e3ef18d
commit 1a7f58711b
@@ -309,7 +309,13 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
presentMediaUploadPickerWithSource(source, timelineController: timelineController, animated: animated) presentMediaUploadPickerWithSource(source, timelineController: timelineController, animated: animated)
case (_, .presentEmojiPicker, .emojiPicker(let itemID, let selectedEmoji, _)): case (_, .presentEmojiPicker, .emojiPicker(let itemID, let selectedEmoji, _)):
presentEmojiPicker(for: itemID, selectedEmoji: selectedEmoji) guard let timelineController = (context.userInfo as? EventUserInfo)?.timelineController else {
fatalError("Missing required TimelineController")
}
presentEmojiPicker(for: itemID,
selectedEmoji: selectedEmoji,
timelineController: timelineController,
animated: animated)
case (_, .presentMessageForwarding(let forwardingItem), .messageForwarding): case (_, .presentMessageForwarding(let forwardingItem), .messageForwarding):
presentMessageForwarding(with: forwardingItem) presentMessageForwarding(with: forwardingItem)
@@ -557,8 +563,8 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
stateMachine.tryEvent(.presentMediaUploadPreview(fileURL: url), stateMachine.tryEvent(.presentMediaUploadPreview(fileURL: url),
userInfo: EventUserInfo(animated: animated, timelineController: timelineController)) userInfo: EventUserInfo(animated: animated, timelineController: timelineController))
case .presentEmojiPicker(let itemID, let selectedEmojis): case .presentEmojiPicker(let itemID, let selectedEmojis):
stateMachine.tryEvent(.presentEmojiPicker(itemID: itemID, stateMachine.tryEvent(.presentEmojiPicker(itemID: itemID, selectedEmojis: selectedEmojis),
selectedEmojis: selectedEmojis)) userInfo: EventUserInfo(animated: animated, timelineController: timelineController))
case .presentLocationPicker: case .presentLocationPicker:
stateMachine.tryEvent(.presentMapNavigator(interactionMode: .picker), stateMachine.tryEvent(.presentMapNavigator(interactionMode: .picker),
userInfo: EventUserInfo(animated: animated, timelineController: timelineController)) userInfo: EventUserInfo(animated: animated, timelineController: timelineController))
@@ -656,8 +662,8 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
description: description)), description: description)),
userInfo: EventUserInfo(animated: animated, timelineController: timelineController)) userInfo: EventUserInfo(animated: animated, timelineController: timelineController))
case .presentEmojiPicker(let itemID, let selectedEmojis): case .presentEmojiPicker(let itemID, let selectedEmojis):
stateMachine.tryEvent(.presentEmojiPicker(itemID: itemID, stateMachine.tryEvent(.presentEmojiPicker(itemID: itemID, selectedEmojis: selectedEmojis),
selectedEmojis: selectedEmojis)) userInfo: EventUserInfo(animated: animated, timelineController: timelineController))
case .presentRoomMemberDetails(let userID): case .presentRoomMemberDetails(let userID):
stateMachine.tryEvent(.presentRoomMemberDetails(userID: userID)) stateMachine.tryEvent(.presentRoomMemberDetails(userID: userID))
case .presentMessageForwarding(let forwardingItem): case .presentMessageForwarding(let forwardingItem):
@@ -971,7 +977,10 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
} }
} }
private func presentEmojiPicker(for itemID: TimelineItemIdentifier, selectedEmoji: Set<String>) { private func presentEmojiPicker(for itemID: TimelineItemIdentifier,
selectedEmoji: Set<String>,
timelineController: TimelineControllerProtocol,
animated: Bool) {
let params = EmojiPickerScreenCoordinatorParameters(emojiProvider: emojiProvider, let params = EmojiPickerScreenCoordinatorParameters(emojiProvider: emojiProvider,
itemID: itemID, selectedEmojis: selectedEmoji) itemID: itemID, selectedEmojis: selectedEmoji)
let coordinator = EmojiPickerScreenCoordinator(parameters: params) let coordinator = EmojiPickerScreenCoordinator(parameters: params)