yattee/Shared/Videos/ListView.swift

32 lines
745 B
Swift
Raw Normal View History

2023-05-25 12:28:29 +00:00
import SwiftUI
struct ListView: View {
var items: [ContentItem]
var limit: Int? = 10
var body: some View {
LazyVStack(alignment: .leading) {
ForEach(limitedItems) { item in
ContentItemView(item: item)
.environment(\.listingStyle, .list)
.environment(\.noListingDividers, limit == 1)
.transition(.opacity)
}
}
}
var limitedItems: [ContentItem] {
if let limit, limit >= 0 {
return Array(items.prefix(limit))
}
return items
}
}
struct ListView_Previews: PreviewProvider {
static var previews: some View {
ListView(items: [.init(video: .fixture)])
}
}