instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
156 lines (113 loc) • 6.38 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _taggedTemplateLiteral2 = require('babel-runtime/helpers/taggedTemplateLiteral');
var _taggedTemplateLiteral3 = _interopRequireDefault(_taggedTemplateLiteral2);
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 _templateObject = (0, _taggedTemplateLiteral3.default)(['\n padding: 6px;\n z-index: auto;\n position: relative;\n'], ['\n padding: 6px;\n z-index: auto;\n position: relative;\n']),
_templateObject2 = (0, _taggedTemplateLiteral3.default)(['\n font-size: 16px;\n color: color(black, light);\n text-transform: uppercase;\n ', '\n white-space: nowrap;\n'], ['\n font-size: 16px;\n color: color(black, light);\n text-transform: uppercase;\n ', '\n white-space: nowrap;\n']),
_templateObject3 = (0, _taggedTemplateLiteral3.default)(['\n position: absolute;\n right: 0;\n top: 100%;\n width: 300px;\n z-index: 1;\n background-color: white;\n box-shadow: 0 1px 2px 1px ', ';\n padding: 5px 0;\n'], ['\n position: absolute;\n right: 0;\n top: 100%;\n width: 300px;\n z-index: 1;\n background-color: white;\n box-shadow: 0 1px 2px 1px ', ';\n padding: 5px 0;\n']),
_templateObject4 = (0, _taggedTemplateLiteral3.default)(['\n padding: 8px 14px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n ', '\n'], ['\n padding: 8px 14px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n ', '\n']),
_templateObject5 = (0, _taggedTemplateLiteral3.default)(['\n width: 20px;\n height: 20px;\n position: relative;\n'], ['\n width: 20px;\n height: 20px;\n position: relative;\n']),
_templateObject6 = (0, _taggedTemplateLiteral3.default)(['\n ', '\n display: flex;\n justify-content: center;\n align-items: center;\n color: white;\n background-color: ', ';\n'], ['\n ', '\n display: flex;\n justify-content: center;\n align-items: center;\n color: white;\n background-color: ', ';\n']);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _md = require('react-icons/lib/md');
var _reactSpinjs = require('react-spinjs');
var _reactSpinjs2 = _interopRequireDefault(_reactSpinjs);
var _styledComponents = require('styled-components');
var _styledComponents2 = _interopRequireDefault(_styledComponents);
var _hover = require('components/utils/hover');
var _hover2 = _interopRequireDefault(_hover);
var _auto_bind = require('common/auto_bind');
var _auto_bind2 = _interopRequireDefault(_auto_bind);
var _styles = require('common/styles');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var SecondaryActions = function (_Component) {
(0, _inherits3.default)(SecondaryActions, _Component);
function SecondaryActions(props) {
(0, _classCallCheck3.default)(this, SecondaryActions);
var _this = (0, _possibleConstructorReturn3.default)(this, (SecondaryActions.__proto__ || (0, _getPrototypeOf2.default)(SecondaryActions)).call(this, props));
(0, _auto_bind2.default)(_this);
return _this;
}
(0, _createClass3.default)(SecondaryActions, [{
key: 'render_action',
value: function render_action(_ref, id) {
var onClick = _ref.onClick,
label = _ref.label,
badge = _ref.badge,
loading = _ref.loading,
disabled = _ref.disabled;
return _react2.default.createElement(
Action,
{ onClick: !loading && !disabled && onClick, key: id, disabled: disabled },
label,
badge ? _react2.default.createElement(
Badge,
null,
badge
) : null,
loading ? _react2.default.createElement(
Loading,
null,
_react2.default.createElement(_reactSpinjs2.default, { config: { length: 4, width: 2, radius: 5 } })
) : null
);
}
}, {
key: 'render',
value: function render() {
var _this2 = this;
var _props = this.props,
actions = _props.children,
active = _props.active;
return _react2.default.createElement(
_hover2.default,
null,
function (hover) {
return _react2.default.createElement(
Container,
null,
_react2.default.createElement(
Label,
{ active: active },
'Action ',
_react2.default.createElement(_md.MdKeyboardArrowDown, null)
),
hover ? _react2.default.createElement(
Actions,
null,
actions.map(_this2.render_action)
) : null
);
}
);
}
}]);
return SecondaryActions;
}(_react.Component);
exports.default = SecondaryActions;
var Container = _styledComponents2.default.div(_templateObject);
var Label = _styledComponents2.default.div(_templateObject2, function (_ref2) {
var active = _ref2.active;
return active ? 'color: ' + (0, _styles.color)('action') + ';' : '';
});
var Actions = _styledComponents2.default.div(_templateObject3, (0, _styles.color)('black', 'bright'));
var Action = _styledComponents2.default.div(_templateObject4, function (_ref3) {
var onClick = _ref3.onClick,
disabled = _ref3.disabled;
return disabled ? '\n opacity: 0.54;\n ' + _styles.disabled_link + '\n ' : onClick ? '\n ' + _styles.link + '\n &:hover {\n opacity: 1;\n background-color: ' + (0, _styles.color)('black', 'pale') + ';\n }\n ' : '';
});
var Loading = _styledComponents2.default.div(_templateObject5);
var Badge = _styledComponents2.default.div(_templateObject6, (0, _styles.circle)(20), (0, _styles.color)('action'));