// // StartView.swift // Broadcasting // // Created by Uldis Zingis on 15/06/2021. // import SwiftUI struct StartScreen: View { @ObservedObject var viewModel: BroadcastViewModel @Environment(\.openURL) var openURL @Binding var isPresented: Bool @State var isPermissionsPresent: Bool = false @State var isAutoConfigurationPresent: Bool = false var body: some View { ZStack { Color.black .edgesIgnoringSafeArea(.all) VStack { Spacer() InformationBlock( icon: "video.fill", title: "Amazon IVS Broadcast Demo", description: "This demo application broadcasts your iPhone’s camera or screen to an Amazon IVS Channel.", height: 152 ) Spacer() Group { PrimaryButton(title: "Get Started") { isPermissionsPresent.toggle() } SecondaryButton(title: "View source code") { openURL(URL(string: "https://github.com/aws-samples/Broadcasting-SwiftUI")!) } .padding(.top, 5) .padding(.bottom, 30) } } .padding() if isPermissionsPresent { Permissions() { viewModel.configurations.userDefaults.set(true, forKey: Constants.kWasLaunchedBefore) isPermissionsPresent = false isAutoConfigurationPresent = true } } if isAutoConfigurationPresent { AutoConfiguration(viewModel: viewModel, dismissAction: { isAutoConfigurationPresent = false isPresented = false }, firstTimeLaunched: true) } } } }