- 시그니처 후원 적용
This commit is contained in:
Yu Sung 2024-03-08 01:38:27 +09:00
parent 367be74279
commit 86d4bc1c1e
3 changed files with 30 additions and 1 deletions

View File

@ -15,6 +15,7 @@ struct LiveRoomChatRawMessage: Codable {
let type: LiveRoomChatRawMessageType let type: LiveRoomChatRawMessageType
let message: String let message: String
let can: Int let can: Int
var signatureImageUrl: String? = nil
let donationMessage: String? let donationMessage: String?
var isActiveRoulette: Bool? = nil var isActiveRoulette: Bool? = nil
} }

View File

@ -143,6 +143,16 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
@Published var rouletteSelectedItem = "" @Published var rouletteSelectedItem = ""
var rouletteCan = 0 var rouletteCan = 0
@Published var signatureImageUrl = "" {
didSet {
if signatureImageUrl.trimmingCharacters(in: .whitespacesAndNewlines).count > 0 {
DispatchQueue.main.asyncAfter(deadline: .now() + 3.5) {
self.signatureImageUrl = ""
}
}
}
}
var timer: DispatchSourceTimer? var timer: DispatchSourceTimer?
func setOriginOffset(_ offset: CGFloat) { func setOriginOffset(_ offset: CGFloat) {
@ -353,7 +363,7 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
do { do {
let jsonDecoder = JSONDecoder() let jsonDecoder = JSONDecoder()
let decoded = try jsonDecoder.decode(ApiResponseWithoutData.self, from: responseData) let decoded = try jsonDecoder.decode(ApiResponse<String>.self, from: responseData)
self.isLoading = false self.isLoading = false
@ -363,6 +373,7 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
type: .DONATION, type: .DONATION,
message: rawMessage, message: rawMessage,
can: can, can: can,
signatureImageUrl: decoded.data,
donationMessage: message donationMessage: message
) )
@ -384,6 +395,7 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
) )
totalDonationCan += can totalDonationCan += can
signatureImageUrl = decoded.data ?? ""
self.messageChangeFlag.toggle() self.messageChangeFlag.toggle()
if self.messages.count > 100 { if self.messages.count > 100 {
@ -1708,6 +1720,7 @@ extension LiveRoomViewModel: AgoraRtmChannelDelegate {
) )
self.totalDonationCan += decoded.can self.totalDonationCan += decoded.can
self.signatureImageUrl = decoded.signatureImageUrl ?? ""
} else if decoded.type == .ROULETTE_DONATION { } else if decoded.type == .ROULETTE_DONATION {
self.messages.append( self.messages.append(
LiveRoomRouletteDonationChat( LiveRoomRouletteDonationChat(

View File

@ -7,6 +7,7 @@
import SwiftUI import SwiftUI
import Kingfisher import Kingfisher
import SDWebImageSwiftUI
struct LiveRoomViewV2: View { struct LiveRoomViewV2: View {
@ -241,6 +242,20 @@ struct LiveRoomViewV2: View {
proxy.scrollTo(viewModel.messages.count - 1, anchor: .center) proxy.scrollTo(viewModel.messages.count - 1, anchor: .center)
}.padding(.bottom, 70) }.padding(.bottom, 70)
} }
if viewModel.signatureImageUrl.trimmingCharacters(in: .whitespacesAndNewlines).count > 0 {
VStack(spacing: 0) {
Spacer()
AnimatedImage(url: URL(string: viewModel.signatureImageUrl))
.resizable()
.aspectRatio(contentMode: .fit)
.frame(height: 300)
.frame(maxWidth: .infinity)
.padding(.horizontal, 20)
.padding(.bottom, 65)
}
}
} }
} }