Proyectos de Subversion Iphone Microlearning - Inconcert

Rev

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

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

import Foundation

import Foundation
import SwiftUI
import PDFKit
import HTMLEntities


struct WebViewerView: View {
    @EnvironmentObject private var appNavigation : AppNavigation

    private var slideModel : SlideModel
    private var slideTitle : String
    private var appData = AppData.sharedInstance

    init()
    {
        let slideDao = SlideDao.sharedInstance
        self.slideModel = slideDao.selectByUuid(uuid: appData.slideUuidActive)

        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 WEB: \(slideModel.description) ")
    }
    
    var body: some View {
        VStack(spacing: 0)
        {
            
            HStack {
                Button(action: {
                    let dataService = DataService()
                    dataService.completeSlide(slide: slideModel)
                    
                    
                    appNavigation.pageActive = .home
                    
                }, 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(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
                
                TextHtmlView(content: slideModel.description)
                    .frame(
                        width: geometry.size.width,
                        height: geometry.size.height,
                        alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
                    .padding(10)
                    .border(/*@START_MENU_TOKEN@*/Color.black/*@END_MENU_TOKEN@*/, width: /*@START_MENU_TOKEN@*/1/*@END_MENU_TOKEN@*/)
            }
        }.background(Color("color_window_background"))
    }
}


struct WebViewerView_Previews: PreviewProvider {
    static var previews: some View {
        WebViewerView()
    }
}