Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

Rev 1 | Rev 11 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

//
//  PdfView.swift
//  twogetskills
//
//  Created by Efrain Yanez Recanatini on 4/26/22.
//

import Foundation
import SwiftUI
import PDFKit
import NavigationStack


struct PdfViewerView: View {
    
    @State private var backToGallery : Bool = false
    
    @State private var isCompleted : Bool = false
    
    
    private var slideModel : SlideModel
    private var slideTitle : String
    
    private var url : URL?
    

    
    init(slideUuid : String)
    {
        let slideDao = SlideDao.sharedInstance
        self.slideModel = slideDao.selectByUuid(uuid: slideUuid)

        if self.slideModel.name.count > Constants.APP_BAR_TITLE_MAX_LENGTH {
            slideTitle = String(Array(self.slideModel.name)[0...Constants.APP_BAR_TITLE_MAX_LENGTH]) + "..."
        } else {
            slideTitle = self.slideModel.name
        }
        
        
        print("Viewer PDF: \(slideModel.file) ")
        
        self.url = URL(string: slideModel.file)



    }
    
    var body: some View {
        VStack(spacing: 0) {
            PopView(
                destination: .root,
                isActive: self.$backToGallery,
                label: {
                    Text("")
                    
                }
            ).frame( height: 0)
            
            HStack {
                Button(action: {
                    let dataService = DataService()
                    if self.isCompleted {
                    
                       
                        dataService.completeSlide(slide: slideModel)
                    } else {
                        dataService.incompleteSlide(slide: slideModel)
                    }
                    


                    self.backToGallery.toggle()
                    
                    
               
                }, label: {

                    
                    Image(systemName: "chevron.backward")
                    .frame(width: 32, height: 32, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
                    .aspectRatio(contentMode: .fit)
                    .foregroundColor(Color("color_app_bar_foreground"))
                })
                .padding(.leading, 16)
                
                Text(self.slideTitle)
                .font(Font.custom(Config.FONT_NAME_REGULAR, size: Config.FONT_SIZE_APP_BAR_HEAD1 ))
                .foregroundColor(Color("color_app_bar_foreground"))
                    .padding(.leading, 4)
                
                Spacer()
            }
            .background(Color("color_app_bar_background"))
            .edgesIgnoringSafeArea(.top)
            .frame(height: 50)
            Divider()

            GeometryReader { geometry in
            
            PDFKitRepresentedView(url!)
                .frame(
                    width: geometry.size.width,
                    height: geometry.size.height,
                    alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
                .border(/*@START_MENU_TOKEN@*/Color.black/*@END_MENU_TOKEN@*/, width: /*@START_MENU_TOKEN@*/1/*@END_MENU_TOKEN@*/)
                
            }

           
        }
    }
}


struct PdfViewerView_Previews: PreviewProvider {
    static var previews: some View {
        PdfViewerView(slideUuid: "S123")
    }
}