57 lines
2.0 KiB
Swift
57 lines
2.0 KiB
Swift
import SwiftUI
|
|
|
|
struct MainContentVoiceOnOnlySection: View {
|
|
let title: String
|
|
let items: [OriginalSeriesResponse]
|
|
let onTapSeries: (Int) -> Void
|
|
|
|
var body: some View {
|
|
if !items.isEmpty {
|
|
VStack(alignment: .leading, spacing: SodaSpacing.s12) {
|
|
SectionTitle(title: title)
|
|
|
|
ScrollView(.horizontal, showsIndicators: false) {
|
|
HStack(alignment: .top, spacing: SodaSpacing.s14) {
|
|
ForEach(items) { item in
|
|
Button {
|
|
onTapSeries(item.seriesId)
|
|
} label: {
|
|
ZStack(alignment: .topLeading) {
|
|
DownsampledKFImage(
|
|
url: URL(string: item.coverImageUrl),
|
|
size: CGSize(width: 122, height: 172)
|
|
)
|
|
.background(Color.gray800)
|
|
|
|
originalTag
|
|
}
|
|
.frame(width: 122, height: 172)
|
|
.clipShape(RoundedRectangle(cornerRadius: SodaSpacing.s14, style: .continuous))
|
|
}
|
|
.buttonStyle(.plain)
|
|
}
|
|
}
|
|
.padding(.horizontal, SodaSpacing.s20)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private var originalTag: some View {
|
|
HStack(spacing: SodaSpacing.s4) {
|
|
Image("ic_series_original")
|
|
.resizable()
|
|
.scaledToFit()
|
|
.frame(width: 14, height: 14)
|
|
|
|
Image("img_new_only")
|
|
.resizable()
|
|
.scaledToFit()
|
|
.frame(height: 14)
|
|
}
|
|
.padding(.horizontal, SodaSpacing.s8)
|
|
.padding(.vertical, 5)
|
|
.background(Color.gray900)
|
|
}
|
|
}
|