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:
1 parent
719bab7358
commit
6fcc743217
2 files changed
+52
-15
No files matched your search
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user