import SwiftUI

struct ViewD: View {
    
    
    let columns = [
        GridItem(.flexible()),
        GridItem(.flexible())
    ]
    
    var body: some View {
        ZStack {
            LinearGradient(
                gradient: Gradient(colors: [
                    Color(red: 217 / 255, green: 201 / 255, blue: 254 / 255),
                    Color(red: 86 / 255, green: 193 / 255, blue: 255 / 255)
                ]),
                startPoint: .leading,
                endPoint: .trailing
            )
            .edgesIgnoringSafeArea(.all)
            
            VStack {
               
                VStack {
                    Text("Apps, du kan bruge som byggeklodser og inspiration")
                        .font(.title)
                        .foregroundColor(.black)
                        .fontWeight(.bold)
                        .padding(.bottom, 5)
                    
                    Text("På denne side skal du beskrive, hvad der skal være med i din app, hvordan den skal se ud, og hvorfor det skal være med. Dette arbejde skal samles i et whiteboard-dokument i Freeform. Vi har lavet en skabelon til dig. Du kan downloade den ved at trykke på Freeform-appens ikon nedenfor. Når du har downloadet dokumentet, skal du duplikere det. Lær hvordan i informationsknappen på denne side.")
                        .font(.subheadline)
                        .foregroundColor(.black)
                        .multilineTextAlignment(.center)
                        .padding(.horizontal)
                        .lineLimit(10) 
                        .minimumScaleFactor(0.5) 
                        .padding(.bottom, 20)
                }
                
                ScrollView {
                    LazyVGrid(columns: columns, spacing: 20) {
                        contentBox(title: "Kom godt i gang med kode", description: "Et godt sted at starte din kode-rejse.", linkURL: "")
                        
                        contentBox(title: "Om mig", description: "Lav et projekt om dig selv og lær at kode, mens du bygger din første app. ", linkURL: "https://dr.dk")
                        
                        contentBox(title: "Opret en navigationsbar", description: "Lær hvordan du bygger en navigationsbar med tre faner. Du kan tilføje flere!", linkURL: "https://app.box.com/s/v7igbf3w0fvybgqnetqkss8h6nwgjzc8")
                        
                        contentBox(title: "Stack Views", description: "Lær hvordan du arrangerer ting i horisontalt, vertikalt og ovenpå hinanden - eller en kombination.", linkURL: "https://app.box.com/s/4viy18i6myzc52vyzc1tu2xihbyraro2")
                        
                        contentBox(title: "Indsæt indhold", description: "Lær, hvordan du tilføjer video, fotos eller tilføjer et link til din app.", linkURL: "https://app.box.com/s/8z43rgjkinlq3nouj71adwb896hyegf6")
                        
                        contentBox(title: "Ting til inspiration", description: "Forskellige apps, som kan få dig hurtigt i gang", linkURL: "https://dr.dk")
                    }
                    .padding()
                }
            }
        }
    }
    
    @ViewBuilder
    private func contentBox(title: String, description: String, linkURL: String, actionURL: String? = nil) -> some View {
        VStack(alignment: .leading) {
            Text(title)
                .font(.title2)
                .fontWeight(.bold)
                .lineLimit(2)
                .minimumScaleFactor(0.5)
                .foregroundColor(.black) 
            
            Divider()  
            
            Text(description)
                .font(.subheadline)
                .foregroundColor(.black) 
            
            Text("Link")
                .font(.subheadline)
                .foregroundColor(.blue)
                .underline()
                .onTapGesture {
                    if let url = URL(string: linkURL) {
                        UIApplication.shared.open(url)
                    }
                }
        }
        .padding()
        .background(Color.white)
        .cornerRadius(15)
        .shadow(radius: 5)
        .frame(height: 200)  
        .padding(.horizontal)
        .onTapGesture {
            if let urlString = actionURL, let url = URL(string: urlString) {
                UIApplication.shared.open(url)
            }
        }
    }
}

struct ViewD_Previews: PreviewProvider {
    static var previews: some View {
        ViewD()
    }
}

