chore: 🤖 use statically referenced components for host form (#3072)

* chore: 🤖 use statically referenced components for host form

* Add missing copyright headers
This commit is contained in:
hashicc authored and GitHub committed 2025-11-24 16:37:11 -05:00
1 parent 719bab7358
commit 6fcc743217
2 files changed
+52 -15

No files matched your search

+12 -15
View File
@@ -4,20 +4,17 @@
}}
{{#if @model.compositeType}}
{{component
(concat 'form/host/' @model.compositeType)
model=@model
submit=@submit
cancel=@cancel
}}
<this.hostFormComponent
@model={{@model}}
@submit={{@submit}}
@cancel={{@cancel}}
/>
{{else}}
{{! create-and-add-host cancel route doesn't
have a model and this else part is required to prevent
erroring out here. This has been noted in the tech debt doc to further investigate }}
{{component
(concat 'form/host/' 'static')
model=@model
submit=@submit
cancel=@cancel
}}
{{! create-and-add-host cancel route doesn't have a model and this else part is required
to prevent erroring out here. This has been noted in the tech debt doc to further investigate }}
<Form::Host::Static
@model={{@model}}
@submit={{@submit}}
@cancel={{@cancel}}
/>
{{/if}}
@@ -0,0 +1,40 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import Component from '@glimmer/component';
import { assert } from '@ember/debug';
import {
TYPE_HOST_CATALOG_PLUGIN_AWS,
TYPE_HOST_CATALOG_PLUGIN_AZURE,
TYPE_HOST_CATALOG_PLUGIN_GCP,
TYPE_HOST_CATALOG_STATIC,
} from 'api/models/host-catalog';
import awsHostFormComponent from './aws';
import azureHostFormComponent from './azure';
import gcpHostFormComponent from './gcp';
import staticHostFormComponent from './static';
const modelCompositeTypeToComponent = {
[TYPE_HOST_CATALOG_PLUGIN_AWS]: awsHostFormComponent,
[TYPE_HOST_CATALOG_PLUGIN_AZURE]: azureHostFormComponent,
[TYPE_HOST_CATALOG_PLUGIN_GCP]: gcpHostFormComponent,
[TYPE_HOST_CATALOG_STATIC]: staticHostFormComponent,
};
export default class FormHostIndex extends Component {
/**
* Returns the host form component associated with the model's composite type
* @type {Component}
*/
get hostFormComponent() {
const component =
modelCompositeTypeToComponent[this.args.model.compositeType];
assert(
`Mapped component must exist for host composite type: ${this.args.model.compositeType}`,
component,
);
return component;
}
}