UNPKG

@gechiui/components

Version:
104 lines (85 loc) 2.53 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _element = require("@gechiui/element"); var _classnames = _interopRequireDefault(require("classnames")); var _compose = require("@gechiui/compose"); var _i18n = require("@gechiui/i18n"); var _icons = require("@gechiui/icons"); var _ = require("../"); var _baseControl = _interopRequireDefault(require("../base-control")); var _utils = require("../utils"); /** * External dependencies */ /** * GeChiUI dependencies */ /** * Internal dependencies */ function SearchControl(_ref, ref) { let { className, onChange, onKeyDown, value, label, placeholder = (0, _i18n.__)('搜索'), hideLabelFromVision = true, help, onClose } = _ref; const instanceId = (0, _compose.useInstanceId)(SearchControl); const searchInput = (0, _utils.useCombinedRef)(ref); const id = `components-search-control-${instanceId}`; const renderRightButton = () => { if (onClose) { return (0, _element.createElement)(_.Button, { icon: _icons.closeSmall, label: (0, _i18n.__)('关闭搜索'), onClick: onClose }); } if (!!value) { return (0, _element.createElement)(_.Button, { icon: _icons.closeSmall, label: (0, _i18n.__)('重置搜索'), onClick: () => { onChange(''); searchInput.current.focus(); } }); } return (0, _element.createElement)(_icons.Icon, { icon: _icons.search }); }; return (0, _element.createElement)(_baseControl.default, { label: label, id: id, hideLabelFromVision: hideLabelFromVision, help: help, className: (0, _classnames.default)(className, 'components-search-control') }, (0, _element.createElement)("div", { className: "components-search-control__input-wrapper" }, (0, _element.createElement)("input", { ref: searchInput, className: "components-search-control__input", id: id, type: "search", placeholder: placeholder, onChange: event => onChange(event.target.value), onKeyDown: onKeyDown, autoComplete: "off", value: value || '' }), (0, _element.createElement)("div", { className: "components-search-control__icon" }, renderRightButton()))); } var _default = (0, _element.forwardRef)(SearchControl); exports.default = _default; //# sourceMappingURL=index.js.map