import SwiftUI struct PostDetailView: View { let postID: UUID @Environment(\.presentationMode) var presentationMode @State private var post: Post? = nil var body: some View { ZStack { if let post = post { Color.black.ignoresSafeArea() VStack { Spacer() VStack(alignment: .leading, spacing: 8) { if let title = post.title { Text(title) .font(.title2) .fontWeight(.bold) .foregroundColor(.white) } if let desc = post.description { Text(desc) .font(.subheadline) .foregroundColor(Color.white.opacity(0.8)) } Text("UUID: \(post.id.uuidString)") .font(.caption2) .foregroundColor(Color.white.opacity(0.5)) HStack(spacing: 12) { Label("\(post.views)", systemImage: "eye") Label("\(post.likes)", systemImage: "heart") Label("\(post.saves)", systemImage: "bookmark") Label("\(post.commentsCount)", systemImage: "text.bubble") } .font(.footnote) .foregroundColor(Color.white.opacity(0.9)) } .padding() .background(Color.black.opacity(0.4)) .cornerRadius(12) .padding(.horizontal) .padding(.bottom, 32) } VStack { HStack { Spacer() Button(action: { presentationMode.wrappedValue.dismiss() }) { Image(systemName: "xmark.circle.fill") .font(.system(size: 30)) .foregroundColor(.white) .padding() } } Spacer() } } else { ProgressView("Загрузка поста…") .progressViewStyle(CircularProgressViewStyle(tint: .white)) .foregroundColor(.white) .onAppear { PostService.shared.fetchPost(by: postID) { result in self.post = result } } } } } }