secretive/Secretive/SecretDetailView.swift

55 lines
1.8 KiB
Swift
Raw Normal View History

2020-03-04 07:14:38 +00:00
import SwiftUI
import SecretKit
struct SecretDetailView<SecretType: Secret>: View {
@State var secret: SecretType
let keyWriter = OpenSSHKeyWriter()
var body: some View {
Form {
Section {
GroupBox(label: Text("Fingerprint")) {
HStack {
Text(keyWriter.openSSHFingerprint(secret: secret))
Spacer()
}
.frame(minWidth: 150, maxWidth: .infinity)
.padding()
}.onDrag {
return NSItemProvider(item: NSData(data: self.keyWriter.openSSHFingerprint(secret: self.secret).data(using: .utf8)!), typeIdentifier: kUTTypeUTF8PlainText as String)
}
2020-03-06 06:53:04 +00:00
Spacer().frame(height: 10)
2020-03-04 07:14:38 +00:00
GroupBox(label: Text("Public Key")) {
Text(keyWriter.openSSHString(secret: secret))
.multilineTextAlignment(.leading)
2020-03-06 06:53:04 +00:00
.frame(minWidth: 150, maxWidth: .infinity)
2020-03-04 07:14:38 +00:00
.padding()
}
.onDrag {
return NSItemProvider(item: NSData(data: self.keyString.data(using: .utf8)!), typeIdentifier: kUTTypeUTF8PlainText as String)
}
.overlay(
Button(action: copy) {
Text("Copy")
}.padding(),
alignment: .bottomTrailing)
2020-03-06 06:53:04 +00:00
Spacer()
2020-03-04 07:14:38 +00:00
}
}.padding()
.frame(minHeight: 150, maxHeight: .infinity)
}
var keyString: String {
keyWriter.openSSHString(secret: secret)
}
func copy() {
NSPasteboard.general.declareTypes([.string], owner: nil)
NSPasteboard.general.setString(keyString, forType: .string)
}
}