xy-select
Version:
基于React的下拉列表组件
26 lines • 1.74 kB
JavaScript
import classNames from "classnames";
import React from "react";
import SelectBoxContent from "./SelectBoxContent";
import { getLocal } from "../local";
/**
* Select选择框
* - 处理键盘事件转发
* - 处理占位符文本
*/
export var SelectBox = React.forwardRef(function (props, ref) {
var _a;
var _b = props.prefixCls, prefixCls = _b === void 0 ? "xy-select-box" : _b, className = props.className, style = props.style, selectedCfg = props.selectedCfg, children = props.children, multiple = props.multiple, onClick = props.onClick, onKeyDown = props.onKeyDown, onFocus = props.onFocus, onBlur = props.onBlur, _c = props.placeholder, placeholder = _c === void 0 ? getLocal().Select.placeholder : _c, renderSelectItem = props.renderSelectItem;
var classString = classNames(prefixCls, className, (_a = {},
_a[prefixCls + "-multiple"] = multiple,
_a));
var _placeholder = React.createElement("div", { className: prefixCls + "__placeholder" }, placeholder);
var notEmpty = multiple ? selectedCfg && selectedCfg.length > 0 : selectedCfg;
return (React.createElement("div", { className: classString, style: style, onClick: onClick, onKeyDown: onKeyDown, tabIndex: 0, onFocus: onFocus, onBlur: onBlur, ref: ref },
React.createElement("div", { className: prefixCls + "__rendered" },
notEmpty ? React.createElement(SelectBoxContent, { renderSelectItem: renderSelectItem, multiple: multiple, selectedCfg: selectedCfg }) : _placeholder,
children),
React.createElement("span", { className: prefixCls + "__arrow" },
React.createElement("span", null, "\u2039"))));
});
export default React.memo(SelectBox);
//# sourceMappingURL=SelectBox.js.map