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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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