|
|
@@ -103,6 +103,7 @@ class LNRoomViewModel: NSObject {
|
|
|
}
|
|
|
private let systemHandlerQueue = DispatchQueue(label: "com.gami.room.system.message", attributes: .concurrent)
|
|
|
|
|
|
+ private var isLoadingGiftList = false
|
|
|
private(set) var giftList: [LNGiftItemVO] = []
|
|
|
|
|
|
init(roomId: String) {
|
|
|
@@ -119,7 +120,7 @@ class LNRoomViewModel: NSObject {
|
|
|
setupMessageObservers()
|
|
|
setupRoomInfoObserver()
|
|
|
setupAudienceEventObservers()
|
|
|
- fetchGiftList()
|
|
|
+ reloadGiftList()
|
|
|
|
|
|
LNRoomManager.shared.updateCurRoom(self)
|
|
|
}
|
|
|
@@ -474,11 +475,9 @@ extension LNRoomViewModel {
|
|
|
newMessage.forEach {
|
|
|
switch $0.messageType {
|
|
|
case .text:
|
|
|
- if let item = LNRoomUserMessage(info: $0) {
|
|
|
- if let messageItems = item.messageItems,
|
|
|
- !messageItems.isEmpty {
|
|
|
- chatMessage.append(contentsOf: messageItems)
|
|
|
- }
|
|
|
+ if let messageItems = LNRoomUserMessage(info: $0)?.messageItems,
|
|
|
+ !messageItems.isEmpty {
|
|
|
+ chatMessage.append(contentsOf: messageItems)
|
|
|
}
|
|
|
case .custom:
|
|
|
if let item = LNRoomPushMessage(info: $0) {
|
|
|
@@ -597,13 +596,15 @@ extension LNRoomViewModel {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private func fetchGiftList() {
|
|
|
+ func reloadGiftList() {
|
|
|
+ guard !isLoadingGiftList else { return }
|
|
|
+ isLoadingGiftList = true
|
|
|
LNGiftManager.shared.fetchGiftList(roomId: roomId) { [weak self] list in
|
|
|
guard let self else { return }
|
|
|
- guard let list, !list.isEmpty else { return }
|
|
|
- giftList = list.filter({
|
|
|
- LNGiftManager.shared.resource(for: $0.resId) != nil
|
|
|
- })
|
|
|
+ if let list, !list.isEmpty {
|
|
|
+ giftList = list
|
|
|
+ }
|
|
|
+ isLoadingGiftList = false
|
|
|
}
|
|
|
}
|
|
|
}
|