sodalive-ios/SodaLive/Sources/MyPage/Block/BlockedMemberListItemView.s...

93 lines
2.7 KiB
Swift

//
// BlockedMemberListItemView.swift
// SodaLive
//
// Created by klaus on 9/4/24.
//
import SwiftUI
import Kingfisher
struct BlockedMemberListItemView: View {
let item: GetBlockedMemberListItem
let blockMember: (Int) -> Void
let unBlockMember: (Int) -> Void
@State private var isBlocked = true
var body: some View {
VStack(spacing: 13.3) {
HStack(spacing: 0) {
KFImage(URL(string: item.profileImageUrl))
.resizable()
.frame(width: 60, height: 60)
.clipShape(Circle())
Text(item.nickname)
.font(.custom(Font.medium.rawValue, size: 16.7))
.foregroundColor(Color.grayee)
.padding(.leading, 13.3)
Spacer()
Text(isBlocked ? "차단해제" : "차단")
.font(.custom(Font.medium.rawValue, size: 12))
.foregroundColor(Color.button)
.frame(minWidth: 83)
.padding(.vertical, 7)
.background(Color.button.opacity(isBlocked ? 0.2 : 0.0))
.cornerRadius(13.3)
.overlay(
RoundedRectangle(cornerRadius: 13.3)
.stroke(lineWidth: 1)
.foregroundColor(Color.button)
)
.onTapGesture {
if isBlocked {
unBlockMember(item.memberId)
} else {
blockMember(item.memberId)
}
isBlocked = !isBlocked
}
}
Rectangle()
.foregroundColor(Color.gray59)
.frame(height: 0.5)
}
.onAppear {
isBlocked = item.isBlocked
}
}
}
#Preview("차단됨") {
BlockedMemberListItemView(
item: GetBlockedMemberListItem(
memberId: 1,
nickname: "유저1",
profileImageUrl: "https://test-cf.sodalive.net/profile/default-profile.png",
isBlocked: true
),
blockMember: { _ in },
unBlockMember: { _ in }
)
}
#Preview("차단해제됨") {
BlockedMemberListItemView(
item: GetBlockedMemberListItem(
memberId: 1,
nickname: "유저1",
profileImageUrl: "https://test-cf.sodalive.net/profile/default-profile.png",
isBlocked: false
),
blockMember: { _ in },
unBlockMember: { _ in }
)
}