64 lines
2.0 KiB
Swift
64 lines
2.0 KiB
Swift
//
|
|
// AuditionDetailRoleItemView.swift
|
|
// SodaLive
|
|
//
|
|
// Created by klaus on 1/6/25.
|
|
//
|
|
|
|
import SwiftUI
|
|
import Kingfisher
|
|
|
|
struct AuditionDetailRoleItemView: View {
|
|
|
|
let item: GetAuditionRoleListData
|
|
|
|
var body: some View {
|
|
VStack(alignment: .leading, spacing: 10) {
|
|
ZStack(alignment: .topLeading) {
|
|
KFImage(URL(string: item.imageUrl))
|
|
.cancelOnDisappear(true)
|
|
.downsampling(size: CGSize(width: 1000, height: 350))
|
|
.resizable()
|
|
.aspectRatio(1000/350, contentMode: .fit)
|
|
.frame(maxWidth: .infinity)
|
|
.cornerRadius(6.7)
|
|
.overlay(
|
|
Color.black
|
|
.cornerRadius(6.7)
|
|
.opacity(item.isComplete ? 0.7 : 0.0)
|
|
)
|
|
|
|
Text(item.isComplete ? "모집완료" : "모집중")
|
|
.font(.custom(Font.medium.rawValue, size: 13.3))
|
|
.foregroundColor(Color.white)
|
|
.padding(.horizontal, 9)
|
|
.padding(.vertical, 3)
|
|
.background(
|
|
item.isComplete ? Color.gray90 : Color.button
|
|
)
|
|
.cornerRadius(13.3)
|
|
.padding(.top, 7)
|
|
.padding(.leading, 7)
|
|
}
|
|
.frame(maxWidth: .infinity)
|
|
|
|
Text(item.name)
|
|
.font(.custom(Font.medium.rawValue, size: 13.3))
|
|
.foregroundColor(Color.grayee)
|
|
.lineLimit(1)
|
|
.truncationMode(.tail)
|
|
}
|
|
}
|
|
}
|
|
|
|
#Preview {
|
|
AuditionDetailRoleItemView(
|
|
item: GetAuditionRoleListData(
|
|
roleId: 1,
|
|
name: "[남주] 김희준",
|
|
imageUrl: "https://test-cf.sodalive.net/audition/role/7/audition_role-dc4174e1-10b5-4a97-8379-c7a9336ab230-6691-1735908236571",
|
|
isComplete: false
|
|
)
|
|
)
|
|
}
|