Untitled

 avatar
unknown
swift
2 years ago
2.2 kB
7
Indexable
struct DebugView: View {
    
    @State var presentAlert: Bool = false
    @State var presentScreen: Bool = false
    
    var body: some View {
        NavigationView {
            List {
                Cell(present: $presentAlert, presentScreen: $presentScreen)
                Cell(present: $presentAlert, presentScreen: $presentScreen)
                Cell(present: $presentAlert, presentScreen: $presentScreen)
            }.navigationTitle("Instagram")
        }.alert(isPresented: $presentAlert) {
            Alert(title: Text("Share pressed"))
        }
        .fullScreenCover(isPresented: $presentScreen) {
            DetailView()
        }
       
    }
    
}

struct Cell: View {
    
    @Binding var present: Bool
    @Binding var presentScreen: Bool
    
    var body: some View {
        HStack(spacing: 20) {
            Button(action: {
                presentScreen.toggle()
            }, label: {
                HStack {
                    AsyncImage(url: URL(string: "https://picsum.photos/200")!) { image in
                        image
                            .cornerRadius(10)
                            .padding()
                    } placeholder: {
                        ProgressView()
                            .frame(minWidth: 200,
                                   minHeight: 200)
                            .padding()
                    }
                    Button {
                        present.toggle()
                    } label: {
                        Text("Share")
                    }

                }
            })
            
        }
        .frame(maxWidth: .infinity)
        .background(Material.ultraThin)
    }
    
}

struct DetailView: View {
    
    @Environment(\.presentationMode) var presentationMode
    
    var body: some View {
        VStack {
            Text("DETAILS")
            Button("Dismiss") {
                presentationMode.wrappedValue.dismiss()
            }
        }
    }
    
}

struct DebugView_Previews: PreviewProvider {
    
    static var previews: some View {
        Group {
            DebugView().environment(\.colorScheme, .dark)
            DebugView().environment(\.colorScheme, .light)
        }
    }
    
}
Editor is loading...