UNPKG

boldr-ui

Version:

UI components for Boldr

120 lines (90 loc) 3.8 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _styleClasses = require('../theme/styleClasses'); var _Icons = require('../Icons'); var _Icons2 = _interopRequireDefault(_Icons); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* eslint-disable no-return-assign */ var BASE_ELEMENT = _styleClasses.StyleClasses.TOPBAR_SEARCH; var _ref2 = _react2.default.createElement(_Icons2.default, { kind: 'close', color: 'rgba(0, 0, 0, 0.87)', size: 14 }); var _ref3 = _react2.default.createElement(_Icons2.default, { kind: 'search', color: 'rgba(0, 0, 0, 0.87)', size: 14 }); var TopbarSearch = function (_PureComponent) { (0, _inherits3.default)(TopbarSearch, _PureComponent); function TopbarSearch() { (0, _classCallCheck3.default)(this, TopbarSearch); return (0, _possibleConstructorReturn3.default)(this, (TopbarSearch.__proto__ || (0, _getPrototypeOf2.default)(TopbarSearch)).apply(this, arguments)); } (0, _createClass3.default)(TopbarSearch, [{ key: 'componentDidUpdate', value: function componentDidUpdate(prevProps, prevState) { if (!prevProps.active && this.props.active) { this._input.focus(); } } }, { key: 'render', value: function render() { var _this2 = this; var _props = this.props, active = _props.active, placeholder = _props.placeholder; var classes = (0, _classnames2.default)(BASE_ELEMENT, (0, _defineProperty3.default)({}, BASE_ELEMENT + '--active', active)); return _react2.default.createElement( 'div', { className: classes }, _react2.default.createElement('input', { ref: function ref(_ref) { return _this2._input = _ref; }, className: BASE_ELEMENT + '__input', type: 'text', placeholder: placeholder }), _react2.default.createElement( 'button', { className: BASE_ELEMENT + '__icon ' + BASE_ELEMENT + '__clear', onClick: this.props.onToggle }, _ref2 ), _react2.default.createElement( 'button', { className: BASE_ELEMENT + '__icon ' + BASE_ELEMENT + '__search', onClick: this.props.onToggle }, _ref3 ) ); } }]); return TopbarSearch; }(_react.PureComponent); TopbarSearch.defaultProps = { placeholder: 'Search this site...' }; TopbarSearch.propTypes = process.env.NODE_ENV !== "production" ? { active: require('prop-types').bool.isRequired, placeholder: require('prop-types').string.isRequired, onToggle: require('prop-types').func.isRequired } : {}; exports.default = TopbarSearch;