diff --git a/ui/admin/app/components/form/host-set/index.hbs b/ui/admin/app/components/form/host-set/index.hbs index 9e36eb9e9d..696ba7b018 100644 --- a/ui/admin/app/components/form/host-set/index.hbs +++ b/ui/admin/app/components/form/host-set/index.hbs @@ -3,10 +3,9 @@ SPDX-License-Identifier: BUSL-1.1 }} -{{component - (concat 'form/host-set/' @model.compositeType) - model=@model - edit=@edit - submit=@submit - cancel=@cancel -}} \ No newline at end of file + \ No newline at end of file diff --git a/ui/admin/app/components/form/host-set/index.js b/ui/admin/app/components/form/host-set/index.js new file mode 100644 index 0000000000..1a1db4faeb --- /dev/null +++ b/ui/admin/app/components/form/host-set/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 awsFormComponent from './aws'; +import azureFormComponent from './azure'; +import gcpFormComponent from './gcp'; +import staticFormComponent from './static'; + +const modelCompositeTypeToComponent = { + aws: awsFormComponent, + azure: azureFormComponent, + gcp: gcpFormComponent, + static: staticFormComponent, +}; + +export default class FormHostSetIndex extends Component { + /** + * returns the associated host set form component for the model's composite type + */ + get hostSetForm() { + const component = + modelCompositeTypeToComponent[this.args.model.compositeType]; + assert( + `Mapped component must exist for host set composite type: ${this.args.model.compositeType}`, + component, + ); + return component; + } +}