Skip to content

Item Renderers

Item renderers are framework-specific components that the form engine instantiates to render each item of a dropdown, list, or radiogroup. The engine forwards the raw item object plus useful metadata (selected state, disabled state, the active label/value fields).

Each framework defines a small interface:

FrameworkTypeReceives
ReactReactItemRenderer<T>{ item: T, isSelected, isDisabled, ... } props
AngularAngularItemRenderer<T>An Angular.itemRenderer adapter on init
LitLitItemRenderer<T>A custom element that consumes item via property
import * as React from 'react';
import type { ReactItemRenderer } from '@golemui/react';
type Country = { id: string; flag: string; label: string };
export const CountryItemRenderer: ReactItemRenderer<Country> = ({ item }) => (
<div className="country-item">
<span className="country-item__flag">{item.flag}</span>
<span className="country-item__label">{item.label}</span>
</div>
);

Pass it through formConfig.itemRenderers, then reference its name from a widget’s itemRenderer prop:

const formConfig = {
itemRenderers: { countryItemRenderer: CountryItemRenderer },
};
const formDef = [
gui.inputs.dropdown('country', {
items: [/* ... */],
itemRenderer: 'countryItemRenderer',
}),
];