import SwiftUI import SecretKit import Common import CertificateKit import SSHProtocolKit struct SecretDetailView: View { let secret: SecretType let certificates: [Certificate] let navigateToCertificate: ((Certificate) -> Void)? private let keyWriter = OpenSSHPublicKeyWriter() var body: some View { ScrollView { Form { Section { CopyableView( title: .secretDetailSha256FingerprintLabel, image: Image(systemName: "touchid"), text: keyWriter.openSSHSHA256Fingerprint(secret: secret) ) Spacer() .frame(height: 20) CopyableView( title: .secretDetailMd5FingerprintLabel, image: Image(systemName: "touchid"), text: keyWriter.openSSHMD5Fingerprint(secret: secret) ) Spacer() .frame(height: 20) CopyableView( title: .secretDetailPublicKeyLabel, image: Image(systemName: "key"), text: keyWriter.openSSHString(secret: secret) ) Spacer() .frame(height: 20) CopyableView( title: .secretDetailPublicKeyPathLabel, image: Image(systemName: "lock.doc"), text: URL.publicKeyPath(for: secret, in: URL.publicKeyDirectory), showRevealInFinder: true ) if !certificates.isEmpty { Spacer() .frame(height: 20) MultilineInfoView(title: .secretDetailCertificatePathLabel, image: Image(systemName: "checkmark.seal.text.page")) { ForEach(certificates) { certificate in Text(certificate.name) .multilineItemAction(image: Image(systemName: "chevron.forward")) { navigateToCertificate?(certificate) } } } } Spacer() } } .padding() } .frame(minHeight: 200, maxHeight: .infinity) } } //#Preview { // SecretDetailView(secret: Preview.Secret(name: "Demonstration Secret")) //}