From 0bd152e0b58642aa4facbf43dbb008f77cb68682 Mon Sep 17 00:00:00 2001 From: hashicc <191911133+hashicc@users.noreply.github.com> Date: Tue, 7 Oct 2025 10:40:30 -0700 Subject: [PATCH] Migrate away from component helper in credential library form component (#3013) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor: 💡 migrate away from component helper for cred library form * Add missing copyright headers --- .../form/credential-library/index.hbs | 15 ++++----- .../form/credential-library/index.js | 33 +++++++++++++++++++ 2 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 ui/admin/app/components/form/credential-library/index.js diff --git a/ui/admin/app/components/form/credential-library/index.hbs b/ui/admin/app/components/form/credential-library/index.hbs index 4e5202321..e8a936cef 100644 --- a/ui/admin/app/components/form/credential-library/index.hbs +++ b/ui/admin/app/components/form/credential-library/index.hbs @@ -4,12 +4,11 @@ }} {{#if @model.type}} - {{component - (concat 'form/credential-library/' @model.type) - model=@model - submit=@submit - cancel=@cancel - changeType=@changeType - edit=@edit - }} + {{/if}} \ No newline at end of file diff --git a/ui/admin/app/components/form/credential-library/index.js b/ui/admin/app/components/form/credential-library/index.js new file mode 100644 index 000000000..8e49f2c17 --- /dev/null +++ b/ui/admin/app/components/form/credential-library/index.js @@ -0,0 +1,33 @@ +/** + * Copyright (c) HashiCorp, Inc. + * SPDX-License-Identifier: BUSL-1.1 + */ + +import Component from '@glimmer/component'; +import { assert } from '@ember/debug'; +import { + TYPE_CREDENTIAL_LIBRARY_VAULT_GENERIC, + TYPE_CREDENTIAL_LIBRARY_VAULT_SSH_CERTIFICATE, + TYPE_CREDENTIAL_LIBRARY_VAULT_LDAP, +} from 'api/models/credential-library'; +import VaultGenericFormComponent from './vault-generic'; +import VaultSshCertificateFormComponent from './vault-ssh-certificate'; +import VaultLdapFormComponent from './vault-ldap'; + +const modelTypeToComponent = { + [TYPE_CREDENTIAL_LIBRARY_VAULT_GENERIC]: VaultGenericFormComponent, + [TYPE_CREDENTIAL_LIBRARY_VAULT_SSH_CERTIFICATE]: + VaultSshCertificateFormComponent, + [TYPE_CREDENTIAL_LIBRARY_VAULT_LDAP]: VaultLdapFormComponent, +}; + +export default class FormCredentialLibraryIndex extends Component { + get credentialLibraryFormComponent() { + const component = modelTypeToComponent[this.args.model.type]; + assert( + `Mapped component must exist for credential library type: ${this.args.model.type}`, + component, + ); + return component; + } +}