preact-arco-design
Version:
Arco Design React UI Library.
30 lines (28 loc) • 1.45 kB
JavaScript
import React from "preact/compat";
import Checkbox from "../../Checkbox";
import IconRight from "../../../icon/react-icon/IconRight";
import IconLeft from "../../../icon/react-icon/IconLeft";
import IconLoading from "../../../icon/react-icon/IconLoading";
import IconCheck from "../../../icon/react-icon/IconCheck";
var Option = function Option(props) {
var prefixCls = props.prefixCls,
multiple = props.multiple,
option = props.option,
renderOption = props.renderOption,
selected = props.selected,
rtl = props.rtl;
var checkboxDisabled = option.disabled || multiple && option.disableCheckbox;
return React.createElement(React.Fragment, null, multiple ? React.createElement(Checkbox, {
disabled: checkboxDisabled,
checked: option._checked,
indeterminate: option._halfChecked,
onChange: props.onMultipleChecked,
value: option.value
}) : '', React.createElement("div", {
className: "".concat(prefixCls, "-list-item-label"),
onClick: option.disabled ? undefined : props.onClickOption,
onMouseEnter: props.onMouseEnter,
onDoubleClick: checkboxDisabled ? undefined : props.onDoubleClickOption
}, renderOption ? renderOption() : option.label, option.isLeaf ? selected && React.createElement(IconCheck, null) : option.loading ? React.createElement(IconLoading, null) : rtl ? React.createElement(IconLeft, null) : React.createElement(IconRight, null)));
};
export default Option;