diff options
| author | Fuwn <[email protected]> | 2025-02-22 00:07:44 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-02-22 00:07:44 -0800 |
| commit | e42fa12dafe264c665d2574c93b54ddafe7f2e1f (patch) | |
| tree | a362b3b78ea97dc28ce5cc3682801bf89688f546 /Sora/Views/Post/PostDetailsView.swift | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-e42fa12dafe264c665d2574c93b54ddafe7f2e1f.tar.xz sora-testing-e42fa12dafe264c665d2574c93b54ddafe7f2e1f.zip | |
feat: Development commit
Diffstat (limited to 'Sora/Views/Post/PostDetailsView.swift')
| -rw-r--r-- | Sora/Views/Post/PostDetailsView.swift | 142 |
1 files changed, 71 insertions, 71 deletions
diff --git a/Sora/Views/Post/PostDetailsView.swift b/Sora/Views/Post/PostDetailsView.swift index 0e2566d..133fa34 100644 --- a/Sora/Views/Post/PostDetailsView.swift +++ b/Sora/Views/Post/PostDetailsView.swift @@ -1,83 +1,83 @@ import SwiftUI struct PostDetailsView: View { - @EnvironmentObject var settings: Settings - let post: BooruPost - @State var loadingStage: PostLoadingState = .loadingPreview - private var imageURL: URL? { - switch settings.detailViewType { - case .preview: - post.previewURL - case .sample: - post.sampleURL - case .original: - post.fileURL - } + @EnvironmentObject var settings: Settings + let post: BooruPost + @State var loadingStage: PostLoadingState = .loadingPreview + private var imageURL: URL? { + switch settings.detailViewType { + case .preview: + post.previewURL + case .sample: + post.sampleURL + case .original: + post.fileURL } + } - var body: some View { - VStack(spacing: 0) { - AsyncImageWithPreview( - url: imageURL, - loadingStage: $loadingStage, - finalLoadingState: .loaded, - postURL: URL(string: "https://yande.re/post/show/\(post.id)")! - ) { - AsyncImageWithPreview( - url: post.previewURL, - loadingStage: $loadingStage - ) - .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center) - .id(post.previewURL) - } - .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center) - .id(imageURL) - .padding(0) - .zIndex(0) + var body: some View { + VStack(spacing: 0) { + AsyncImageWithPreview( + url: imageURL, + loadingStage: $loadingStage, + finalLoadingState: .loaded, + postURL: URL(string: "https://yande.re/post/show/\(post.id)")! + ) { + AsyncImageWithPreview( + url: post.previewURL, + loadingStage: $loadingStage + ) + .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center) + .id(post.previewURL) + } + .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center) + .id(imageURL) + .padding(0) + .zIndex(0) - VStack(spacing: 5) { - HStack { - Text(post.tags.joined(separator: ", ")) - } - .frame(maxWidth: .infinity, alignment: .leading) + VStack(spacing: 5) { + HStack { + Text(post.tags.joined(separator: ", ")) + } + .frame(maxWidth: .infinity, alignment: .leading) - HStack { - Text( - post.createdAt.formatted() - ) - .frame(maxWidth: .infinity, alignment: .leading) + HStack { + Text( + post.createdAt.formatted() + ) + .frame(maxWidth: .infinity, alignment: .leading) - Group { - switch loadingStage { - case .loadingPreview: - Text("Loading preview …") - case .loadingFile: - Text("Loading \(settings.detailViewType.rawValue) …") - case .loaded: - EmptyView() - } - } - .padding(.trailing, 5) - } - .frame(maxWidth: .infinity, alignment: .leading) - .foregroundStyle(.secondary) + Group { + switch loadingStage { + case .loadingPreview: + Text("Loading preview …") + case .loadingFile: + Text("Loading \(settings.detailViewType.rawValue) …") + case .loaded: + EmptyView() } - .padding(.horizontal, 10) - .padding(.vertical, 10 / 1.33) - .textSelection(.enabled) - .font(.footnote) - #if os(iOS) - .background(.ultraThinMaterial) - #else - .background(.opacity(0.1)) - #endif - .zIndex(1) + } + .padding(.trailing, 5) } - .navigationTitle("Details") - #if os(iOS) - .navigationBarTitleDisplayMode(.inline) - .toolbarBackground(.visible, for: .navigationBar) - .toolbarBackground(.ultraThinMaterial, for: .navigationBar) - #endif + .frame(maxWidth: .infinity, alignment: .leading) + .foregroundStyle(.secondary) + } + .padding(.horizontal, 10) + .padding(.vertical, 10 / 1.33) + .textSelection(.enabled) + .font(.footnote) + #if os(iOS) + .background(.ultraThinMaterial) + #else + .background(.opacity(0.1)) + #endif + .zIndex(1) } + .navigationTitle("Details") + #if os(iOS) + .navigationBarTitleDisplayMode(.inline) + .toolbarBackground(.visible, for: .navigationBar) + .toolbarBackground(.ultraThinMaterial, for: .navigationBar) + #endif + } } |