import SwiftUI struct PostDetailsCarouselItemView: View { var post: BooruPost var index: Int @Binding var loadingStage: BooruPostLoadingState var imageURL: (BooruPost) -> URL? private var systemBackgroundColor: Color { #if os(iOS) return Color(.systemBackground) #elseif os(macOS) return Color(.windowBackgroundColor) #else return Color.gray #endif } var body: some View { ZStack { PostDetailsImageView( url: post.previewURL, loadingStage: $loadingStage ) { GeometryReader { geometry in ProgressView() .frame(width: geometry.size.width, height: geometry.size.height) } } PostDetailsImageView( url: imageURL(post), loadingStage: $loadingStage, finalLoadingState: .loaded, post: post ) .background( loadingStage == .loaded ? systemBackgroundColor : Color.clear ) } .tag(index) } }