// // SettingsView.swift // NetNewsWire-iOS // // Created by Stuart Breckenridge on 12/11/2022. // Copyright © 2022 Ranchero Software. All rights reserved. // import SwiftUI import Account import UniformTypeIdentifiers import UserNotifications struct SettingsView: View { @StateObject private var appDefaults = AppDefaults.shared @StateObject private var viewModel = SettingsViewModel() @Binding var isConfigureAppearanceShown: Bool var body: some View { NavigationView { List { // Device Permissions Section(header: Text("Device Permissions"), footer: Text("Configure NetNewsWire's access to Siri, background app refresh, mobile data, and more.")) { SettingsViewRows.OpenSystemSettings } // Account/Extensions/OPML Management Section(header: Text("Accounts & Extensions"), footer: Text("Add, delete, enable, or disable accounts and extensions.")) { SettingsViewRows.AddAccount SettingsViewRows.ManageExtensions SettingsViewRows.ImportExportOPML(showImportView: $viewModel.showImportView, showExportView: $viewModel.showExportView, importAccount: $viewModel.importAccount, exportDocument: $viewModel.exportDocument) } // Appearance Section(header: Text("Appearance"), footer: Text("Manage the look, feel, and behavior of NetNewsWire.")) { SettingsViewRows.ConfigureAppearance($isConfigureAppearanceShown) if viewModel.notificationPermissions == .authorized { SettingsViewRows.ConfigureNewArticleNotifications } } // Help Section { ForEach(0..