import Defaults import SwiftUI struct WelcomeScreen: View { @Environment(\.presentationMode) private var presentationMode @EnvironmentObject private var accounts @Default(.accounts) private var allAccounts var body: some View { let welcomeScreen = VStack { Spacer() Text("Welcome") .font(.largeTitle) .padding(.bottom, 10) if allAccounts.isEmpty { Text("To start, configure your Instances in Settings") .foregroundColor(.secondary) } else { Text("To start, pick one of your accounts:") .foregroundColor(.secondary) #if os(tvOS) AccountSelectionView(showHeader: false) Button { presentationMode.wrappedValue.dismiss() } label: { Text("Start") } .opacity(accounts.current.isNil ? 0 : 1) .disabled(accounts.current.isNil) #else AccountsMenuView() .onChange(of: accounts.current) { _ in presentationMode.wrappedValue.dismiss() } #if os(macOS) .frame(maxWidth: 280) #endif #endif } Spacer() OpenSettingsButton() Spacer() } #if os(macOS) .frame(minWidth: 400, minHeight: 400) #endif if #available(iOS 15.0, macOS 12.0, tvOS 15.0, *) { welcomeScreen .interactiveDismissDisabled() } else { welcomeScreen } } } struct WelcomeScreen_Previews: PreviewProvider { static var previews: some View { WelcomeScreen() .injectFixtureEnvironmentObjects() } }