提交
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
//
|
||||
// InviteView.swift
|
||||
// TUIRoomKit
|
||||
//
|
||||
// Created by jeremiawang on 2024/8/26.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import Factory
|
||||
|
||||
class InviteView: UIView {
|
||||
private var isViewReady: Bool = false
|
||||
|
||||
let stackView: UIStackView = {
|
||||
let view = UIStackView()
|
||||
view.axis = .vertical
|
||||
view.alignment = .center
|
||||
view.distribution = .fillEqually
|
||||
view.spacing = 0
|
||||
return view
|
||||
}()
|
||||
|
||||
private lazy var addUserView: ButtonItemView = {
|
||||
let item = ButtonItemData()
|
||||
item.normalTitle = .addUserText
|
||||
item.normalIcon = "room_add_user"
|
||||
item.resourceBundle = tuiRoomKitBundle()
|
||||
item.buttonType = .muteAudioItemType
|
||||
item.hasLineView = true
|
||||
return ButtonItemView(itemData: item)
|
||||
}()
|
||||
|
||||
private lazy var inviteToJoinView: ButtonItemView = {
|
||||
let item = ButtonItemData()
|
||||
item.normalTitle = .shareRoomText
|
||||
item.normalIcon = "room_invite_to_join"
|
||||
item.resourceBundle = tuiRoomKitBundle()
|
||||
item.buttonType = .muteVideoItemType
|
||||
item.hasLineView = true
|
||||
return ButtonItemView(itemData: item)
|
||||
}()
|
||||
|
||||
init() {
|
||||
super.init(frame: .zero)
|
||||
}
|
||||
|
||||
required init?(coder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
override func draw(_ rect: CGRect) {
|
||||
super.draw(rect)
|
||||
self.layer.cornerRadius = 16
|
||||
}
|
||||
|
||||
override func didMoveToWindow() {
|
||||
super.didMoveToWindow()
|
||||
guard !isViewReady else { return }
|
||||
constructViewHierarchy()
|
||||
activateConstraints()
|
||||
bindInteraction()
|
||||
isViewReady = true
|
||||
}
|
||||
|
||||
private func constructViewHierarchy() {
|
||||
addSubview(stackView)
|
||||
stackView.addArrangedSubview(addUserView)
|
||||
stackView.addArrangedSubview(inviteToJoinView)
|
||||
}
|
||||
|
||||
func activateConstraints() {
|
||||
stackView.snp.makeConstraints { make in
|
||||
make.top.equalToSuperview()
|
||||
make.leading.equalToSuperview().offset(16.scale375())
|
||||
make.trailing.equalToSuperview().offset(-16.scale375())
|
||||
make.bottom.equalToSuperview().offset(-34.scale375Height())
|
||||
}
|
||||
addUserView.snp.makeConstraints { make in
|
||||
make.height.equalTo(53.scale375())
|
||||
make.width.equalToSuperview()
|
||||
}
|
||||
inviteToJoinView.snp.makeConstraints { make in
|
||||
make.height.equalTo(53.scale375())
|
||||
make.width.equalToSuperview()
|
||||
}
|
||||
}
|
||||
|
||||
func bindInteraction() {
|
||||
addUserView.itemData.action = { sender in
|
||||
self.conferenceStore.dispatch(action: InvitationViewActions.showInvitationPopupView())
|
||||
RoomRouter.shared.dismissPopupViewController()
|
||||
}
|
||||
inviteToJoinView.itemData.action = { sender in
|
||||
RoomRouter.shared.presentPopUpViewController(viewType: .inviteMemberViewType, height: 290.scale375Height())
|
||||
}
|
||||
}
|
||||
|
||||
@Injected(\.navigation) private var route
|
||||
@Injected(\.conferenceStore) var conferenceStore: ConferenceStore
|
||||
}
|
||||
|
||||
private extension String {
|
||||
static var addUserText: String {
|
||||
localized("Add user")
|
||||
}
|
||||
static var shareRoomText: String {
|
||||
localized("Share room")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user