// // ContentNewAllItemView.swift // SodaLive // // Created by klaus on 2023/09/27. // import SwiftUI import Kingfisher struct ContentNewAllItemView: View { let width: CGFloat let item: GetAudioContentMainItem var body: some View { NavigationLink { ContentDetailView(contentId: item.contentId) } label: { VStack(alignment: .leading, spacing: 8) { ZStack(alignment: .bottom) { KFImage(URL(string: item.coverImageUrl)) .cancelOnDisappear(true) .downsampling( size: CGSize( width: width, height: width ) ) .resizable() .scaledToFill() .frame(width: width, height: width, alignment: .top) .cornerRadius(2.7) VStack(spacing: 0) { Spacer() HStack(spacing: 0) { HStack(spacing: 2) { if item.price > 0 { Image("ic_card_can_gray") Text("\(item.price)") .appFont(size: 8.5, weight: .medium) .foregroundColor(Color.white) } else { Text("무료") .appFont(size: 8.5, weight: .medium) .foregroundColor(Color.white) } } .padding(3) .background(Color(hex: "333333").opacity(0.7)) .cornerRadius(10) .padding(.leading, 2.7) .padding(.bottom, 2.7) Spacer() HStack(spacing: 2) { Text(item.duration) .appFont(size: 8.5, weight: .medium) .foregroundColor(Color.white) } .padding(3) .background(Color(hex: "333333").opacity(0.7)) .cornerRadius(10) .padding(.trailing, 2.7) .padding(.bottom, 2.7) } } } .frame(width: width, height: width) Text(item.title) .appFont(size: 13.3, weight: .medium) .foregroundColor(Color(hex: "d2d2d2")) .frame(width: width, alignment: .leading) .multilineTextAlignment(.leading) .fixedSize(horizontal: false, vertical: true) .lineLimit(2) HStack(spacing: 5.3) { KFImage(URL(string: item.creatorProfileImageUrl)) .cancelOnDisappear(true) .downsampling( size: CGSize( width: 21.3, height: 21.3 ) ) .resizable() .scaledToFill() .frame(width: 21.3, height: 21.3) .clipShape(Circle()) .onTapGesture { AppState.shared.setAppStep(step: .creatorDetail(userId: item.creatorId)) } Text(item.creatorNickname) .appFont(size: 12, weight: .medium) .foregroundColor(Color(hex: "777777")) .lineLimit(1) } .padding(.bottom, 10) } .frame(width: width) } } }