SPB Git

spb/vrai-prix-ios Public

App iOS native de Vrai-Prix — estimation immobilière transparente pour le Québec (SwiftUI, MapKit, Swift Charts)

Swift 100%
1.7 KB · 51 lines swift
Raw Blame History
1// Auteur : Simon-Pierre Boucher — contact@spboucher.ai2// Visionneuse des rapports PDF (pdfkit côté serveur, 100 % vectoriels) + partage.3import SwiftUI4import PDFKit56struct PDFViewerView: View {7    let url: URL8    @Environment(\.dismiss) private var dismiss910    var body: some View {11        NavigationStack {12            PDFKitView(url: url)13                .ignoresSafeArea(edges: .bottom)14                .toolbar {15                    ToolbarItem(placement: .principal) { Wordmark(size: 17) }16                    ToolbarItem(placement: .topBarLeading) {17                        Button("Fermer") { dismiss() }18                            .font(.vpDisplayMedium(14))19                            .foregroundStyle(Color.vpInk)20                    }21                    ToolbarItem(placement: .topBarTrailing) {22                        ShareLink(item: url) {23                            Image(systemName: "square.and.arrow.up")24                                .foregroundStyle(Color.vpInk)25                        }26                    }27                }28                .toolbarBackground(Color.vpPaper, for: .navigationBar)29                .toolbarBackground(.visible, for: .navigationBar)30        }31    }32}3334private struct PDFKitView: UIViewRepresentable {35    let url: URL3637    func makeUIView(context: Context) -> PDFView {38        let view = PDFView()39        view.autoScales = true40        view.backgroundColor = UIColor(Color.vpPaper)41        view.document = PDFDocument(url: url)42        return view43    }4445    func updateUIView(_ view: PDFView, context: Context) {46        if view.document?.documentURL != url {47            view.document = PDFDocument(url: url)48        }49    }50}51