ChatThreadVC
Controller responsible for displaying message thread.
@available(iOSApplicationExtension, unavailable)
open class ChatThreadVC:
_ViewController,
ThemeProvider,
ChatMessageListVCDataSource,
ChatMessageListVCDelegate,
ChatMessageControllerDelegate
Inheritance
_ViewController
, ChatMessageControllerDelegate
, ChatMessageListVCDataSource
, ChatMessageListVCDelegate
, SwiftUIRepresentable
, ThemeProvider
Properties
content
public var content: (
channelController: ChatChannelController,
messageController: ChatMessageController
)
channelController
Controller for observing data changes within the channel
open var channelController: ChatChannelController!
messageController
Controller for observing data changes within the parent thread message.
open var messageController: ChatMessageController!
client
public var client: ChatClient
keyboardHandler
Component responsible for setting the correct offset when keyboard frame is changed
open lazy var keyboardHandler: KeyboardHandler
userSuggestionSearchController
User search controller passed directly to the composer
open lazy var userSuggestionSearchController: ChatUserSearchController
messageListVC
The message list component responsible to render the messages.
open lazy var messageListVC: ChatMessageListVC
messageComposerVC
Controller that handles the composer view
open private(set) lazy var messageComposerVC
headerView
The header view of the thread that by default is the titleView
of the navigation bar.
open lazy var headerView: ChatThreadHeaderView = components
.threadHeaderView.init()
.withoutAutoresizingMaskConstraints
replies
open var replies: [ChatMessage]
Methods
setUp()
override open func setUp()
setUpLayout()
override open func setUpLayout()
viewDidAppear(_:)
override open func viewDidAppear(_ animated: Bool)
viewDidDisappear(_:)
override open func viewDidDisappear(_ animated: Bool)
channel(for:)
open func channel(for vc: ChatMessageListVC) -> ChatChannel?
numberOfMessages(in:)
open func numberOfMessages(in vc: ChatMessageListVC) -> Int
chatMessageListVC(_:messageAt:)
open func chatMessageListVC(_ vc: ChatMessageListVC, messageAt indexPath: IndexPath) -> ChatMessage?
chatMessageListVC(_:messageLayoutOptionsAt:)
open func chatMessageListVC(
_ vc: ChatMessageListVC,
messageLayoutOptionsAt indexPath: IndexPath
) -> ChatMessageLayoutOptions
chatMessageListVC(_:willDisplayMessageAt:)
open func chatMessageListVC(
_ vc: ChatMessageListVC,
willDisplayMessageAt indexPath: IndexPath
)
chatMessageListVC(_:didTapOnAction:for:)
open func chatMessageListVC(
_ vc: ChatMessageListVC,
didTapOnAction actionItem: ChatMessageActionItem,
for message: ChatMessage
)
chatMessageListVC(_:scrollViewDidScroll:)
open func chatMessageListVC(
_ vc: ChatMessageListVC,
scrollViewDidScroll scrollView: UIScrollView
)
messageController(_:didChangeMessage:)
open func messageController(
_ controller: ChatMessageController,
didChangeMessage change: EntityChange<ChatMessage>
)
messageController(_:didChangeReplies:)
open func messageController(
_ controller: ChatMessageController,
didChangeReplies changes: [ListChange<ChatMessage>]
)