Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

Rev 8 | Rev 17 | Ir a la última revisión | | 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
8 efrain 13
import NavigationStack
14
import HTMLEntities
1 efrain 15
 
16
 
17
struct WebViewerView: View {
8 efrain 18
 
19
    @State private var backToGallery : Bool = false
1 efrain 20
 
11 efrain 21
    private let appDao = AppDao.sharedInstance
8 efrain 22
    private var slideModel : SlideModel
23
    private var slideTitle : String
1 efrain 24
 
8 efrain 25
 
1 efrain 26
 
27
 
8 efrain 28
    init(slideUuid : String)
1 efrain 29
    {
8 efrain 30
        let slideDao = SlideDao.sharedInstance
31
        self.slideModel = slideDao.selectByUuid(uuid: slideUuid)
1 efrain 32
 
8 efrain 33
        if self.slideModel.name.count > Constants.APP_BAR_TITLE_MAX_LENGTH {
34
            slideTitle = String(Array(self.slideModel.name)[0...Constants.APP_BAR_TITLE_MAX_LENGTH]) + "..."
35
        } else {
36
            slideTitle = self.slideModel.name
37
        }
38
 
11 efrain 39
        //print("Viewer WEB: \(slideModel.description) ")
1 efrain 40
    }
41
 
42
    var body: some View {
43
        VStack(spacing: 0)
44
        {
8 efrain 45
            PopView(
46
                destination: .root,
47
                isActive: self.$backToGallery,
48
                label: {
49
                    Text("")
50
 
51
                }
52
            ).frame( height: 0)
53
 
1 efrain 54
            HStack {
55
                Button(action: {
11 efrain 56
                    let dataService = DataService()
57
                    dataService.completeSlide(slide: slideModel)
8 efrain 58
                    self.backToGallery.toggle()
1 efrain 59
 
60
                }, label: {
61
 
62
 
63
                    Image(systemName: "chevron.backward")
64
                    .frame(width: 32, height: 32, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
65
                    .aspectRatio(contentMode: .fit)
66
                    .foregroundColor(Color("color_app_bar_foreground"))
67
                })
68
                .padding(.leading, 16)
69
 
8 efrain 70
                Text(slideTitle)
1 efrain 71
                .font(Font.custom(Config.FONT_NAME_REGULAR, size: Config.FONT_SIZE_APP_BAR_HEAD1 ))
72
                .foregroundColor(Color("color_app_bar_foreground"))
73
                    .padding(.leading, 4)
74
 
75
                Spacer()
76
            }
77
            .background(Color("color_app_bar_background"))
78
            .edgesIgnoringSafeArea(.top)
79
            .frame(height: 50)
80
            Divider()
8 efrain 81
 
82
 
83
            GeometryReader { geometry in
84
 
85
                TextHtmlView(content: slideModel.description)
86
                    .frame(
87
                        width: geometry.size.width,
88
                        height: geometry.size.height,
89
                        alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
90
                    .padding(10)
91
                    .border(/*@START_MENU_TOKEN@*/Color.black/*@END_MENU_TOKEN@*/, width: /*@START_MENU_TOKEN@*/1/*@END_MENU_TOKEN@*/)
92
            }
1 efrain 93
        }.background(Color("color_window_background"))
94
    }
95
}
96
 
97
 
98
struct WebViewerView_Previews: PreviewProvider {
99
    static var previews: some View {
8 efrain 100
        WebViewerView(slideUuid: "S123")
1 efrain 101
    }
102
}
103
 
104
 
105
 
106