Skip to main content

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>]
)

Did you find this page helpful?