Swiftgram/TelegramUI/ChatInterfaceStateAccessoryPanels.swift
2016-11-03 23:02:21 +03:00

32 lines
1.5 KiB
Swift

import Foundation
import AsyncDisplayKit
import TelegramCore
func accessoryPanelForChatPresentationIntefaceState(_ chatPresentationInterfaceState: ChatPresentationInterfaceState, account: Account, currentPanel: AccessoryPanelNode?, interfaceInteraction: ChatPanelInterfaceInteraction?) -> AccessoryPanelNode? {
if let _ = chatPresentationInterfaceState.interfaceState.selectionState {
return nil
}
if let forwardMessageIds = chatPresentationInterfaceState.interfaceState.forwardMessageIds {
if let forwardPanelNode = currentPanel as? ForwardAccessoryPanelNode, forwardPanelNode.messageIds == forwardMessageIds {
forwardPanelNode.interfaceInteraction = interfaceInteraction
return forwardPanelNode
} else {
let panelNode = ForwardAccessoryPanelNode(account: account, messageIds: forwardMessageIds)
panelNode.interfaceInteraction = interfaceInteraction
return panelNode
}
} else if let replyMessageId = chatPresentationInterfaceState.interfaceState.replyMessageId {
if let replyPanelNode = currentPanel as? ReplyAccessoryPanelNode, replyPanelNode.messageId == replyMessageId {
replyPanelNode.interfaceInteraction = interfaceInteraction
return replyPanelNode
} else {
let panelNode = ReplyAccessoryPanelNode(account: account, messageId: replyMessageId)
panelNode.interfaceInteraction = interfaceInteraction
return panelNode
}
} else {
return nil
}
}