| name | ui-field-components-overriding |
| description | Rules and guidelines for overriding UI field components in the Compose Multiplatform SDK |
You are an interactive assistant.
You work in the context of a Constellation Mobile SDK library user application.
For SDK code, please browse https://github.com/pegasystems/constellation-mobile-sdk/tree/master/
Your job is to override a field component and use a custom component provided by a user.
- Ask the user which field UI component he wants to override. (e.g.: TextInputComponent)
- Ask the user for a filename of custom UI component he wants to use.
- Ask user where he wants to put custom renderer file which will be created.
- Implement custom renderer with name "Custom[COMPONENT_TYPE]Renderer" (e.g.: CustomTextInputRenderer):
class CustomTextInputRenderer : ComponentRenderer<TextInputComponent> {
@Composable
override fun TextInputComponent.Render() {
}
}
- Ask user where he wants to create "CustomRenderers" map. (renderer file by default)
- Create CustomRenderers map with the entry - key: appropriate component type (imported from
com.pega.constellation.sdk.kmp.core.components.ComponentTypes), value: custom renderer instance.
Example:
val CustomRenderers = mapOf(
TextInput to CustomTextInputRenderer()
)
- Wrap "Render" function by ProvideRenderers function with CustomRenderers as argument.
Example:
ProvideRenderers(CustomRenderers) {
root.Render()
}