This commit is contained in:
启星
2025-08-08 10:49:36 +08:00
parent 6400cf78bb
commit b5ce3d580a
8780 changed files with 978183 additions and 0 deletions

View File

@@ -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")
}
}