UNPKG

preact-arco-design

Version:

Arco Design React UI Library.

30 lines (28 loc) 1.45 kB
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;