in src/panel/widgets.tsx [85:104]
render() {
const {allowClear, className, items, renderItem, selection, children} = this.props;
return !items?.length
? <div className={css('svList', 'svListZero', className)}>{children}</div>
: <div tabIndex={0} className={css('svList', selection.get() && 'svSelected' ,className)}
onClick={() => allowClear && selection.set(undefined)} onKeyDown={this.onKeyDown}>
{(items || []).map((item, i) => {
const isSelected = item === selection.get();
return <div key={i}
ref={ele => {
if (!isSelected || !ele) return;
requestAnimationFrame(() => ele.scrollIntoView({ behavior: 'smooth', block: 'nearest' }));
}}
className={css('svListItem', isSelected && 'svItemSelected')}
onClick={e => { e.stopPropagation(); selection.set(item); }}>
{renderItem(item, i)}
</div>;
})}
</div>;
}