sodalive-ios/SodaLive/Sources/Content/Playlist/ContentPlaylistItemView.swift

65 lines
2.0 KiB
Swift

//
// ContentPlaylistItemView.swift
// SodaLive
//
// Created by klaus on 12/7/24.
//
import SwiftUI
import Kingfisher
struct ContentPlaylistItemView: View {
let item: GetPlaylistsItem
var body: some View {
VStack(alignment: .leading, spacing: 8) {
HStack(spacing: 11) {
KFImage(URL(string: item.coverImageUrl))
.cancelOnDisappear(true)
.downsampling(size: CGSize(width: 66.7, height: 66.7))
.resizable()
.scaledToFill()
.frame(width: 66.7, height: 66.7, alignment: .center)
.cornerRadius(5.3)
.clipped()
VStack(alignment: .leading, spacing: 7) {
Text(item.title)
.font(.custom(Font.bold.rawValue, size: 14.7))
.foregroundColor(Color.grayd2)
.lineLimit(1)
if !item.desc.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty {
Text(item.desc)
.font(.custom(Font.medium.rawValue, size: 12))
.foregroundColor(Color.gray90)
.lineLimit(1)
}
Text("\(item.contentCount)")
.font(.custom(Font.medium.rawValue, size: 12))
.foregroundColor(Color.gray90)
.lineLimit(1)
}
}
Rectangle()
.frame(height: 1)
.foregroundColor(Color.gray55)
}
}
}
#Preview {
ContentPlaylistItemView(
item: GetPlaylistsItem(
id: 1,
title: "토스트",
desc: "테슬라 네",
contentCount: 2,
coverImageUrl: "https://test-cf.sodalive.net/profile/default-profile.png"
)
)
}