라이브방

- 하트바 위치 수정 : 채팅 -> 공지 밑
This commit is contained in:
Yu Sung
2024-10-27 18:05:45 +09:00
parent 37aa6d13de
commit fed781521d
5 changed files with 40 additions and 18 deletions

View File

@@ -186,6 +186,15 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
}
}
@Published var heartNickname: String? = nil {
didSet {
if heartNickname != nil {
showNextHeartMessage()
}
}
}
@Published var heartNicknameList = [String]()
private var menuId = 0
@Published var menu = ""
@Published var menuList = [GetMenuPresetResponse]()
@@ -1881,7 +1890,7 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
completion: { [unowned self] errorCode in
if errorCode == .errorOk {
let (nickname, _) = self.getUserNicknameAndProfileUrl(accountId: UserDefaults.int(forKey: .userId))
self.messages.append(LiveRoomHeartDonationChat(nickname: nickname))
self.addHeartMessage(nickname: nickname)
totalHeartCount += 1
addHeart()
@@ -1963,6 +1972,25 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
}
}
private func addHeartMessage(nickname: String) {
if heartNickname != nil {
self.heartNicknameList.append(nickname)
} else {
self.heartNickname = nickname
}
}
private func showNextHeartMessage() {
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
if let nextHeartNickname = self.heartNicknameList.first {
self.heartNickname = nextHeartNickname
self.heartNicknameList.removeFirst()
} else {
self.heartNickname = nil
}
}
}
func startHeartTimer() {
if heartTimer == nil {
let timer = DispatchSource.makeTimerSource(queue: DispatchQueue.main)
@@ -2193,7 +2221,7 @@ extension LiveRoomViewModel: AgoraRtmChannelDelegate {
} else if decoded.type == .EDIT_ROOM_INFO || decoded.type == .SET_MANAGER {
self.getRoomInfo()
} else if decoded.type == .HEART_DONATION {
self.messages.append(LiveRoomHeartDonationChat(nickname: nickname))
self.addHeartMessage(nickname: nickname)
self.totalHeartCount += decoded.can
self.addHeart()
}