import Foundation import Display import ChatControllerInteraction import AccountContext extension ChatControllerImpl { func openLinkLongTap(_ action: ChatControllerInteractionLongTapAction, params: ChatControllerInteraction.LongTapParams?) { if self.presentationInterfaceState.interfaceState.selectionState != nil { return } self.dismissAllTooltips() (self.view.window as? WindowHost)?.cancelInteractiveKeyboardGestures() self.chatDisplayNode.cancelInteractiveKeyboardGestures() self.chatDisplayNode.messageTransitionNode.dismissMessageReactionContexts() guard let params else { return } switch action { case let .url(url): self.openLinkContextMenu(url: url, params: params) case let .mention(mention): self.openMentionContextMenu(username: mention, peerId: nil, params: params) case let .peerMention(peerId, mention): self.openMentionContextMenu(username: mention, peerId: peerId, params: params) case let .command(command): self.openCommandContextMenu(command: command, params: params) case let .hashtag(hashtag): self.openHashtagContextMenu(hashtag: hashtag, params: params) case let .timecode(value, timecode): self.openTimecodeContextMenu(timecode: timecode, value: value, params: params) case let .bankCard(number): self.openBankCardContextMenu(number: number, params: params) case let .phone(number): self.openPhoneContextMenu(number: number, params: params) } } }