mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 06:35:51 +00:00
no message
This commit is contained in:
@@ -2,31 +2,78 @@ import Foundation
|
||||
import AsyncDisplayKit
|
||||
import TelegramCore
|
||||
|
||||
func inputPanelForChatIntefaceState(_ chatInterfaceState: ChatInterfaceState, account: Account, currentPanel: ChatInputPanelNode?, textInputPanelNode: ChatTextInputPanelNode?, interfaceInteraction: ChatPanelInterfaceInteraction?) -> ChatInputPanelNode? {
|
||||
if let selectionState = chatInterfaceState.selectionState {
|
||||
func inputPanelForChatPresentationIntefaceState(_ chatPresentationInterfaceState: ChatPresentationInterfaceState, account: Account, currentPanel: ChatInputPanelNode?, textInputPanelNode: ChatTextInputPanelNode?, interfaceInteraction: ChatPanelInterfaceInteraction?) -> ChatInputPanelNode? {
|
||||
if let selectionState = chatPresentationInterfaceState.interfaceState.selectionState {
|
||||
if let currentPanel = currentPanel as? ChatMessageSelectionInputPanelNode {
|
||||
currentPanel.selectedMessageCount = selectionState.selectedIds.count
|
||||
currentPanel.interfaceInteraction = interfaceInteraction
|
||||
currentPanel.peer = chatPresentationInterfaceState.peer
|
||||
return currentPanel
|
||||
} else {
|
||||
let panel = ChatMessageSelectionInputPanelNode()
|
||||
panel.account = account
|
||||
panel.peer = chatPresentationInterfaceState.peer
|
||||
panel.selectedMessageCount = selectionState.selectedIds.count
|
||||
panel.interfaceInteraction = interfaceInteraction
|
||||
return panel
|
||||
}
|
||||
} else {
|
||||
if let currentPanel = currentPanel as? ChatTextInputPanelNode {
|
||||
currentPanel.interfaceInteraction = interfaceInteraction
|
||||
return currentPanel
|
||||
} else {
|
||||
if let textInputPanelNode = textInputPanelNode {
|
||||
textInputPanelNode.interfaceInteraction = interfaceInteraction
|
||||
return textInputPanelNode
|
||||
} else {
|
||||
let panel = ChatTextInputPanelNode()
|
||||
panel.interfaceInteraction = interfaceInteraction
|
||||
return panel
|
||||
if let peer = chatPresentationInterfaceState.peer {
|
||||
if let channel = peer as? TelegramChannel {
|
||||
switch channel.info {
|
||||
case .broadcast:
|
||||
switch channel.role {
|
||||
case .creator, .editor, .moderator:
|
||||
break
|
||||
case .member:
|
||||
if let currentPanel = currentPanel as? ChatChannelSubscriberInputPanelNode {
|
||||
currentPanel.peer = peer
|
||||
return currentPanel
|
||||
} else {
|
||||
let panel = ChatChannelSubscriberInputPanelNode()
|
||||
panel.account = account
|
||||
panel.peer = peer
|
||||
return panel
|
||||
}
|
||||
}
|
||||
case .group:
|
||||
switch channel.participationStatus {
|
||||
case .kicked, .left:
|
||||
if let currentPanel = currentPanel as? ChatChannelSubscriberInputPanelNode {
|
||||
currentPanel.peer = peer
|
||||
return currentPanel
|
||||
} else {
|
||||
let panel = ChatChannelSubscriberInputPanelNode()
|
||||
panel.account = account
|
||||
panel.peer = peer
|
||||
return panel
|
||||
}
|
||||
case .member:
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if let currentPanel = currentPanel as? ChatTextInputPanelNode {
|
||||
currentPanel.interfaceInteraction = interfaceInteraction
|
||||
currentPanel.peer = peer
|
||||
return currentPanel
|
||||
} else {
|
||||
if let textInputPanelNode = textInputPanelNode {
|
||||
textInputPanelNode.interfaceInteraction = interfaceInteraction
|
||||
textInputPanelNode.account = account
|
||||
textInputPanelNode.peer = peer
|
||||
return textInputPanelNode
|
||||
} else {
|
||||
let panel = ChatTextInputPanelNode()
|
||||
panel.interfaceInteraction = interfaceInteraction
|
||||
panel.account = account
|
||||
panel.peer = peer
|
||||
return panel
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user