summaryrefslogtreecommitdiff
path: root/Sora/Views/Post/PostDetailsView.swift
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-02-22 00:07:44 -0800
committerFuwn <[email protected]>2025-02-22 00:07:44 -0800
commite42fa12dafe264c665d2574c93b54ddafe7f2e1f (patch)
treea362b3b78ea97dc28ce5cc3682801bf89688f546 /Sora/Views/Post/PostDetailsView.swift
parentfeat: Development commit (diff)
downloadsora-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.swift142
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
+ }
}