Reaction improvements

This commit is contained in:
Ali
2021-12-22 20:35:45 +04:00
parent 216ddc4a6e
commit 4803a3c6cc
19 changed files with 215 additions and 75 deletions

View File

@@ -63,18 +63,23 @@ final class ChatMessageWebpageBubbleContentNode: ChatMessageBubbleContentNode {
}
self.contentNode.activateAction = { [weak self] in
if let strongSelf = self, let item = strongSelf.item {
if let adAttribute = item.message.adAttribute, let author = item.message.author {
let navigationData: ChatControllerInteractionNavigateToPeer
if let bot = author as? TelegramUser, bot.botInfo != nil, let startParam = adAttribute.startParam {
navigationData = .withBotStartPayload(ChatControllerInitialBotStart(payload: startParam, behavior: .interactive))
} else {
var subject: ChatControllerSubject?
if let messageId = adAttribute.messageId {
subject = .message(id: .id(messageId), highlight: true, timecode: nil)
if let adAttribute = item.message.adAttribute {
switch adAttribute.target {
case let .peer(id, messageId, startParam):
let navigationData: ChatControllerInteractionNavigateToPeer
if let bot = item.message.author as? TelegramUser, bot.botInfo != nil, let startParam = startParam {
navigationData = .withBotStartPayload(ChatControllerInitialBotStart(payload: startParam, behavior: .interactive))
} else {
var subject: ChatControllerSubject?
if let messageId = messageId {
subject = .message(id: .id(messageId), highlight: true, timecode: nil)
}
navigationData = .chat(textInputState: nil, subject: subject, peekData: nil)
}
navigationData = .chat(textInputState: nil, subject: subject, peekData: nil)
item.controllerInteraction.openPeer(id, navigationData, nil)
case let .join(_, joinHash):
item.controllerInteraction.openJoinLink(joinHash)
}
item.controllerInteraction.openPeer(author.id, navigationData, nil)
} else {
var webPageContent: TelegramMediaWebpageLoadedContent?
for media in item.message.media {
@@ -342,13 +347,13 @@ final class ChatMessageWebpageBubbleContentNode: ChatMessageBubbleContentNode {
if let author = item.message.author as? TelegramUser, author.botInfo != nil {
actionTitle = item.presentationData.strings.Conversation_ViewBot
} else if let author = item.message.author as? TelegramChannel, case .group = author.info {
if adAttribute.messageId != nil {
if case let .peer(_, messageId, _) = adAttribute.target, messageId != nil {
actionTitle = item.presentationData.strings.Conversation_ViewPost
} else {
actionTitle = item.presentationData.strings.Conversation_ViewGroup
}
} else {
if adAttribute.messageId != nil {
if case let .peer(_, messageId, _) = adAttribute.target, messageId != nil {
actionTitle = item.presentationData.strings.Conversation_ViewMessage
} else {
actionTitle = item.presentationData.strings.Conversation_ViewChannel