More cleanup

This commit is contained in:
Max Goedjen 2020-09-13 23:31:32 -06:00
parent e1fae20e37
commit 7c3c767b0a
No known key found for this signature in database
GPG Key ID: E58C21DD77B9B8E8
8 changed files with 33 additions and 23 deletions

View File

@ -16,12 +16,13 @@ struct AppDelegate: App {
let agentStatusChecker = AgentStatusChecker()
let justUpdatedChecker = JustUpdatedChecker()
@State var showingSetup = false
@State private var showingSetup = false
@State private var showingCreation = false
@AppStorage("defaultsHasRunSetup") var hasRunSetup = false
@SceneBuilder var body: some Scene {
WindowGroup {
ContentView<Updater, AgentStatusChecker>(runningSetup: $showingSetup)
ContentView<Updater, AgentStatusChecker>(showingCreation: $showingCreation, runningSetup: $showingSetup)
.environmentObject(storeList)
.environmentObject(updater)
.environmentObject(agentStatusChecker)
@ -44,7 +45,7 @@ struct AppDelegate: App {
.commands {
CommandGroup(after: CommandGroupPlacement.newItem) {
Button("New Secret") {
// TODO: Add
showingCreation = true
}
.keyboardShortcut(KeyboardShortcut(KeyEquivalent("N"), modifiers: .command))
}

View File

@ -4,27 +4,28 @@ import Brief
struct ContentView<UpdaterType: UpdaterProtocol, AgentStatusCheckerType: AgentStatusCheckerProtocol>: View {
@EnvironmentObject var storeList: SecretStoreList
@EnvironmentObject var updater: UpdaterType
@EnvironmentObject var agentStatusChecker: AgentStatusCheckerType
@State private var showingCreation = false
@State private var selectedUpdate: Release?
@Binding var showingCreation: Bool
@Binding var runningSetup: Bool
@EnvironmentObject private var storeList: SecretStoreList
@EnvironmentObject private var updater: UpdaterType
@EnvironmentObject private var agentStatusChecker: AgentStatusCheckerType
@State private var selectedUpdate: Release?
var body: some View {
VStack {
if storeList.anyAvailable {
StoreListView()
.sheet(isPresented: $showingCreation) {
if let store = storeList.modifiableStore {
CreateSecretView(store: store, showing: $showingCreation)
}
}
StoreListView(showingCreation: $showingCreation)
} else {
NoStoresView()
}
}
.sheet(isPresented: $showingCreation) {
if let modifiable = storeList.modifiableStore {
CreateSecretView(store: modifiable, showing: $showingCreation)
}
}
.frame(minWidth: 640, minHeight: 320)
.toolbar {
updateNotice

View File

@ -6,8 +6,8 @@ struct CreateSecretView<StoreType: SecretStoreModifiable>: View {
@ObservedObject var store: StoreType
@Binding var showing: Bool
@State var name = ""
@State var requiresAuthentication = true
@State private var name = ""
@State private var requiresAuthentication = true
var body: some View {
VStack {

View File

@ -3,11 +3,11 @@ import SecretKit
struct DeleteSecretView<StoreType: SecretStoreModifiable>: View {
let secret: StoreType.SecretType
@ObservedObject var store: StoreType
@State var confirm = ""
@State private var confirm = ""
private let secret: StoreType.SecretType
private var dismissalBlock: (Bool) -> ()
init(secret: StoreType.SecretType, store: StoreType, dismissalBlock: @escaping (Bool) -> ()) {
@ -60,4 +60,5 @@ struct DeleteSecretView<StoreType: SecretStoreModifiable>: View {
try! store.delete(secret: secret)
dismissalBlock(true)
}
}

View File

@ -1,6 +1,7 @@
import SwiftUI
struct NoStoresView: View {
var body: some View {
VStack {
Text("No Secure Storage Available").bold()
@ -12,6 +13,7 @@ struct NoStoresView: View {
}
}.padding()
}
}
struct NoStoresView_Previews: PreviewProvider {

View File

@ -4,7 +4,8 @@ import SecretKit
struct SecretDetailView<SecretType: Secret>: View {
@State var secret: SecretType
let keyWriter = OpenSSHKeyWriter()
private let keyWriter = OpenSSHKeyWriter()
var body: some View {
Form {

View File

@ -3,10 +3,12 @@ import SecretKit
struct StoreListView: View {
@Binding var showingCreation: Bool
@State private var activeSecret: AnySecret.ID?
@State private var deletingSecret: AnySecret?
@EnvironmentObject var storeList: SecretStoreList
@EnvironmentObject private var storeList: SecretStoreList
var body: some View {
NavigationView {
@ -31,6 +33,7 @@ struct StoreListView: View {
}
.frame(minWidth: 100, idealWidth: 240)
}
}
}

View File

@ -3,9 +3,10 @@ import Brief
struct UpdateDetailView<UpdaterType: Updater>: View {
private let update: Release
@EnvironmentObject var updater: UpdaterType
private let update: Release
init(update: Release) {
self.update = update
}