import SwiftUI import SecretKit struct RenameSecretView: View { @ObservedObject var store: StoreType let secret: StoreType.SecretType var dismissalBlock: (_ renamed: Bool) -> () @State private var newName = "" var body: some View { VStack { HStack { Image(nsImage: NSApplication.shared.applicationIconImage) .resizable() .frame(width: 64, height: 64) .padding() VStack { HStack { Text("Type your new name for \"\(secret.name)\" below.") Spacer() } HStack { TextField(secret.name, text: $newName).focusable() } } } HStack { Spacer() Button("Rename", action: mainActorWrapped(rename)) .disabled(newName.count == 0) .keyboardShortcut(.return) Button("Cancel") { dismissalBlock(false) }.keyboardShortcut(.cancelAction) } } .padding() .frame(minWidth: 400) .onExitCommand { dismissalBlock(false) } } func rename() { try? store.update(secret: secret, name: newName) dismissalBlock(true) } }