sodalive-ios/SodaLive/Sources/Live/Room/V2/Component/View/LiveRoomInfoSpeakerView.swift

65 lines
1.7 KiB
Swift

//
// LiveRoomInfoSpeakerView.swift
// SodaLive
//
// Created by klaus on 2024/01/17.
//
import SwiftUI
import Kingfisher
struct LiveRoomInfoSpeakerView: View {
let nickname: String
let profileUrl: String
let isMute: Bool
let isActiveSpeaker: Bool
let onClickProfile: () -> Void
var body: some View {
VStack(spacing: 5) {
ZStack(alignment: .center) {
KFImage(URL(string: profileUrl))
.resizable()
.frame(width: 25, height: 25)
.clipShape(Circle())
if isMute {
Image("ic_mute")
.resizable()
.frame(width: 25, height: 25)
}
}
.overlay(
Circle()
.stroke(
Color.button,
lineWidth: isActiveSpeaker ? 3 : 0
)
)
Text(nickname)
.font(.custom(Font.medium.rawValue, fixedSize: 8.7))
.foregroundColor(.gray77)
.lineLimit(1)
.truncationMode(.tail)
.frame(width: 28)
}
.onTapGesture { onClickProfile() }
}
}
struct LiveRoomInfoSpeakerView_Previews: PreviewProvider {
static var previews: some View {
LiveRoomInfoSpeakerView(
nickname: "테스트중입니다",
profileUrl: "https://cf.sodalive.net/profile/13/13-profile-fabb75e0-2870-4d99-900e-1d9aa63e605b-685-1704859996417",
isMute: false,
isActiveSpeaker: true,
onClickProfile: {}
)
}
}