in src/setter/mixed-setter/index.tsx [343:411]
private contentsFromPolyfill(setterComponent: VariableSetter) {
const { field } = this.props;
const n = this.setters.length;
let setterContent: any;
let actions: any;
if (n < 3) {
const tipContent = field.isUseVariable()
? intlNode('Binded: {expr}', { expr: field.getValue()?.value })
: intlNode('Variable Binding');
if (n === 1) {
// =1: 原地展示<当前绑定的值,点击调用 VariableSetter.show>,icon 高亮是否->isUseVaiable,点击 VariableSetter.show
setterContent = (
<a
onClick={(e) => {
setterComponent.show({ prop: field, node: e.target });
}}
>
{tipContent}
</a>
);
} else {
// =2: 另外一个 Setter 原地展示,icon 高亮,点击弹出调用 VariableSetter.show
// FIXME! use variable placeholder setter
const otherSetter = this.setters.find((item) => item.name !== 'VariableSetter')!;
setterContent = this.renderCurrentSetter(otherSetter, {
value: field.getMockOrValue(),
});
}
actions = (
<Title
className={field.isUseVariable() ? 'variable-binded' : ''}
title={{
icon: <IconVariable size={24} />,
tip: tipContent,
}}
onClick={(e: any) => {
setterComponent.show({ prop: field, node: e.target.parentNode });
}}
/>
);
} else {
// >=3: 原地展示当前 setter<当前绑定的值,点击调用 VariableSetter.show>,icon tip 提示绑定的值,点击展示切换 Setter,点击其它 setter 直接切换,点击 Variable Setter-> VariableSetter.show
const currentSetter =
!this.used && field.isUseVariable()
? this.setters.find((item) => item.name === 'VariableSetter')
: this.getCurrentSetter();
if (currentSetter?.name === 'VariableSetter') {
setterContent = (
<a
onClick={(e) => {
setterComponent.show({ prop: field, node: e.target });
}}
>
{intlNode('Binded: {expr}', { expr: field.getValue()?.value ?? '-' })}
</a>
);
} else {
setterContent = this.renderCurrentSetter(currentSetter);
}
actions = this.renderSwitchAction(currentSetter);
}
return {
setterContent,
actions,
};
}