mirror of
https://github.com/maxgoedjen/secretive.git
synced 2024-11-22 21:47:08 +00:00
51 lines
1.4 KiB
Swift
51 lines
1.4 KiB
Swift
|
import SwiftUI
|
||
|
import SecretKit
|
||
|
|
||
|
struct RenameSecretView<StoreType: SecretStoreModifiable>: 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: NSApp.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: 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)
|
||
|
}
|
||
|
}
|