in Dataset/JS/ReactSelect/index.tsx [1784:1859]
renderPlaceholderOrValue() {
const {
MultiValue,
MultiValueContainer,
MultiValueLabel,
MultiValueRemove,
SingleValue,
Placeholder,
} = this.getComponents();
const { commonProps } = this;
const {
controlShouldRenderValue,
isDisabled,
isMulti,
inputValue,
placeholder,
} = this.props;
const { selectValue, focusedValue, isFocused } = this.state;
if (!this.hasValue() || !controlShouldRenderValue) {
return inputValue ? null : (
<Placeholder
{...commonProps}
key="placeholder"
isDisabled={isDisabled}
isFocused={isFocused}
innerProps={{ id: this.getElementId('placeholder') }}
>
{placeholder}
</Placeholder>
);
}
if (isMulti) {
return selectValue.map((opt, index) => {
const isOptionFocused = opt === focusedValue;
const key = `${this.getOptionLabel(opt)}-${this.getOptionValue(opt)}`;
return (
<MultiValue
{...commonProps}
components={{
Container: MultiValueContainer,
Label: MultiValueLabel,
Remove: MultiValueRemove,
}}
isFocused={isOptionFocused}
isDisabled={isDisabled}
key={key}
index={index}
removeProps={{
onClick: () => this.removeValue(opt),
onTouchEnd: () => this.removeValue(opt),
onMouseDown: (e) => {
e.preventDefault();
},
}}
data={opt}
>
{this.formatOptionLabel(opt, 'value')}
</MultiValue>
);
});
}
if (inputValue) {
return null;
}
const singleValue = selectValue[0];
return (
<SingleValue {...commonProps} data={singleValue} isDisabled={isDisabled}>
{this.formatOptionLabel(singleValue, 'value')}
</SingleValue>
);
}