in src/setter/icon-setter/index.tsx [132:179]
render() {
const { placeholder, hasClear } = this.props;
const { setterValue } = this.state;
const _value = typeof setterValue === 'object' ? setterValue?.props?.type : setterValue;
const currentIcon = <Icon size="xs" type={_value} />;
const clearIcon = hasClear && (
<Icon
size="xs"
id="icon-clear"
type="delete-filling"
onClick={(e) => {
e.preventDefault();
e.stopPropagation();
this.onSelectIcon('');
}}
/>
);
const triggerNode = (
<div>
<Input
size="small"
placeholder={placeholder}
addonTextBefore={currentIcon}
onChange={this.onInputChange}
value={_value}
readOnly
addonTextAfter={clearIcon}
/>
</div>
);
const InnerBeforeNode = (
<Balloon
className={'lowcode-icon-content'}
trigger={triggerNode}
needAdjust
triggerType="click"
closable={false}
alignEdge
align="l"
popupClassName="lowcode-icon-setter-popup"
>
<ul className="lowcode-icon-list">
{icons.map((icon) => (
<li key={icon} onClick={() => this.onSelectIcon(icon)}>
<Icon type={icon} size="medium" />
</li>
))}