diff options
Diffstat (limited to 'Sora/Views/Post/Details/Carousel/PostDetailsCarouselItemView.swift')
| -rw-r--r-- | Sora/Views/Post/Details/Carousel/PostDetailsCarouselItemView.swift | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/Sora/Views/Post/Details/Carousel/PostDetailsCarouselItemView.swift b/Sora/Views/Post/Details/Carousel/PostDetailsCarouselItemView.swift index 9d2d95e..fc39ca3 100644 --- a/Sora/Views/Post/Details/Carousel/PostDetailsCarouselItemView.swift +++ b/Sora/Views/Post/Details/Carousel/PostDetailsCarouselItemView.swift @@ -1,8 +1,6 @@ import SwiftUI struct PostDetailsCarouselItemView: View { - var post: BooruPost - var manager: BooruManager var index: Int @Binding var loadingStage: BooruPostLoadingState var imageURL: (BooruPost) -> URL? @@ -15,33 +13,35 @@ struct PostDetailsCarouselItemView: View { return Color.gray #endif } + @Binding var selectedPost: (post: BooruPost?, manager: BooruManager?) var body: some View { - ZStack { - PostDetailsImageView( - url: post.previewURL, - loadingStage: $loadingStage, - manager: manager - ) { - GeometryReader { geometry in - ProgressView() - .frame(width: geometry.size.width, height: geometry.size.height) - .position(x: geometry.size.width / 2, y: geometry.size.height / 2) - .padding() + if let post = selectedPost.post { + ZStack { + PostDetailsImageView( + url: post.previewURL, + loadingStage: $loadingStage, + selectedPost: $selectedPost + ) { + GeometryReader { geometry in + ProgressView() + .frame(width: geometry.size.width, height: geometry.size.height) + .position(x: geometry.size.width / 2, y: geometry.size.height / 2) + .padding() + } } + + PostDetailsImageView( + url: imageURL(post), + loadingStage: $loadingStage, + selectedPost: $selectedPost, + finalLoadingState: .loaded + ) + .background( + loadingStage == .loaded ? systemBackgroundColor : Color.clear + ) } - - PostDetailsImageView( - url: imageURL(post), - loadingStage: $loadingStage, - manager: manager, - finalLoadingState: .loaded, - post: post - ) - .background( - loadingStage == .loaded ? systemBackgroundColor : Color.clear - ) + .tag(index) } - .tag(index) } } |