boldr-ui
Version:
UI components for Boldr
120 lines (90 loc) • 3.8 kB
JavaScript
'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;