UNPKG

6.35 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
8
9var _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; }; }();
10
11var _templateObject = _taggedTemplateLiteral(['\n flex: 1;\n font-family: ', ';\n color: ', ';\n background: ', ';\n text-decoration: none;\n font-size: 1.25em;\n text-align: center;\n transition: all 0.2s ease-in;\n border-radius: 3px;\n user-select: none;\n\n > * {\n display: inline-block;\n width: 100%;\n padding: 0.75em;\n text-decoration: none;\n color: currentColor;\n }\n'], ['\n flex: 1;\n font-family: ', ';\n color: ', ';\n background: ', ';\n text-decoration: none;\n font-size: 1.25em;\n text-align: center;\n transition: all 0.2s ease-in;\n border-radius: 3px;\n user-select: none;\n\n > * {\n display: inline-block;\n width: 100%;\n padding: 0.75em;\n text-decoration: none;\n color: currentColor;\n }\n']);
12
13var _get = require('lodash/get');
14
15var _get2 = _interopRequireDefault(_get);
16
17var _styledComponents = require('styled-components');
18
19var _styledComponents2 = _interopRequireDefault(_styledComponents);
20
21var _react = require('react');
22
23var _react2 = _interopRequireDefault(_react);
24
25function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
27function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
28
29function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
30
31function _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; }
32
33function _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; }
34
35function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
36
37var Container = _styledComponents2.default.span(_templateObject, function (props) {
38 return props.theme.fontHeader;
39}, function (props) {
40 return props.active ? (0, _get2.default)(props.theme, 'colors.' + props.activeColor) : (0, _get2.default)(props.theme, 'colors.' + props.inactiveColor);
41}, function (props) {
42 return props.active ? (0, _get2.default)(props.theme, 'colors.' + props.activeBackground) : (0, _get2.default)(props.theme, 'colors.' + props.inactiveBackground);
43});
44
45var Tab = function (_Component) {
46 _inherits(Tab, _Component);
47
48 function Tab() {
49 var _ref;
50
51 var _temp, _this, _ret;
52
53 _classCallCheck(this, Tab);
54
55 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
56 args[_key] = arguments[_key];
57 }
58
59 return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Tab.__proto__ || Object.getPrototypeOf(Tab)).call.apply(_ref, [this].concat(args))), _this), _this.onClick = function () {
60 _this.context.onTabClick(_this.props.index);
61 }, _temp), _possibleConstructorReturn(_this, _ret);
62 }
63 /**
64 * Define the types of props the component accepts.
65 *
66 * @type {Object}
67 */
68
69
70 _createClass(Tab, [{
71 key: 'render',
72
73
74 /**
75 * Render the component
76 *
77 * @return {ReactElement}
78 */
79 value: function render() {
80 // eslint-disable-next-line no-unused-vars
81 var _props = this.props,
82 children = _props.children,
83 index = _props.index,
84 active = _props.active,
85 other = _objectWithoutProperties(_props, ['children', 'index', 'active']);
86
87 var _context = this.context,
88 activeColor = _context.activeColor,
89 inactiveColor = _context.inactiveColor,
90 activeBackground = _context.activeBackground,
91 inactiveBackground = _context.inactiveBackground;
92
93
94 return _react2.default.createElement(
95 Container,
96 _extends({
97 role: 'tab',
98 active: active,
99 onClick: this.onClick,
100 'aria-selected': false,
101 activeColor: activeColor,
102 inactiveColor: inactiveColor,
103 activeBackground: activeBackground,
104 inactiveBackground: inactiveBackground
105 }, other),
106 _react2.default.Children.map(children, function (Child) {
107 return _react2.default.isValidElement(Child) ? Child : _react2.default.createElement(
108 'span',
109 null,
110 Child
111 );
112 })
113 );
114 }
115 }]);
116
117 return Tab;
118}(_react.Component);
119
120Tab.propTypes = {
121 index: _react.PropTypes.number,
122 active: _react.PropTypes.bool,
123 children: _react.PropTypes.node,
124 className: _react.PropTypes.string
125};
126Tab.contextTypes = {
127 onTabClick: _react.PropTypes.func.isRequired,
128 activeColor: _react.PropTypes.string.isRequired,
129 inactiveColor: _react.PropTypes.string.isRequired,
130 activeBackground: _react.PropTypes.string.isRequired,
131 inactiveBackground: _react.PropTypes.string.isRequired
132};
133exports.default = Tab;
\No newline at end of file