feat(ui5-icon): display custom SVG, defined as JSX template #11966
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In case you need to use a fully custom SVG, that can be used
ui5-icon
,ui5-button
or any component that offers API to display an icon via icon name, you can provide a custom JSX template, rendering the custom SVG and register it under a custom name.Previously, one had to provide Handlebars template (compiled to lit) - this is deprecated, but still works for compatibility. However, it's strongly recommended to use JSX templates, instead of Handlebars as at some point this will be removed.
How it works
1. Create JSX template
First, create a JSX template for the icon you need:
2. Register the Custom Icon
You can use the
registerIcon
to register the custom icon as follows:3. Use the Custom Icon
Finally, the icon can be used anywhere.