summaryrefslogtreecommitdiff
path: root/Sora/Views/Post/Details/Carousel/PostDetailsCarouselItemView.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Sora/Views/Post/Details/Carousel/PostDetailsCarouselItemView.swift')
-rw-r--r--Sora/Views/Post/Details/Carousel/PostDetailsCarouselItemView.swift50
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)
}
}