diff --git a/Sources/Secretive/Views/Secrets/EditSecretView.swift b/Sources/Secretive/Views/Secrets/EditSecretView.swift index 80f5af0..0bd953d 100644 --- a/Sources/Secretive/Views/Secrets/EditSecretView.swift +++ b/Sources/Secretive/Views/Secrets/EditSecretView.swift @@ -5,16 +5,16 @@ struct EditSecretView: View { let store: StoreType let secret: StoreType.SecretType - let dismissalBlock: (_ renamed: Bool) -> () @State private var name: String @State private var publicKeyAttribution: String @State var errorText: String? - init(store: StoreType, secret: StoreType.SecretType, dismissalBlock: @escaping (Bool) -> ()) { + @Environment(\.dismiss) var dismiss + + init(store: StoreType, secret: StoreType.SecretType) { self.store = store self.secret = secret - self.dismissalBlock = dismissalBlock name = secret.name publicKeyAttribution = secret.publicKeyAttribution ?? "" } @@ -39,7 +39,7 @@ struct EditSecretView: View { } HStack { Button(.editCancelButton) { - dismissalBlock(false) + dismiss() } .keyboardShortcut(.cancelAction) Button(.editSaveButton, action: rename) @@ -58,7 +58,7 @@ struct EditSecretView: View { Task { do { try await store.update(secret: secret, name: name, attributes: attributes) - dismissalBlock(true) + dismiss() } catch { errorText = error.localizedDescription } diff --git a/Sources/Secretive/Views/Secrets/SecretListItemView.swift b/Sources/Secretive/Views/Secrets/SecretListItemView.swift index 41e742b..6cffb94 100644 --- a/Sources/Secretive/Views/Secrets/SecretListItemView.swift +++ b/Sources/Secretive/Views/Secrets/SecretListItemView.swift @@ -41,15 +41,12 @@ struct SecretListItemView: View { deletedSecret(secret) } } - .sheet(isPresented: $isRenaming) { + .sheet(isPresented: $isRenaming, onDismiss: { + renamedSecret(secret) + }, content: { if let modifiable = store as? AnySecretStoreModifiable { - EditSecretView(store: modifiable, secret: secret) { renamed in - isRenaming = false - if renamed { - renamedSecret(secret) - } - } + EditSecretView(store: modifiable, secret: secret) } - } + }) } } diff --git a/Sources/Secretive/Views/Secrets/StoreListView.swift b/Sources/Secretive/Views/Secrets/StoreListView.swift index d084777..a140b60 100644 --- a/Sources/Secretive/Views/Secrets/StoreListView.swift +++ b/Sources/Secretive/Views/Secrets/StoreListView.swift @@ -12,9 +12,9 @@ struct StoreListView: View { } private func secretRenamed(secret: AnySecret) { - // Toggle so name updates in list. + // Pull new version from store, so we get all updated attributes activeSecret = nil - activeSecret = secret + activeSecret = storeList.allSecrets.first(where: { $0.id == secret.id }) } var body: some View { @@ -28,7 +28,7 @@ struct StoreListView: View { store: store, secret: secret, deletedSecret: secretDeleted, - renamedSecret: secretRenamed + renamedSecret: secretRenamed, ) } }