Files
midi_ios/TUIKit/TUIRoomKit/Source/View/ViewModel/MoreFunctionViewModel.swift
2025-08-14 10:07:49 +08:00

78 lines
2.2 KiB
Swift

//
// MoreFunctionViewModel.swift
// TUIRoomKit
//
// Created by janejntang on 2023/1/12.
// Copyright © 2023 Tencent. All rights reserved.
//
import Foundation
import TUICore
class MoreFunctionViewModel {
private(set) var viewItems: [ButtonItemData] = []
var engineManager: EngineManager {
return EngineManager.shared
}
var engineEventCenter: EngineEventCenter {
return EngineEventCenter.shared
}
init() {
createBottomData()
}
func createBottomData() {
if hasTUIChatItem() {
let chatItem = ButtonItemData()
chatItem.normalIcon = "room_chat"
chatItem.normalTitle = .chatText
chatItem.resourceBundle = tuiRoomKitBundle()
chatItem.action = { [weak self] sender in
guard let self = self, let button = sender as? UIButton else { return }
self.chatAction(sender: button)
}
viewItems.append(chatItem)
}
let settingItem = ButtonItemData()
settingItem.normalIcon = "room_setting"
settingItem.normalTitle = .settingText
settingItem.resourceBundle = tuiRoomKitBundle()
settingItem.action = { [weak self] sender in
guard let self = self, let button = sender as? UIButton else { return }
self.settingAction(sender: button)
}
viewItems.append(settingItem)
}
private func hasTUIChatItem() -> Bool {
return TUICore.getService(TUICore_TUIChatService) != nil
}
func settingAction(sender: UIButton) {
sender.isSelected = !sender.isSelected
RoomRouter.shared.presentPopUpViewController(viewType: .mediaSettingViewType, height: 300.scale375())
}
func chatAction(sender: UIButton) {
RoomRouter.shared.dismissPopupViewController()
let user = engineManager.store.currentUser
let roomInfo = engineManager.store.roomInfo
RoomRouter.shared.pushToChatController(user: user, roomInfo: roomInfo)
}
deinit {
debugPrint("deinit \(self)")
}
}
private extension String {
static var settingText: String {
localized("Settings")
}
static var chatText: String {
localized("Chat")
}
}