title: "RegisterFormInputComponent"
weight: 10
date: 2023-06-07T09:42:26.001Z
showtoc: true
# registerFormInputComponent
{{< generation-info sourceFile="packages/admin-ui/src/lib/core/src/shared/dynamic-form-inputs/register-dynamic-input-components.ts" sourceLine="96" packageName="
@vendure/admin-ui">}}
Registers a custom FormInputComponent which can be used to control the argument inputs
of a
ConfigurableOperationDef (e.g. CollectionFilter, ShippingMethod etc) or for
a custom field.
*Example*
```TypeScript
@NgModule({
imports: [SharedModule],
declarations: [MyCustomFieldControl],
providers: [
registerFormInputComponent('my-custom-input', MyCustomFieldControl),
],
})
export class MyUiExtensionModule {}
```
This input component can then be used in a custom field:
*Example*
```TypeScript
const config = {
// ...
customFields: {
ProductVariant: [
{
name: 'rrp',
type: 'int',
ui: { component: 'my-custom-input' },
},
]
}
}
```
or with an argument of a
ConfigurableOperationDef:
*Example*
```TypeScript
args: {
rrp: { type: 'int', ui: { component: 'my-custom-input' } },
}
```
## Signature
```TypeScript
function registerFormInputComponent(id: string, component: Type): FactoryProvider
```
## Parameters
### id
{{< member-info kind="parameter" type="string" >}}
### component
{{< member-info kind="parameter" type="Type<
FormInputComponent>" >}}