feat(live-room): 하트를 길게(2초)간 누르면 표시 되는 왕하트(100캔) 추가, 애니메이션 제외
This commit is contained in:
@@ -1897,12 +1897,15 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
|
||||
}
|
||||
}
|
||||
|
||||
func likeHeart() {
|
||||
func likeHeart(
|
||||
messageType: LiveRoomChatRawMessage.LiveRoomChatRawMessageType = .HEART_DONATION,
|
||||
heartCount: Int = 1
|
||||
) {
|
||||
if isAvailableLikeHeart {
|
||||
if !isLoadingLikeHeart {
|
||||
isLoadingLikeHeart = true
|
||||
|
||||
repository.likeHeart(roomId: AppState.shared.roomId)
|
||||
repository.likeHeart(roomId: AppState.shared.roomId, heartCount: heartCount)
|
||||
.sink { result in
|
||||
switch result {
|
||||
case .finished:
|
||||
@@ -1919,12 +1922,12 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
|
||||
let decoded = try jsonDecoder.decode(ApiResponseWithoutData.self, from: responseData)
|
||||
|
||||
if decoded.success {
|
||||
UserDefaults.set(UserDefaults.int(forKey: .can) - 1, forKey: .can)
|
||||
UserDefaults.set(UserDefaults.int(forKey: .can) - heartCount, forKey: .can)
|
||||
|
||||
let donationRawMessage = LiveRoomChatRawMessage(
|
||||
type: .HEART_DONATION,
|
||||
type: messageType,
|
||||
message: "",
|
||||
can: 1,
|
||||
can: heartCount,
|
||||
donationMessage: nil
|
||||
)
|
||||
|
||||
@@ -1933,7 +1936,7 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
|
||||
let (nickname, _) = self.getUserNicknameAndProfileUrl(accountId: UserDefaults.int(forKey: .userId))
|
||||
self.addHeartMessage(nickname: nickname)
|
||||
|
||||
totalHeartCount += 1
|
||||
totalHeartCount += heartCount
|
||||
addHeart()
|
||||
|
||||
self.invalidateChat()
|
||||
@@ -2255,6 +2258,10 @@ extension LiveRoomViewModel: AgoraRtmClientDelegate {
|
||||
self.addHeartMessage(nickname: nickname)
|
||||
self.totalHeartCount += decoded.can
|
||||
self.addHeart()
|
||||
} else if decoded.type == .BIG_HEART_DONATION {
|
||||
self.addHeartMessage(nickname: nickname)
|
||||
self.totalHeartCount += decoded.can
|
||||
self.addHeart()
|
||||
}
|
||||
} catch {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user