룰렛 변경

- 확률 수동 설정
- 여러개의 룰렛이 켜져있을 때 선택하여 돌리기
- 후원 히스토리에 룰렛 히스토리
This commit is contained in:
Yu Sung
2024-05-11 02:56:52 +09:00
parent 57abeea432
commit cab719c774
21 changed files with 339 additions and 265 deletions

View File

@@ -23,7 +23,7 @@ struct LiveRoomDonationMessageDialog: View {
VStack(spacing: 0) {
HStack(spacing: 0) {
Text("후원메시지")
Text("후원 히스토리")
.font(.custom(Font.bold.rawValue, size: 14.7))
.foregroundColor(Color(hex: "eeeeee"))
@@ -45,43 +45,19 @@ struct LiveRoomDonationMessageDialog: View {
ForEach(0..<viewModel.donationMessageList.count, id: \.self) { index in
let donationMessage = viewModel.donationMessageList[index]
HStack(alignment: .top, spacing: 0) {
VStack(alignment: .leading, spacing: 8) {
Text("\(donationMessage.nickname)님이")
.font(.custom(Font.medium.rawValue, size: 13.3))
.foregroundColor(.white)
Text("\(donationMessage.canMessage)")
.font(.custom(Font.medium.rawValue, size: 13.3))
.foregroundColor(.white)
Text("'\(donationMessage.donationMessage)'")
.font(.custom(Font.medium.rawValue, size: 13.3))
.foregroundColor(.white)
}
Spacer()
Image("ic_close_white")
.resizable()
.frame(width: 13.3, height: 13.3)
.onTapGesture {
viewModel.deleteDonationMessage(uuid: donationMessage.uuid)
}
LiveRoomDonationMessageItemView(message: donationMessage) {
viewModel.deleteDonationMessage(uuid: $0)
}
.padding(13.3)
.background(Color(hex: "333333"))
.cornerRadius(5.3)
.onTapGesture {
UIPasteboard.general.string = donationMessage.donationMessage
self.viewModel.errorMessage = "후원 메시지가 복사되었습니다."
self.viewModel.errorMessage = "후원 히스토리가 복사되었습니다."
self.viewModel.isShowPopup = true
}
}
}
.padding(.top, 18.7)
} else {
Text("후원메시지가 없습니다.")
Text("후원 히스토리가 없습니다.")
.font(.custom(Font.medium.rawValue, size: 14.7))
.foregroundColor(Color(hex: "eeeeee"))
.padding(.top, 30)

View File

@@ -0,0 +1,68 @@
//
// LiveRoomDonationMessageItemView.swift
// SodaLive
//
// Created by klaus on 5/11/24.
//
import SwiftUI
struct LiveRoomDonationMessageItemView: View {
let message: LiveRoomDonationMessage
let deleteDonationMessage: (String) -> Void
var body: some View {
HStack(alignment: .top, spacing: 0) {
VStack(alignment: .leading, spacing: 8) {
Text("\(message.nickname)님이")
.font(.custom(Font.medium.rawValue, size: 13.3))
.foregroundColor(.white)
if !message.canMessage.trimmingCharacters(in: .whitespaces).isEmpty {
Text("\(message.canMessage)")
.font(.custom(Font.medium.rawValue, size: 13.3))
.foregroundColor(.white)
}
Text("'\(message.donationMessage)'")
.font(.custom(Font.medium.rawValue, size: 13.3))
.foregroundColor(.white)
}
Spacer()
Image("ic_close_white")
.resizable()
.frame(width: 13.3, height: 13.3)
.onTapGesture { deleteDonationMessage(message.uuid) }
}
.padding(13.3)
.background(message.canMessage.trimmingCharacters(in: .whitespaces).isEmpty ? Color(hex: "c25264").opacity(0.8) : Color.gray33)
.cornerRadius(5.3)
}
}
#Preview("일반후원 메시지") {
LiveRoomDonationMessageItemView(
message: LiveRoomDonationMessage(
uuid: "",
nickname: "유저2님이",
canMessage: "10캔을 후원하셨습니다",
donationMessage: "ㅅㅅㅅ"
),
deleteDonationMessage: { _ in }
)
}
#Preview("룰렛후원 메시지") {
LiveRoomDonationMessageItemView(
message: LiveRoomDonationMessage(
uuid: "",
nickname: "유저2님의 룰렛 결과?",
canMessage: "",
donationMessage: "[테스트] 당첨!"
),
deleteDonationMessage: { _ in }
)
}