Proyectos de Subversion Iphone Microlearning - Inconcert

Rev

Rev 17 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
//
2
//  HtmlView.swift
3
//  twogetskills
4
//
5
//  Created by Efrain Yanez Recanatini on 4/26/22.
6
//
7
 
8
import Foundation
9
 
10
import Foundation
11
import SwiftUI
12
import PDFKit
13
import HTMLEntities
14
 
15
 
16
struct WebViewerView: View {
17
    @EnvironmentObject private var appNavigation : AppNavigation
18
 
19
    private var slideModel : SlideModel
20
    private var slideTitle : String
21 efrain 21
    private var appData = Environment(\.appData).wrappedValue
1 efrain 22
 
23
    init()
24
    {
17 efrain 25
        let slideDao = SlideDao()
1 efrain 26
        self.slideModel = slideDao.selectByUuid(uuid: appData.slideUuidActive)
27
 
28
        if self.slideModel.name.count > Constants.APP_BAR_TITLE_MAX_LENGTH {
29
            slideTitle = String(Array(self.slideModel.name)[0...Constants.APP_BAR_TITLE_MAX_LENGTH]) + "..."
30
        } else {
31
            slideTitle = self.slideModel.name
32
        }
33
 
34
        //print("Viewer WEB: \(slideModel.description) ")
35
    }
36
 
37
    var body: some View {
38
        VStack(spacing: 0)
39
        {
40
 
41
            HStack {
42
                Button(action: {
43
                    let dataService = DataService()
44
                    dataService.completeSlide(slide: slideModel)
45
 
46
 
47
                    appNavigation.pageActive = .home
48
 
49
                }, label: {
50
 
51
 
52
                    Image(systemName: "chevron.backward")
53
                    .frame(width: 32, height: 32, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
54
                    .aspectRatio(contentMode: .fit)
55
                    .foregroundColor(Color("color_app_bar_foreground"))
56
                })
57
                .padding(.leading, 16)
58
 
59
                Text(slideTitle)
60
                .font(Font.custom(Config.FONT_NAME_REGULAR, size: Config.FONT_SIZE_APP_BAR_HEAD1 ))
61
                .foregroundColor(Color("color_app_bar_foreground"))
62
                    .padding(.leading, 4)
63
 
64
                Spacer()
65
            }
66
            .background(Color("color_app_bar_background"))
67
            .edgesIgnoringSafeArea(.top)
68
            .frame(height: 50)
69
            Divider()
70
 
71
 
72
            GeometryReader { geometry in
73
 
74
                TextHtmlView(content: slideModel.description)
75
                    .frame(
76
                        width: geometry.size.width,
77
                        height: geometry.size.height,
78
                        alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
79
                    .padding(10)
80
                    .border(/*@START_MENU_TOKEN@*/Color.black/*@END_MENU_TOKEN@*/, width: /*@START_MENU_TOKEN@*/1/*@END_MENU_TOKEN@*/)
81
            }
82
        }.background(Color("color_window_background"))
83
    }
84
}
85
 
86
 
87
struct WebViewerView_Previews: PreviewProvider {
88
    static var previews: some View {
89
        WebViewerView()
90
    }
91
}
92
 
93
 
94
 
95