parent
367be74279
commit
86d4bc1c1e
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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(
|
||||||
|
|
|
@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue