kitten-components
Version:
Front-end components library
166 lines (129 loc) • 5.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TeamCardButtonWithTooltip = undefined;
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _radium = require('radium');
var _radium2 = _interopRequireDefault(_radium);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _buttonIcon = require('kitten/components/buttons/button-icon');
var _phoneIcon = require('kitten/components/icons/phone-icon');
var _colorsConfig = require('kitten/constants/colors-config');
var _colorsConfig2 = _interopRequireDefault(_colorsConfig);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var ButtonIcon = (0, _radium2.default)(_buttonIcon.ButtonIcon);
var TeamCardButtonWithTooltip = exports.TeamCardButtonWithTooltip = function (_Component) {
_inherits(TeamCardButtonWithTooltip, _Component);
function TeamCardButtonWithTooltip(props) {
_classCallCheck(this, TeamCardButtonWithTooltip);
var _this = _possibleConstructorReturn(this, (TeamCardButtonWithTooltip.__proto__ || Object.getPrototypeOf(TeamCardButtonWithTooltip)).call(this, props));
_this.handleSubmitFocus = function () {
_this.setState({ focus: true });
};
_this.handleSubmitBlur = function () {
_this.setState({ focus: false });
};
_this.handleOnMouseEnter = function () {
_this.setState({ hover: true });
};
_this.handleOnMouseLeave = function () {
_this.setState({ hover: false });
};
_this.state = {
hover: false,
focus: false
};
return _this;
}
_createClass(TeamCardButtonWithTooltip, [{
key: 'render',
value: function render() {
var phoneNumber = this.props.phoneNumber;
var tooltipStyle = [styles.tooltip.content, this.state.hover && styles.tooltip.content.hover, this.state.focus && styles.tooltip.content.focus];
return _react2.default.createElement(
_radium.StyleRoot,
null,
_react2.default.createElement(
'a',
{
href: 'tel:' + phoneNumber,
onMouseEnter: this.handleOnMouseEnter,
onMouseLeave: this.handleOnMouseLeave,
onFocus: this.handleSubmitFocus,
onBlur: this.handleSubmitBlur,
style: { outline: 'none' }
},
_react2.default.createElement(
'div',
{ style: styles.tooltip },
_react2.default.createElement(
'span',
{ style: tooltipStyle },
phoneNumber,
_react2.default.createElement('span', { style: styles.tooltip.content.after })
),
_react2.default.createElement(
ButtonIcon,
{
modifier: 'hydrogen',
className: 'k-ButtonIcon--phone',
style: { marginRight: 15 }
},
_react2.default.createElement(_phoneIcon.PhoneIcon, { className: 'k-ButtonIcon__svg' })
)
)
)
);
}
}]);
return TeamCardButtonWithTooltip;
}(_react.Component);
TeamCardButtonWithTooltip.propTypes = {
phoneNumber: _propTypes2.default.string.isRequired
};
var backgroundColor = _colorsConfig2.default.primary1;
var pseudoClass = {
visibility: 'visible',
opacity: 1
};
var styles = {
tooltip: {
position: 'relative',
content: {
position: 'absolute',
top: 55,
padding: 15,
marginLeft: -50,
backgroundColor: backgroundColor,
border: '2px solid #19b4fa',
fontSize: 14,
lineHeight: 'normal',
fontWeight: 'regular',
color: _colorsConfig2.default.background1,
whiteSpace: 'nowrap',
opacity: 0,
visibility: 'hidden',
transition: 'opacity .2s, visibility .2s',
hover: pseudoClass,
focus: pseudoClass,
after: {
position: 'absolute',
left: '50%',
bottom: '102%',
height: 0,
width: 0,
marginLeft: -8,
border: '10px solid transparent',
borderBottomColor: backgroundColor,
pointerEvents: 'none'
}
}
}
};