Skip to main content

Explore Chatroom View

Overview

The LMChatExploreChatroomView is designed to display information about a chatroom in an explore or discovery context. It provides a visually rich representation of a chatroom, including its name, image, participant count, message count, and join status.

Functionality

Protocols

LMChatExploreChatroomProtocol:

  • func onTapJoinButton(_ value: Bool, _ chatroomId: String): Defines a method for handling join button taps

UI Components

  • containerView: The main container view.
  • chatroomImageView: Displays the chatroom's image.
  • chatroomNameLabel: Shows the name of the chatroom.
  • chatroomTitleLabel: Displays the title or description of the chatroom.
  • chatroomParticipantsCountLabel: Shows the number of participants and messages.
  • joinButton: Allows users to join or leave the chatroom.
  • lockIconImageView: Indicates if the chatroom is secret.
  • announcementIconImageView: Indicates if the chatroom is for announcements.
  • pinnedIconImageView: Shows if the chatroom is pinned.
  • newLabel: Indicates if the chatroom is new or unseen.

Methods

  • setData(_:delegate:): Configures the view with chatroom data and sets the delegate.
  • getAttachmentText(participantCount:messageCount:): Creates an attributed string for participant and message counts.
  • joinButtonClicked(_:): Handles the join button tap event.
  • joinButtonTitle(_:): Updates the join button appearance based on the join status.

Customization

CustomExploreChatroomView.swift
class CustomExploreChatroomView: LMChatExploreChatroomView {
override func setupViews() {
super.setupViews()
// Add custom views or modify existing ones
}

override func setData(_ data: ContentModel, delegate: LMChatExploreChatroomProtocol?) {
super.setData(data, delegate: delegate)
// Customize data presentation
}

override func joinButtonClicked(_ sender: UIButton) {
super.joinButtonClicked(sender)
// Add custom behavior on join button click
}
}
AppDelegate.swift
func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool {
LMUIComponents.shared.exploreChatroomView = CustomExploreChatroomView.self
// ...
return true
}